Linux 密码复杂度设置pam_pwquality、pam_passwdqc(centos7)
1.Linux对应的密码策略模块有:pam_passwdqc 和 pam_pwquality 。
其中pam_passwdqc模块对应的是/etc/login.defs,pam_pwquality对应的是/etc/security/pwquality.conf
2.模块的添加方法:/etc/pam.d/passwd
password required pam_pwquality.so retry=3
3.模块的配置方法有两种:
(1) /etc/pam.d/system-auth
password required pam_pwquality.so dcredit=-1 ucredit=-1 ocredit=-1 lcredit=0
(2) /etc/security/pwquality.conf
retry=N:定义登录/修改密码失败时,可以重试的次数; Difok=N:定义新密码中必须有几个字符要与旧密码不同。但是如果新密码中有1/2以上的字符与旧密码不同时,该新密码将被接受; minlen=N:定义用户密码的最小长度; dcredit=N:定义用户密码中必须包含多少个数字; ucredit=N:定义用户密码中必须包含多少个大写字母; lcredit=N:定义用户密码中必须包含多少个小些字母; ocredit=N:定义用户密码中必须包含多少个特殊字符(除数字、字母之外);
4. /etc/login.defs详解
PASS_MAX_DAYS 99999 #密码的最大有效期, 99999:永久有期 PASS_MIN_DAYS 0 #是否可修改密码,0可修改,非0多少天后可修改 PASS_MIN_LEN 5 #密码最小长度,使用pam_cracklib module,该参数不再有效 PASS_WARN_AGE 7 #密码失效前多少天在用户登录时通知用户修改密码 作者:SkTj 链接:https://www.jianshu.com/p/3393008e37d9 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
6.实际生产环境配置
cat /etc/security/pwquality.conf minlen = 8 minclass = 1 maxrepeat = 0 maxclassrepeat = 4 lcredit = -1 ucredit = -1 dcredit = -1 ocredit = -1 difok=5
cat /etc/login.defs: PASS_MAX_DAYS 90 PASS_MIN_LEN 12 PASS_MIN_DAYS 7 PASS_WARN_AGE 30 UMASK 077