linux系統中實現用戶登錄失敗鎖定功能最常用的方法是使用pam_tally2模塊。具體步驟如下:1. 確認系統是否支持pam_tally2,通過查找/lib64/security/pam_tally2.so或/lib/security/pam_tally2.so文件判斷;2. 修改pam配置文件,在/etc/pam.d/system-auth或/etc/pam.d/sshd的auth區域添加auth required pam_tally2.so deny=5 unlock_time=300啟用失敗計數;3. 使用sudo pam_tally2 –user=username –reset命令手動解鎖賬戶,或查看失敗次數;4. 注意事項包括該模塊僅對pam認證服務有效、默認不鎖定root賬戶、日志記錄位置及模塊順序影響行為邏輯等問題。
linux系統中實現用戶登錄失敗鎖定功能,最常用的方法是使用 pam_tally2 模塊。這個模塊可以記錄用戶的登錄失敗次數,并在達到設定值后自動鎖定賬戶。下面我們就來看看具體的配置方法。
一、確認系統是否支持 pam_tally2
首先需要確認你的系統中是否存在 pam_tally2 模塊。大多數基于 red Hat 的系統(如 centos、RHEL)和 debian 系列系統都默認安裝了 PAM 模塊,包括 pam_tally2。
你可以通過以下命令查看:
ls /lib64/security/pam_tally2.so # 64位系統 # 或者 ls /lib/security/pam_tally2.so # 32位系統
如果存在這個文件,說明模塊已經就緒,可以直接配置使用。
二、修改 PAM 配置文件啟用登錄失敗計數
在 Linux 中,PAM 的主配置文件通常是 /etc/pam.d/system-auth 或 /etc/pam.d/common-auth,具體取決于發行版。以 CentOS/RHEL 為例:
打開配置文件:
sudo vi /etc/pam.d/system-auth
在 auth 區域添加或修改如下行:
auth required pam_tally2.so deny=5 unlock_time=300
- deny=5:表示最多允許失敗 5 次,超過后鎖定賬戶。
- unlock_time=300:鎖定時間設置為 300 秒(即 5 分鐘),之后自動解鎖。
如果你希望在 SSH 登錄時也生效,還需要編輯 /etc/pam.d/sshd 文件,加入同樣的配置行。
三、配置賬戶解鎖方式
除了自動解鎖外,你還可以手動清空失敗計數來立即解鎖賬戶。使用以下命令:
sudo pam_tally2 --user=username --reset
這會將指定用戶的失敗次數重置為 0,相當于解鎖賬戶。
也可以查看當前用戶的失敗次數:
sudo pam_tally2 --user=username
輸出示例:
username 3
表示該用戶已失敗 3 次。
四、注意事項與常見問題
- 只對PAM認證起作用:pam_tally2 是基于 PAM 的機制,只對通過 PAM 進行認證的服務有效,比如 SSH、su、login 等,不適用于非 PAM 認證的程序。
- 不影響root賬戶鎖定:默認情況下,root 賬戶不會被鎖定(除非顯式配置)。
- 日志記錄:失敗登錄會被記錄在 /var/log/secure(CentOS/RHEL)或 /var/log/auth.log(Debian/ubuntu)中,方便排查問題。
- 配置順序有講究:PAM 配置文件中的模塊順序會影響行為邏輯,建議把 pam_tally2 放在前面的位置,避免被其他模塊跳過。
基本上就這些。雖然配置看起來不復雜,但很容易忽略一些細節,比如服務未啟用 PAM 模塊、路徑寫錯、或者忘記重啟服務等。只要一步步按需配置,就能很好地防止暴力破解攻擊。