我正在嘗試使用 pam_tally 在 ubuntu 中實現帳戶鎖定。我嘗試在中添加以下行 /etc/pam.d/common-auth
auth required pam_tally.so deny=3
account required pam_tally.so
失敗會被記錄,但即使達到最大失敗次數,帳戶也不會被鎖定。我正在透過直接登入(GNOME 登入畫面)來嘗試此操作。
有什麼建議嗎?我還需要新增 pam.d/gdm 或登入檔案嗎?
答案1
common-auth 背後的解釋
如果您只是在尋找快速修復方法,請轉到下面如何配置通用身份驗證以鎖定。
希望這有助於讓我們了解如何/etc/pam.d/common-auth
配置鎖定。
如果把 中的註解都去掉/etc/pam.d/common-auth
,剩下的就是:
auth [success=1 default=ignore] pam_unix.so nullok_secure
auth requisite pam_deny.so
auth required pam_permit.so
讓我們來看看這個文件的每一行以及它是如何使用的。
auth [success=1 default=ignore] pam_unix.so nullok_secure
讀取密碼輸入。如果密碼正確,則跳過檔案的下一行(帶有 的行pam_deny.so
)。您可以透過設定 中的值來變更跳過的行數success=1
。
auth requisite pam_deny.so
立即使登入嘗試失敗。這裡的字requisite
告訴認證失敗後立即退出。其他行required
則使用它,等待模組末尾發出失敗信號。
auth required pam_permit.so
允許登入嘗試。這是使用pam_permit.so
.
一旦建立,配置模組以鎖定用戶就可以更好地理解。
如何配置通用身份驗證以鎖定
對於Ubuntu:
新增以下行在 pam_deny.so 之後和 pam_permit.so 之前:
auth required pam_tally2.so onerr=fail deny=3 unlock_time=1800
將 pam_deny.so 行更改為以下內容:
auth required pam_deny.so
整份文件如下所示:
auth [success=1 default=ignore] pam_unix.so nullok_secure
auth required pam_deny.so
auth required pam_tally2.so onerr=fail deny=3 unlock_time=1800
auth required pam_permit.so
您可以配置以下選項以滿足您的需求:
deny=3
- 被鎖定之前允許的嘗試次數。unlock_time=1800
- 允許您嘗試再次登入之前的秒數。(補充說明:如果系統在一系列失敗後解鎖,並且您再次驗證失敗,則您沒有再嘗試驗證 2 次。系統會讓您等待unlock-time
再一次。
大多數資源建議將此行添加到文件頂部,強調順序的重要性;但是,在 Ubuntu 桌面系統上,此配置可能會將您鎖定在 GUI 登入畫面之外。
為什麼會出現這種情況?看起來,當您在 Ubuntu 的登入畫面上選擇使用者時,PAM 模組會立即啟動,並pam_unix.so
在繼續之前在該行(密碼輸入行)處等待。如果您將該pam_tally2.so
行放置在該「停止點」之前,鎖定會立即生效,如果您透過按箭頭鍵離開用戶,模組會發出登入失敗訊號並pam_tally2
遞增。即使不輸入密碼,您很快就會陷入類似以下情況的情況:
典型的 Ubuntu 登入畫面,其中公共身份驗證檔案配置不正確。
將該行放在pam_tally2.so
文件底部可以解決此問題。在此配置中保持正確的順序;第一行跳到pam_deny.so
或pam_permit.so
基於密碼有效性,到達時pam_tally2.so
,任何不正確的密碼輸入都已被指示。
即使無論輸入的密碼如何,都達到了目標,如果也達到了目標,pam_permit.so
模組將始終失敗。pam_deny.so
這是因為該pam_deny.so
行包含required
;它將允許其餘線路運行,但模組本身最終將失敗。
有關 PAM 工作原理的更多信息,您可以通過 google 搜索“PAM 工作原理”或直接訪問此處:http://www.tuxradar.com/content/how-pam-works
應該這樣做!
答案2
自從我看到這個以來已經有一段時間了,但是
我認為你需要編輯/etc/pam.d/common-auth
將其添加到頂部文件的內容(規則的順序很重要)。
auth required pam_tally.so per_user magic_root onerr=fail
然後您設定允許的嘗試次數
sudo faillog -m 3
解鎖帳戶
faillog -u login_name -r
有關更多詳細信息,請參閱
我的部落格http://blog.bodhizazen.com/linux/ubuntu-how-to-faillog/
答案3
您也可以嘗試失敗鎖定,以在 n 次登入嘗試失敗後鎖定使用者帳戶。
我能夠按照下面連結中的說明來使其工作,該連結使用 pam_faillock.so 我猜它在 Ubuntu 和 CentOS 上都可以工作。
在 CentOS 和類似衍生產品上:
/etc/pam.d/system-auth
/etc/pam.d/password-auth
在 Ubuntu/Debian 和類似的衍生產品上:
/etc/pam.d/common-auth
/etc/pam.d/common-account
希望這對其他人也有幫助。