Linux密码策略

1. 配置文件及说明

vi /etc/login.defs
PASS_MAX_DAYS   99999               一个密码可使用的最大天数
PASS_MIN_DAYS   0                   两次密码修改之间最小的间隔天数
PASS_MIN_LEN    5                   密码最小长度
PASS_WARN_AGE   7                   密码过期前给出警告的天数

2. 策略案例

  • 一个密码可使用的最大天数

    #强制用户在过期前修改他密码。
    PASS_MAX_DAYS   90
    
  • 两次密码修改之间最小的间隔天数

    #参数限制两次修改之间的最少天数。
    PASS_MIN_DAYS   15
    
  • 密码过期前给出警告的天数

    #控制密码警告的前置天数,在密码即将过期时会给用户警告提示。
    PASS_WARN_AGE   10
    

上面的所有参数仅对新账号有效,对已存在的账号无效。

3. 可插拔认证模块

/etc/pam.d/system-auth

4. 认证案例

  • 密码历史记录/拒绝重复使用密码

    #参数控制密码历史。它记录曾经使用过的密码(禁止使用的曾用密码的个数)。当用户设置新的密码时,它会检查密码历史,如果他们要设置的密码是一个曾经使用过的旧密码,将会发出警告提示。
    password  sufficient  pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=5
    
  • 密码最小长度

    #密码的最小长度,在密码设置交互界面,用户有3次机会重设密码,密码长度12。
    password  requisite   pam_cracklib.so try_first_pass retry=3 minlen=12
    
  • 最少的大写字母个数

    #表示密码中至少需要的大写字母的个数,设置密码(中的大写字母)的最小长度为1个字母。
    password  requisite  pam_cracklib.so try_first_pass retry=3 minlen=12 ucredit=-1
    
  • 最少的小写字母个数

    #表示密码中至少需要的小写字母的个数,设置密码(中的小写字母)的最小长度为1个字母。
    password  requisite  pam_cracklib.so try_first_pass retry=3 minlen=12 lcredit=-1
    
  • 最少的数字个数

    #表示密码中至少需要的数字的个数,设置为1个数字。
    password  requisite  pam_cracklib.so try_first_pass retry=3 minlen=12 dcredit=-1
    
  • 最少的其他字符(符号)个数

    #表示密码中至少需要的特殊符号的个数,设置为1个字符。
    password  requisite  pam_cracklib.so try_first_pass retry=3 minlen=12 ocredit=-1
    
  • 账号锁定 — 重试

    #控制用户连续登录失败的最大次数,当达到设定的连续失败登录次数阈值时,锁定账号,设置为5次。
    auth  required  pam_tally2.so onerr=fail audit silent deny=5
    account required pam_tally2.so
    
  • 账号解锁时间

    #表示用户解锁时间,如果一个用户账号在连续认证失败后被锁定了,当过了设定的解锁时间后,才会解锁,设置被锁定中的账号的解锁时间(900 秒 = 15分钟)。
    auth  required  pam_tally2.so onerr=fail audit silent deny=5 unlock_time=900
    account required pam_tally2.so
    
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。