Linux密码策略-密码长度-密码复杂度

1.设置密码长度

vim /etc/pam.d/system-auth
password requisite pam_cracklib.so try_first_pass retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1 type=

找到同时有 “password” 和 “pam_cracklib.so” 字段并且附加有 “minlen=10” 的那行,它表示最小密码长度为(10 - 类型数量)。

这里的 “类型数量” 表示不同的字符类型数量。PAM 提供4种类型符号作为密码(大写字母、小写字母、数字和标点符号)。

如果你的密码同时用上了这4种类型的符号,并且你的 minlen 设为10,那么最短的密码长度允许是6个字符

找到同时有 “password” 和 “pam_cracklib.so” 字段并且附加有 “ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1” 的那行,

它表示密码必须至少包含一个大写字母(ucredit),两个小写字母(lcredit),一个数字(dcredit)和一个标点符号(ocredit)

 2.设置认证失败锁定账户策略

vim /etc/pam.d/sshd  只在远程telnet、ssh登陆上做限制,可以编辑如下文件,添加的内容和上方也一样。
vim /etc/pam.d/login  只在本地文本终端上做限制,可以编辑如下文件,添加的内容和上方一样。

auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=10

even_deny_root   也限制root用户;
deny         设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户
unlock_time     设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time   设定root用户锁定后,多少时间后解锁,单位是秒;


此处使用的是 pam_tally2 模块,如果不支持 pam_tally2 可以使用 pam_tally 模块。另外,不同的pam版本,

设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。

因为pam_tally没有自动解锁的功能,所以,在设置限制时,要多加注意,万一全做了限制,

而root用户又被锁定了,就只能够进单用户模式解锁了,当然,也可以添加crontab任务,达到定时自动解锁的功能,

但需要注意的是,如果在/etc/pam.d/system-auth 文件中添加了pam_tally的话,当root被锁定后,crontab任务会失效,

所以,最好不要在system-auth 文件中添加pam_tally。
root用户执行 crontab -e 命令,添加如下内容
2 */1 * * * * /usr/bin/faillog -r
意思是,每1分钟,将所有用户登陆失败的次数清空,并将所有用户解锁。

2.1查看用户登录失败的次数

[root@node100 pam.d]# pam_tally2 --user redhat 
Login           Failures Latest failure     From 
redhat              7    07/16/12 15:18:22  tty1

2.2解锁指定用户

[root@node100 pam.d]# pam_tally2 -r -u redhat 
Login           Failures Latest failure     From 
redhat              7    07/16/12 15:18:22  tty1 
原文地址:https://www.cnblogs.com/zhanmeiliang/p/7419186.html