pam_tally2 是 linux 的pam中用來限制存取次數的一個模組

編輯 /etc/pam.d/sshd,在最前面加入

auth     required      pam_tally2.so deny=1 lock_time=60

我測試了

1. 使用 cross 登入
2. 使用 root 登入
3. 使用 cross 登入,切換 su –

以上三種情況,皆會因為1次密碼失敗後,鎖定60秒後才可再讓你使用正確的密碼登入

在 /var/log/secure裡可以看到它在倒數 (如果一直重試登入,它會顯示還有多久時間解鎖)

May  1 14:05:48 xx-xx su: pam_tally2: user root (0) has time limit [55s left] since last failure.

怎麼手動解鎖,如果不想等到數的話

pam_tally2 –reset -u 使用者名稱

後來再測試明白了一件事 (2011-06-01)

lock_time參數是只要1次失敗就會鎖 60秒,就算我用了 deny=3也是算1失敗就鎖了 (測試時用pam_tally2指令看統計就會知道了,失敗幾次它還是呈現1次)

所以要用 unlock_time=60 搭配 deny=2  

auth required pam_tally2.so deny=2 unlock_time=60

它才會讓我2次失敗後鎖60秒,60秒過後才能再讓我用正確密碼成功登入,而失敗的次數就會因為成功登入後被自動清除了

用unlock_time在/var/log/secure裡就不會看到倒數了,呈現的記錄如下

Jun  2 00:38:55 xx-xx sshd[1888]: pam_tally2(sshd:auth): user root (0) tally 6, deny 5

不過以上限制到的是非root的帳號,如果連 root 也要限制的話 ,要多個 even_deny_root

auth required pam_tally2.so deny=2 unlock_time=60 even_deny_root

參數說明:
deny=n 代表拒絕存取,如果超過n次
lock_time=n 代表1次失敗後就鎖n秒
unlock_time=n 代表幾次失敗就鎖n秒,搭配deny=2就是兩次失敗就鎖n秒
even_deny_root 代表也限制root帳號
root_unlock_time=n 這個跟unlcok_time一樣,只是這只給root帳號用,如果要區別一般帳號的話,就可以額外作這個限制

 

最後修改日期: 2020 年 01 月 02 日

作者

留言

作者

pam_tally2顯示的Latest failure代表最新連線失敗的時間,它會一直顯示是因為30分鐘過後沒有正確的帳號密碼登入過

[Reply]

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。