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