• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

Linux 封鎖、解鎖登入失敗次數過多的帳號 pam_faillock 教學與範例

介紹如何在 Linux 中透過 PAM 的 pam_faillock 模組設定,封鎖登入失敗次數過多的帳號,以及解鎖方法。

faillock.conf 設定

PAM 的 pam_faillock 模組有一個設定檔位於 /etc/security/faillock.conf,在這個設定檔可以設定 pam_faillock 模組的各項參數的預設值,對於在 PAM 設定檔中沒有指定的 pam_faillock 模組參數,就會以這裡的設定為準。

以下是 faillock.conf 設定檔中可用的參數與設定範例:

# 使用者登入失敗記錄的儲存位置
dir = /var/run/faillock

# 若遇到不存在的使用者也納入記錄
audit

# 不要輸出訊息
silent

# 不要透過 syslog 記錄訊息
no_log_info

# 只追蹤本機使用者
local_users_only

# 若 900 秒內連續 3 次登入失敗,則封鎖帳號
deny = 3
fail_interval = 900

# 封鎖帳號後,等 600 秒才再度開放
unlock_time = 600

# 連 root 帳號也納入監控對象
even_deny_root

# root 帳號封鎖後,等 900 秒才再度開放
root_unlock_time = 900

# 管理者群組(成員視同 root 帳號)
admin_group = adm

PAM 設定

再 PAM 的設定檔中,需要在 /etc/pam.d/common-auth 與 /etc/pam.d/common-account 兩個檔案中加入一些設定。以下是 /etc/pam.d/common-auth 設定檔範例:

# faillock 顯示訊息用(可省略)
auth    requisite                       pam_faillock.so preauth

auth    [success=1 default=ignore]      pam_unix.so nullok

# faillock 封鎖登入失敗次數過多的帳號
auth    [default=die]                   pam_faillock.so authfail
auth    sufficient                      pam_faillock.so authsucc

auth    requisite                       pam_deny.so
auth    required                        pam_permit.so
auth    optional                        pam_cap.so

以下是 /etc/pam.d/common-account 設定檔範例:

account [success=1 new_authtok_reqd=done default=ignore]        pam_unix.so
account requisite                       pam_deny.so
account required                        pam_permit.so

# faillock 封鎖登入失敗次數過多的帳號
account required      pam_faillock.so

更改設定檔之後,系統會立即生效。此時若有使用者登入失敗次數過多,就會被自動封鎖,封鎖的記錄可以在 /var/log/auth.log 中查詢。

May 16 10:26:34 imgqc sshd[117651]: pam_faillock(sshd:auth): Consecutive login failures for user test01 account temporarily locked

查詢、解除封鎖帳號

除了 /var/log/auth.log 紀錄檔之外,我們也可以用 faillock 指令來查詢 pam_faillock.so 認證失敗的記錄:

# 查詢認證失敗的記錄
faillock
test01:
When                Type  Source                                           Valid
2022-05-16 11:05:19 RHOST 129.226.225.131                                      V
2022-05-16 11:08:15 RHOST 129.226.225.131                                      V
2022-05-16 10:47:48 RHOST 61.177.173.35                                        I
2022-05-16 10:47:57 RHOST 61.177.173.35                                        I

faillock 指令亦可用來解除封鎖特定的帳號:

# 解除封鎖 test01
faillock --user test01 --reset

參考資料

  • 傲笑紅塵路:使用PAM模組管理使者帳戶安全性 (Managing the account security with PAM)
  • 網管人:操演阻絕SSH暴力攻擊,示範Linux彈性登入管理
  • Tecmint:How to Lock User Accounts After Failed Login Attempts
  • Tecmint:Use Pam_Tally2 to Lock and Unlock SSH Failed Login Attempts
  • askubuntu:How do I set up pam_faillock?

分類:Linux

讀者互動方式

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

主要資訊欄

搜尋

近期文章

  • Linux 檢查、測試 CPU AES-NI 硬體加速加密指令集教學
  • CentOS Linux 7.9 自行編譯、安裝 OpenSSH 9.0p1 伺服器教學與範例
  • Python 使用 zipfile 模組壓縮、解壓縮 ZIP 檔案教學與範例
  • Python 以 LINE Notify 自動傳送即時訊息、圖片教學與範例
  • Linux 使用 Prometheus 與 Grafana 監控伺服器狀態、發送告警 Email 簡訊教學與範例
  • Linux 設定 pam_tty_audit 記錄 SSH 使用者操作指令教學與範例
  • Linux 封鎖、解鎖登入失敗次數過多的帳號 pam_faillock 教學與範例
  • Python 使用 pytube 自動下載 YouTube 影片教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide