Linux登陸失敗處理功能
?本文要實(shí)現(xiàn)的功能:如果有人惡意嘗試破解你的服務(wù)器密碼,那么這個(gè)功能就能幫你起到一定的作用,當(dāng)嘗試密碼錯(cuò)誤超過設(shè)定的次數(shù)后,就會(huì)鎖定該賬戶多長(zhǎng)時(shí)間(自行設(shè)定),時(shí)間過后即可自行解鎖,這樣可以增加攻擊者的成本。
? ?服務(wù)器系統(tǒng):centos6.5(centos其他版本應(yīng)該也是可以的,請(qǐng)自行測(cè)試)
1.備份要操作的兩個(gè)配置文件
cp /etc/pam.d/sshd /etc/pam.d/sshd.bak
cp /etc/pam.d/login /etc/pam.d/login.bak
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/sshd
3.登錄失敗處理功能策略(服務(wù)器終端)
編輯系統(tǒng)/etc/pam.d/system-auth 文件,在 auth 字段所在的那一部分策 略下面添加如下策略參數(shù):
auth required pam_tally2.so? onerr=fail? deny=3? unlock_time=40 even_deny_root root_unlock_time=30
注意添加的位置,要寫在第一行,即#%PAM-1.0的下面。
以上策略表示:普通帳戶和 root 的帳戶登錄連續(xù) 3 次失敗,就統(tǒng)一鎖定 40 秒, 40 秒后可以解鎖。如果不想限制 root 帳戶,可以把??even_deny_root root_unlock_time
這兩個(gè)參數(shù)去掉, root_unlock_time 表示 root 帳戶的 鎖定時(shí)間,onerr=fail 表示連續(xù)失敗,deny=3,表示 超過3 次登錄失敗即鎖定。
注意:
用戶鎖定期間,無論在輸入正確還是錯(cuò)誤的密碼,都將視為錯(cuò)誤密碼,并以最后一次登錄為鎖定起始時(shí)間,若果用戶解鎖后輸入密碼的第一次依然為錯(cuò)誤密碼,則再次重新鎖定。
查看日志 tail -f /var/log/secure 可以看出下面的提示
4.登錄失敗處理功能策略(ssh遠(yuǎn)程連接登錄)
上面只是限制了從終端登陸,如果想限制ssh遠(yuǎn)程的話, 要改的是
/etc/pam.d/sshd這個(gè)文件,添加的內(nèi)容跟上面一樣!
?如果在操作中間出現(xiàn)下面這個(gè)錯(cuò)誤:
Dec715:06:51iZ2zee7gmy40tbverl53rfZ sshd[15747]: PAM unable to dlopen(/lib64/security/pam_tally.so): /lib64/security/pam_tally.so: cannot open sharedobjectfile:No such file or directoryDec715:06:51iZ2zee7gmy40tbverl53rfZ sshd[15747]: PAM adding faulty module: /lib64/security/pam_tally.so
上面的錯(cuò)誤意思是在/lib64/security/ 下面找不到pam_tally.so,而我進(jìn)入到目錄下,確實(shí)沒找到這個(gè)文件,解決方法是將現(xiàn)有的?pam_tally2.so做個(gè)軟連接到pam_tally.so
[root@iZ2zee7gmy40tbverl53rfZ ~]# cd /lib64/security/
[root@iZ2zee7gmy40tbverl53rfZ ~]#ln -s pam_tally2.so pam_tally.so
5.測(cè)試
可以故意輸錯(cuò)密碼超過三次,然后第五次輸入正確密碼,如果正確密碼進(jìn)入不了系統(tǒng),說明配置生效。以上的配置是即時(shí)生效的,不用重啟配置文件或系統(tǒng),但是請(qǐng)注意多開個(gè)ssh
窗口,防止配置文件更改錯(cuò)誤,將自己關(guān)在服務(wù)器外面。
6.解鎖賬戶
如果密碼在鎖定時(shí)間內(nèi),但是又要立即進(jìn)入系統(tǒng),可使用下面方法解鎖被鎖定用戶,當(dāng)然這是對(duì)于root用戶解鎖普通用戶來說的。如果root用戶被鎖,請(qǐng)等待鎖定期過后在操作。
查看用戶失敗次數(shù)
[root@localhost ~]# pam_tally2 ???????? --------------------查看所有用戶登錄失敗次數(shù)
[root@localhost ~]# pam_tally2 --user root????? ------------指定查看登錄失敗的用戶次數(shù)
解鎖指定用戶
[root@iZ25dsfp6c3dZ ~]# pam_tally2 -r -u albert??
[root@iZ2zee7gmy40tbverl5Z ~]# pam_tally2 --user root
Login? ? ? ? ? Failures Latest failure? ? From
root? ? ? ? ? ? ? ? 512/07/1717:05:5449.4.151.18[root@iZ2zee7gmy40tbverl5Z ~]# pam_tally2 -r -u root
Login? ? ? ? ? Failures Latest failure? ? From
root? ? ? ? ? ? ? ? 512/07/1717:05:5449.4.151.18[root@iZ2zee7gmy40tbverlfZ ~]# pam_tally2 -r -u root? ? ###解鎖之后隨即失敗次數(shù)歸零,此時(shí)即可登錄系統(tǒng)
Login? ? ? ? ? Failures Latest failure? ? From
root? ? ? ? ? ? ? ? 0? ?
[root@iZ2zee7gmy40tbverlfZ ~]#