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=node
找到同时有 “password” 和 “pam_cracklib.so” 字段而且附加有 “minlen=10” 的那行,它表示最小密码长度为(10 - 类型数量)。vim
这里的 “类型数量” 表示不一样的字符类型数量。PAM 提供4种类型符号做为密码(大写字母、小写字母、数字和标点符号)。ssh
若是你的密码同时用上了这4种类型的符号,而且你的 minlen 设为10,那么最短的密码长度容许是6个字符ui
找到同时有 “password” 和 “pam_cracklib.so” 字段而且附加有 “ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1” 的那行,spa
它表示密码必须至少包含一个大写字母(ucredit),两个小写字母(lcredit),一个数字(dcredit)和一个标点符号(ocredit)3d
vim /etc/pam.d/sshd 只在远程telnet、ssh登录上作限制,能够编辑以下文件,添加的内容和上方也同样。
vim /etc/pam.d/login 只在本地文本终端上作限制,能够编辑以下文件,添加的内容和上方同样。code
auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=10blog
even_deny_root 也限制root用户;
deny 设置普通用户和root用户连续错误登录的最大次数,超过最大次数,则锁定该用户
unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒; crontab
此处使用的是 pam_tally2 模块,若是不支持 pam_tally2 可使用 pam_tally 模块。另外,不一样的pam版本,it
设置可能有所不一样,具体使用方法,能够参照相关模块的使用规则。
由于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分钟,将全部用户登录失败的次数清空,并将全部用户解锁。
[root@node100 pam.d]# pam_tally2 --user redhat Login Failures Latest failure From redhat 7 07/16/12 15:18:22 tty1
[root@node100 pam.d]# pam_tally2 -r -u redhat Login Failures Latest failure From redhat 7 07/16/12 15:18:22 tty1