在Linux使用pam_faillock鎖定使用者帳戶
為了增加主機安全性,將限定使用者帳號登入密碼錯誤次數後鎖定使用者帳戶。現有主機OS為CentOS7.9,參考RedHat官網資料1,資料2,資料3。
發現在Red Hat Enterprise Linux 7可以使用pam_faillock和pam_tally 2種方式。
將使用pam_faillock來設定使用者3次失敗後鎖定使用者帳號10分鐘(600 秒)的功能。
設定
在RHEL 7.x 參考資料1,有2個方法。
第一個直接修改PAM設定檔
直接將以下設定加入/etc/pam.d/system-auth和/etc/pam.d/password-auth,2個檔案都要。
要照順序加入3行設定,才會生效。
---
auth required pam_env.so
auth required pam_faillock.so preauth silent audit deny=3 unlock_time=600 # 增加設定
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
auth required pam_faillock.so authfail audit deny=3 unlock_time=600 # 增加設定
auth required pam_deny.so
account required pam_faillock.so # 增加設定
account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 1000 quiet
account required pam_permit.so
---
要照順序加入3行設定,才會生效。
---
auth required pam_env.so
auth required pam_faillock.so preauth silent audit deny=3 unlock_time=600 # 增加設定
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
auth required pam_faillock.so authfail audit deny=3 unlock_time=600 # 增加設定
auth required pam_deny.so
account required pam_faillock.so # 增加設定
account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 1000 quiet
account required pam_permit.so
---
第二個是使authconfig 進行配置
要注意 authconfig-6.2.8-19 及更高版本支援 pam_faillock,才不會出現錯誤。
啟用
authconfig --enablefaillock --faillockargs="deny=5 unlock_time=1200" --update
停用
authconfig --disablefaillock --update
功能驗證
使用faillock 指令,可以查看/重設身份驗證失敗記錄顯示使用者認證失敗記錄:
# faillock --user username
重置使用者認證失敗記錄:
# faillock --user username --reset
特別設定
變更鎖定重置持續時間
當連續認證失敗重覆發生的鎖定時間,其間隔可以由fail_interval=n 選項控制。預設值為 900(15 分鐘)。若要將間隔變更為 10 分鐘,可以新增選項,
---
auth required pam_faillock.so preauth silent audit fail_interval=600 deny=3 unlock_time=600 # 增加 fail_interval
---
指定root用戶不同設定
如果要設定root用戶和普通用戶不同設定,增加even_deny_root設定---
auth required pam_faillock.so preauth silent audit deny=3 even_deny_root unlock_time=1200 root_unlock_time=600
---
排除特定用戶不鎖定
如要排除使用者在多次登入失敗後鎖定,請將以下行新增至pam_faillock並將user1 、 user2等替換為實際使用者名稱:---
auth [success=1 default=ignore] pam_succeed_if.so user in user1:user2:user3 #增加設定,排除特定使用者
auth required pam_faillock.so authfail audit deny=3 unlock_time=600
---
sshd服務配置調整
如果pam_faillock.so沒有正常運作,請檢查sshd服務的配置。檢查sshd設定檔/etc/ssh/sshd_config,請確認ChallengeResponseAuthentication和PasswordAuthentication設定正確。
---
ChallengeResponseAuthentication yes
PasswordAuthentication no
---
重新啟動sshd服務,使配置變更生效。
#systemctl restart sshd
參考資料
How to use pam_faillock in Red Hat Enterprise Linux 6 & 7 to lockout users due to successive failed login attempts
https://access.redhat.com/solutions/7002274
What is pam_faillock and how to use it in Red Hat Enterprise Linux 8 & 9?
https://access.redhat.com/solutions/62949
Difference in the behavior of unlock_time in pam_faillock and pam_tally modules
https://access.redhat.com/solutions/649663
How to use pam_faillock in Red Hat Enterprise Linux 6 & 7 to lockout users due to successive failed login attempts
https://access.redhat.com/solutions/7002274
What is pam_faillock and how to use it in Red Hat Enterprise Linux 8 & 9?
https://access.redhat.com/solutions/62949
Difference in the behavior of unlock_time in pam_faillock and pam_tally modules
https://access.redhat.com/solutions/649663
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。