維運RHEL平台的主機,為了符合資安需求,時常需進行系統帳號的管理並設定一些規範,本文分享透過Linux PAM模組設定系統帳號的密碼輸入錯誤達一定次數則被鎖定
[Lab Information]
OS: Rat Hat Enterprise Linux 5.6 64 bit
Linux Kernel: 2.6.18
CPU Type: Intel Xeon CPU E5-2620 2.00GHz
CPU Core: 8
Memory: 16GB
OS root password: 12345678
OS godspeed password: 12345678
[About PAM Modules]
關於PAM模組的介紹,可參閱鳥哥的教學文章「Linux 帳號管理與 ACL 權限設定」中「PAM 模組簡介」
而每個程式的設定檔皆放置於目錄:/etc/pam.d
每個設定檔當中,除了第一行宣告PAM版本之外,其他任何「#」開頭的都是註解,而每一行都是一個獨立的驗證流程,每一行可以區分為三個欄位,其功能相關說明可參閱PAM 模組設定語法
[Modify System-Auth File]
介紹完PAM模組之後,接下來就是異動設定檔:/etc/pam.d/system-auth
此次分享的主題是「設定系統帳號的密碼輸入錯誤達一定次數則被鎖定」,所以需要用到模組:pam_tally.so,該模組檔案依據作業系統位元版本分別放置目錄:/lib/security(32 bit)及/lib64/security(64 bit)
檔案異動內容可參閱下列步驟,編輯完畢儲存後立即生效
vim /etc/pam.d/system-auth
#Add or amend the following lines in the "/etc/pam.d/system-auth" file.
auth required pam_tally.so no_magic_root
account required pam_tally.so deny=3 no_magic_root
# "deny=3", the user’s account will be locked after 3 failed login attempts.
# "no_magic_root" setting keeps it from locking the root user.
[Testing and Watch Account Status]
組態完畢後,即可進行下列測試:
使用帳號:godspeed進行登入測試,並且密碼輸入錯誤超過三次,如下訊息
login as: godspeed
godspeed@192.168.1.102's password:
Access denied
godspeed@192.168.1.102's password:
Access denied
godspeed@192.168.1.102's password:
Access denied
godspeed@192.168.1.102's password:
Access denied
godspeed@192.168.1.102's password:
Access denied
godspeed@192.168.1.102's password:
Access denied
使用帳號:root執行faillog command即可觀察帳號:godspeed狀態,步驟如下:
[root@nagios-staging ~]# faillog -u godspeed
Login Failures Maximum Latest On
godspeed 6 0 10/14/13 23:31:53 +0800 192.168.1.2
此時帳號:godspeed縱使輸入正確的密碼也無法在登入主機,若要密碼輸入錯誤次數則執行下列步驟:
[root@nagios-staging ~]# faillog -r -u godspeed
[root@nagios-staging ~]# faillog -u godspeed
Login Failures Maximum Latest On
godspeed 0 0 10/14/13 23:44:20 +0800 192.168.1.2
[Reference]
鳥哥的 Linux 私房菜
Linux可插可拔的認証模組
How to Lock User Accounts After Login Failure