Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux 使用 PAM (pam_tally2) 限制使用者登入失敗次數與自動解鎖

編輯:關於 Linux

為防止暴力破解攻擊,Linux 可透過 PAM(可插拔認證模組)的 pam_tally2.so 模組,記錄登入失敗次數,超過閾值時自動鎖定帳號,並在設定時間後自動解鎖。本文說明 /etc/pam.d/login 設定範例與參數詳解。

一、編輯 PAM 登入設定檔

sudo vim /etc/pam.d/login

在 #%PAM-1.0 之後、第一條 auth required 行之前 插入:

auth required pam_tally2.so deny=3 lock_time=300 even_deny_root root_unlock_time=10

完整檔案範例:

#%PAM-1.0
auth required pam_tally2.so deny=3 lock_time=300 even_deny_root root_unlock_time=10
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth include system-auth
account required pam_nologin.so
account include system-auth
password include system-auth
session required pam_selinux.so close
session optional pam_keyinit.so force revoke
session required pam_loginuid.so
session include system-auth
session optional pam_console.so
session required pam_selinux.so open

二、關鍵參數說明

參數說明
deny=N連續登入失敗達 N 次即鎖定帳號(含 root,若設 even_deny_root)
lock_time=S一般使用者鎖定後自動解鎖秒數(預設不自動解鎖)
unlock_time=S同 lock_time,部分版本參數名不同
root_unlock_time=Sroot 帳號鎖定後自動解鎖秒數
even_deny_root將鎖定規則同樣套用至 root 帳號(預設 root 不受限)
reset登入成功時重置失敗計數器

三、管理指令

  • 查看失敗計數:pam_tally2 -u username
  • 手動解鎖/歸零:pam_tally2 -u username -r
  • 查看所有:pam_tally2

四、注意事項

  1. 規則順序極重要:pam_tally2.so 必須放在 pam_unix.so / system-auth 等驗證模組之前,否則使用者輸入正確密碼仍可登入(計數器未遞增)。
  2. 若系統無 pam_tally2.so,可改用 pam_tally.so(參數類似,無 lock_time 需手動解鎖)。
  3. SSH 登入需另編輯 /etc/pam.d/sshd 套用相同規則。
  4. 圖形登入(GDM/LightDM/SDDM)需編輯對應 /etc/pam.d/gdm-password 等檔案。

PAM 設定示意圖

正確配置 pam_tally2 後,系統將自動防禦暴力嘗試,鎖定異常帳號並按時自動解鎖,大幅提升伺服器登入安全性。

Copyright © Windows教程網 All Rights Reserved