多次输入错误密码锁定用户设置
本文要实现的功能:如果有人恶意尝试破解你的服务器密码,那么这个功能就能帮你起到一定的作用,当尝试密码错误超过设定的次数后,就会锁定该账户多长时间(自行设定),时间过后即可自行解锁,这样可以增加攻击者的成本。
主要是修改:/etc/pam.d/system-auth和 /etc/pam.d/sshd
在 /etc/pam.d/system-auth中加入下列内容(服务器终端):
auth required pam_tally2.so onerr=fail deny=3 unlock_time=300 even_deny_root \ root_unlock_time=10
## 300代表暂时锁定300s,root_unlock_time表示root连续失败3次会被锁定10s,onerr=fail 表示连续失败,deny=3,表示 超过3 次登录失败即锁定
注:注意添加的位置,要写在第一行,即#%PAM-1.0的下面;用户锁定期间,无论在输入正确还是错误的密码,都将视为错误密码,并以最后一次登录为锁定起始时间,若果用户解锁后输入密码的第一次依然为错误密码,则再次重新锁定。
在 /etc/pam.d/sshd 中加入如下内容(ssh远程连接登录)
上面只是限制了从终端登陆,如果想限制ssh远程的话, 要改的是
/etc/pam.d/sshd这个文件,添加的内容跟上面一样!
auth required pam_tally2.so onerr=fail deny=3 unlock_time=300 even_deny_root \ root_unlock_time=10
## 300代表暂时锁定300s,root_unlock_time表示root连续失败3次会被锁定10s,onerr=fail 表示连续失败,deny=3,表示 超过3 次登录失败即锁定
注:以上的配置是即时生效的,不用重启配置文件或系统
查看日志:
tail -f /var/log/secure
如果在操作中间出现下面这个错误:
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
解锁账户
如果密码在锁定时间内,但是又要立即进入系统,可使用下面方法解锁被锁定用户,当然这是对于root用户解锁普通用户来说的。如果root用户被锁,请等待锁定期过后在操作。
查看用户失败次数
[root@localhost ~]# pam_tally2 --------------------查看所有用户登录失败次数
[root@localhost ~]# pam_tally2 --user root ------------指定查看登录失败的用户次数
解锁指定用户
[root@iZ25dsfp6c3dZ ~]# pam_tally2 -r -u albert
[root@iZ2zee7gmy40tbverl5Z ~]# pam_tally2 --user root
Login Failures Latest failure From
root 5 12/07/17 17:05:54 49.4.151.18
[root@iZ2zee7gmy40tbverl5Z ~]# pam_tally2 -r -u root
Login Failures Latest failure From
root 5 12/07/17 17:05:54 49.4.151.18
[root@iZ2zee7gmy40tbverlfZ ~]# pam_tally2 -r -u root ###解锁之后随即失败次数归零,此时即可登录系统
Login Failures Latest failure From
root 0
[root@iZ2zee7gmy40tbverlfZ ~]#
注:也可以使用passwd -u <用户名>
来解锁帐户