linux服务器密码策略设置:登陆密码错误次数限制

1.备份要操做的两个配置文件
cp /etc/pam.d/sshd /etc/pam.d/sshd.bak
cp /etc/pam.d/login /etc/pam.d/login.bakweb

2.检查是否有pam_tally2.so模块
[root@iZ25dd99ylmZ security]# find /lib* -iname “pam_tally2.so”
/lib64/security/pam_tally2.so
[root@iZ25dd99ylmZ security]# find /lib* -iname “pam_tally.so”
[root@iZ25dd99ylmZ security]# cat /etc/pam.d/sshdvim

3.登陆失败处理功能策略(服务器终端)
vim /etc/pam.d/system-auth (服务器终端)
在首行#%PAM-1.0下增长:
auth required pam_tally2.so onerr=fail deny=3 unlock_time=40 even_deny_root root_unlock_time=30
注意添加的位置,要写在第一行,即#%PAM-1.0的下面。
以上策略表示:普通账户和 root 的账户登陆连续 3 次失败,就统一锁定 40 秒, 40 秒后能够解锁。若是不想限制 root 账户,能够把 even_deny_root root_unlock_time
这两个参数去掉, root_unlock_time 表示 root 账户的 锁定时间,onerr=fail 表示连续失败,deny=3,表示 超过3 次登陆失败即锁定。
注意:
用户锁按期间,不管在输入正确仍是错误的密码,都将视为错误密码,并以最后一次登陆为锁定起始时间,若果用户解锁后输入密码的第一次依然为错误密码,则再次从新锁定。服务器

4.登陆失败处理功能策略(ssh远程链接登陆)
上面只是限制了从终端登录,若是想限制ssh远程的话, 要改的是
/etc/pam.d/sshd这个文件,添加的内容跟上面同样!
vim /etc/pam.d/sshd (远程ssh)
在首行#%PAM-1.0下增长:
auth required pam_tally2.so deny=3 unlock_time=20 even_deny_root root_unlock_time=30ssh

vim /etc/pam.d/login (终端)
在首行#%PAM-1.0下增长:
auth required pam_tally2.so deny=3 unlock_time=20 even_deny_root root_unlock_time=30svg

若是在操做中间出现下面这个错误:
Dec 7 15:06:51 iZ2zee7gmy40tbverl53rfZ sshd[15747]: PAM unable to dlopen(/lib64/security/pam_tally.so): /lib64/security/pam_tally.so: cannot open shared object file: No such file or directory
Dec 7 15:06:51 iZ2zee7gmy40tbverl53rfZ sshd[15747]: PAM adding faulty module: /lib64/security/pam_tally.so
上面的错误意思是在/lib64/security/ 下面找不到pam_tally.so,而我进入到目录下,确实没找到这个文件,解决方法是将现有的 pam_tally2.so作个软链接到pam_tally.so
[root@iZ2zee7gmy40tbverl53rfZ ~]# cd /lib64/security/
[root@iZ2zee7gmy40tbverl53rfZ ~]#ln -s pam_tally2.so pam_tally.so测试

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

5.测试
能够故意输错密码超过三次,而后第五次输入正确密码,若是正确密码进入不了系统,说明配置生效。以上的配置是即时生效的,不用重启配置文件或系统,可是请注意多开个ssh窗口,防止配置文件更改错误,将本身关在服务器外面。3d

6.解锁帐户
若是密码在锁定时间内,可是又要当即进入系统,可以使用下面方法解锁被锁定用户,固然这是对于root用户解锁普通用户来讲的。若是root用户被锁,请等待锁按期事后在操做。
手动解除锁定:
查看某一用户错误登录次数:
pam_tally –-user
例如,查看work用户的错误登录次数:
pam_tally –-user work 或者 pam_tally –u work
清空某一用户错误登录次数:
pam_tally –-user –-reset
例如,清空 work 用户的错误登录次数,
pam_tally –-user work –-reset
faillog -r 命令亦可。unix

若是前几条没生效的话,也可使用命令:
pam_tally2 –u tom --reset将用户的计数器重置清零(SLES 11.2下用此命令才重置成功)xml

查看错误登陆次数:pam_tally2 –u tom

解锁指定用户
[root@iZ25dsfp6c3dZ ~]# pam_tally2 -r -u root

7.修改密码长度限制和字符限制 vim /etc/pam.d/system-auth password requisite pam_cracklib.so try_first_pass retry=3 minlen=8 lcredit=-1 dcredit=-1 ocredit=-1 ucredit=-1 password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=5 就是密码的一些策略,密码长度至少8 retry 定义登陆/修改密码失败时,能够重试的次数 minlen 定义用户密码的最小长度为8位 lcredit=-1 定义用户密码中最少有1个小写字母 dcredit=-1 定义用户密码中最少有1个数字 ocredit=-1 定义用户密码中最少有1个特殊字符 ucredit=-2 定义用户密码中最少有2个大写字母 remember=5 修改用户密码时最近5次用过的旧密码就不能重用了