• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
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

主要資訊欄

搜尋

近期文章

  • Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤
  • Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例
  • Linux 網路設定 ip 指令用法教學與範例
  • Windows 使用 TPM 虛擬智慧卡保護 SSH 金鑰教學與範例
  • Linux 以 Shamir’s Secret Sharing 分割保存金鑰教學與範例
  • Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例
  • Linux 以 Cryptsetup 與 LUKS 加密磁碟教學與範例
  • Linux 使用 age 簡潔的加密、解密工具使用教學與範例

推薦網站

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

關注本站

  • 電子郵件
  • Facebook

公益

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

Copyright © 2021 · Office Guide