linux設定登陸n次失敗鎖定賬號

2021-09-26 02:52:58 字數 3036 閱讀 9982

本文要實現的功能:如果有人惡意嘗試破解你的伺服器密碼,那麼這個功能就能幫你起到一定的作用,當嘗試密碼錯誤超過設定的次數後,就會鎖定該賬戶多長時間(自行設定),時間過後即可自行解鎖,這樣可以增加攻擊者的成本。

伺服器系統:centos6.5(centos其他版本應該也是可以的,請自行測試)

cp /etc/pam.d/sshd /etc/pam.d/sshd.bak

cp /etc/pam.d/login /etc/pam.d/login.bak

[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

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 次登入失敗即鎖定。

注意:
使用者鎖定期間,無論在輸入正確還是錯誤的密碼,都將視為錯誤密碼,並以最後一次登入為鎖定起始時間,若果使用者解鎖後輸入密碼的第一次依然為錯誤密碼,則再次重新鎖定。

檢視日誌 tail -f /var/log/secure 可以看出下面的提示

上面只是限制了從終端登陸,如果想限制ssh遠端的話, 要改的是

/etc/pam.d/sshd這個檔案(上邊system-auth可以不新增),新增的內容跟上面一樣!

如果在操作中間出現下面這個錯誤:

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

5.測試可以故意輸錯密碼超過三次,然後第五次輸入正確密碼,如果正確密碼進入不了系統,說明配置生效。以上的配置是即時生效的,不用重啟配置檔案或系統,但是請注意多開個ssh

視窗,防止配置檔案更改錯誤,將自己關在伺服器外面。

6.解鎖賬戶

如果密碼在鎖定時間內,但是又要立即進入系統,可使用下面方法解鎖被鎖定使用者,當然這是對於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 ~]#

linux設定登陸n次失敗鎖定賬號

前言 為了防止黑客惡意嘗試破解你的伺服器密碼,需要進行一定的防護措施 宣告此設定在centos7系統上操作配置 遠端登陸限制配置auth required pam tally2.so onerr fail deny 5 unlock time 300 even deny root root unlo...

登陸三次失敗鎖定不給登陸

這裡主要的實現方式是資料庫表 當然這種方式適合練練手,還有一種更簡便的就是用快取實現,節省很多。基本邏輯是登陸失敗累計次數。三次丟擲限制定語。限定根據當前時間和資料庫鎖定時間進行判斷是否解鎖。最後資料狀態修改為0.public yhxx getlogin string username,string...

登陸失敗賬號鎖定

一 session 清空登入失敗記錄 cleanfailnum session,username 校驗使用者登入失敗次數 新增使用者登入失敗次數 清理使用者登入失敗的記錄 二 map 移出非安全登入記錄 param index private void removejptloginsecurity ...