2024年3月28日 星期四

在 Oracle Linux 8/9 使用pam_faillock鎖定使用者帳戶

在 Oracle Linux 8/9 使用pam_faillock鎖定使用者帳戶

在之前在Linux使用pam_faillock鎖定使用者帳戶,是在CentOS 7.9設定達成,在Oracle Linux 8/9中的設定參考Red Hat Enterprise Linux 8/9的資料2進行。

設定配置

在Red Hat Enterprise Linux 8/9 不建議直接編輯/etc/pam.d/system-auth和/etc/pam.d/password-auth。
將使用authselect啟用/停用pam_faillock,在RHEL 7則是使用authconfig 進行配置。

要正確使用faillock.conf配置,請先更新至authselect-1.2.1-2.el8和pam-1.3.1-8.el8或更高版本。
# dnf upgrade authselect pam

啟用faillock

# authselect current                                          <--- 檢查現有設定 
# authselect check                                           <--- 檢查現有設定
# authselect enable-feature with-faillock           <--- 啟用faillock 
# authselect select sssd with-faillock                 <--- 使用設定檔並啟用faillock
# authselect select sssd with-faillock  --force    <--- 使用 --force 強制設定

停用faillock

# authselect disable-feature with-faillock

設定faillock限制

faillock限制設定檔/etc/security/faillock.conf
---
deny=3
unlock_time=600
silent
---
使用者3次失敗後鎖定使用者帳號10分鐘(600 秒)。

驗證檢查

使用faillock 重設/檢查失敗記錄。

顯示username認證失敗記錄:
# faillock --user username

重置username認證失敗記錄:
# faillock --user username --reset

特別設定

限制root

如果要特別限制root,在/etc/security/faillock.conf,增加even_deny_root。

變更鎖定重置持續時間

連續認證失敗時間間隔由fail_interval=n選項控制。預設值為 900(15 分鐘)。
若要將間隔變更為 10 分鐘,請在/etc/security/faillock.conf 修改。
---
fail_interval=600
---

排除特定用戶

如果要排除普通使用者在多次登入失敗後被鎖定,請將使用者新增至使用者群組(例如no_faillock_group),
在/etc/security/faillock.conf 新增以下設定。
---
admin_group=no_faillock_group
---

持續帳戶鎖定

pam_faillock 使用的預設目錄通常會在系統啟動時清除,因此系統重新啟動後也將重新啟用存取。
如果希望持續帳戶鎖定,請在/etc/security/faillock.conf 增加dir=選項。
---
dir=/var/log/faillock
---
請確認目錄已創建,系統重新啟動後帳戶將保持鎖定狀態。
mkdir /var/log/faillock -p

如果指定/var/log/faillock目錄但無效,請確認系統是否啟用SELinux。
SELinux 執行有針對性的策略,將要求任何非預設計數目錄的安全性權限與預設目錄的安全性權限相符。如果不更新安全性權限,pam_faillock 模組無法將失敗的登入紀錄嘗試寫入非預設計數目錄。

使用以下指令檢查非預設計數目錄的安全性權限
# ls -Zd /var/log/faillock
unconfined_u:object_r:var_log_t:s0 /var/log/faillock

如果非預設計數目錄的安全性權限不是faillog_t,
使用以下指令更新安全性權限為faillog_t
# semanage fcontext -a -t faillog_t "/var/log/faillock(/.*)?"

使用以下指令更新非預設故障鎖定目錄/子目錄和檔案正確權限。
# restorecon -R -v /var/log/faillock

參考資料
How to use pam_faillock in Red Hat Enterprise Linux 6 & 7 to lockout users due to successive failed login attempts
What is pam_faillock and how to use it in Red Hat Enterprise Linux 8 & 9?

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。