多次輸入錯誤密碼鎖定用戶設置
本文要實現的功能:如果有人惡意嘗試破解你的服務器密碼,那么這個功能就能幫你起到一定的作用,當嘗試密碼錯誤超過設定的次數后,就會鎖定該賬戶多長時間(自行設定),時間過后即可自行解鎖,這樣可以增加攻擊者的成本。
主要是修改:/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 <用戶名>
來解鎖帳戶