如何使用 pam_tally 啟用帳戶鎖定?

如何使用 pam_tally 啟用帳戶鎖定?

我正在嘗試使用 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.sopam_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/

或者男人 pam_tally

答案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

多次登入嘗試失敗後鎖定 Linux 使用者帳戶

希望這對其他人也有幫助。

相關內容