在 RHEL6 中使用 pam_tally2 鎖定帳戶
在每個策略 3 次登錄失敗後,我正在使用pam_tally2鎖定帳戶,但是,連接使用者沒有收到指示 pam_tally2 操作的錯誤。(通過 SSH。)
我希望在第四次嘗試時看到:
Account locked due to 3 failed logins
必需或必需的組合或文件中的順序似乎沒有幫助。這是在Red Hat 6下,我正在使用
/etc/pam.d/password-auth
. 鎖定*確實按預期工作,*但使用者沒有收到上述錯誤。這會導致很多混亂和沮喪,因為當他們確定使用正確的密碼時,他們無法知道身份驗證失敗的原因。實施遵循 NSA 的紅帽企業 Linux 5 安全配置指南。(pg.45) 據我了解,PAM 中唯一改變的是 /etc/pam.d/sshd 現在包含 /etc/pam.d/password-auth 而不是 system-auth。
如果您的安全策略要求在多次錯誤登錄嘗試後鎖定帳戶,請實施使用 pam_tally2.so。
要強制密碼鎖定,請將以下內容添加到 /etc/pam.d/system-auth。首先,添加到 auth 行的頂部:
auth required pam_tally2.so deny=5 onerr=fail unlock_time=900
其次,添加到帳戶行的頂部:
account required pam_tally2.so
編輯:
我在一次登錄嘗試期間通過重置 pam_tally2 收到錯誤消息。
user@localhost's password: (bad password) Permission denied, please try again. user@localhost's password: (bad password) Permission denied, please try again.
(從另一個 shell 重置 pam_tally2)
user@localhost's password: (good password) Account locked due to ... Account locked due to ... Last login: ... [user@localhost ~]$
你還需要
ChallengeResponseAuthentication yes
在/etc/ssh/sshd_config
.要顯示錯誤,
pam
需要一個對話功能。此選項告訴 ssh 提供更完整的 PAM 對話功能,其中包括提供輸出和要求任意輸入(而不是僅僅由 傳遞密碼
sshd
)。**編輯:**您需要
PasswordAuthentication no
確保密碼輸入始終通過此 PAM 對話。
不幸的是,你所追求的東西不可用。OpenSSH 將只允許或拒絕身份驗證。它不會讓攻擊者或笨拙的使用者知道任何進一步的資訊,這是標準行為。PAM 不知道 OpenSSH 的網路通信或它使用的任何其他特定於應用程序的行為。它只是一堆用於身份驗證的模組。
除此之外,pam_tally2 不提供任何類型的使用者定義的錯誤消息指令,因此您只能依賴系統日誌中的內容。
您可以研究的一種方法是修改 OpenSSH 程式碼庫(不太難),但這超出了這個問題的範圍。