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=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

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

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分钟,将全部用户登录失败的次数清空,并将全部用户解锁。

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