設定Linux使用者連續N次輸入錯誤密碼進行登陸時,自動鎖定X分鐘,linux
一、在字元終端下,實現某一使用者連續錯誤登陸N次後,就鎖定該使用者X分鐘(pam_tally2)
執行 vim /etc/pam.d/login在#%PAM-1.0 下新起一行,加入auth required pam_tally2.so deny=3 unlock_time=5 even_deny_root root_unlock_time=10如果不限制root使用者,則可以寫成auth required pam_tally2.so deny=3 unlock_time=5even_deny_root 也限制root使用者;deny 設定普通使用者和root使用者連續錯誤登陸的最大次數,超過最大次數,則鎖定該使用者;unlock_time 設定普通使用者鎖定後,多少時間後解鎖,單位是秒;root_unlock_time 設定root使用者鎖定後,多少時間後解鎖,單位是秒;
備忘:
1、此處使用的是 pam_tally2 模組,如果不支援 pam_tally2 模組可以使用 pam_tally 模組。另外,不同的pam版本,設定可能有所不同,具體使用方法,可以參照相關模組的使用規則。
2、也可以直接在 system-auth 檔案中直接添加這些命令,修改完成後,凡是調用 system-auth 檔案的服務,都會生效。因為有自動解鎖時間,所以,不用擔心全部限制後,會出現永遠無法登陸的”尷尬”情況。
3、可以使用 pam_tally2 -r -u username 命令,手動清除某使用者記錄次數。
二、設定Linux使用者連續N次登陸失敗時,自動鎖定X分鐘(pam_tally)
1、如果想在所有登陸方式上,限制所有使用者,可以在 /etc/pam.d/system-auth 中增加2行
auth required pam_tally.so onerr=fail no_magic_rootaccount required pam_tally.so deny=3 no_magic_root even_deny_root_account per_user resetdeny 設定普通使用者和root使用者連續錯誤登陸的最大次數,超過最大次數,則鎖定該使用者;no_magic_root 連root使用者也在限制範圍,不給root特殊許可權。詳細參數的含義,參見 /usr/share/doc/pam-xxxx/txts/README.pam_tally如果不想限制root使用者,可以將 even_deny_root_account 取消掉。
2、針對不同服務來限制不同登陸方式
#只在本地文本終端上做限制,可以編輯如下檔案,添加的內容和上方一樣。vim /etc/pam.d/login#只在遠程telnet、ssh登陸上做限制,可以編輯如下檔案,添加的內容和上方也一樣。vim /etc/pam.d/remotevim /etc/pam.d/sshd
3、手動解除鎖定:
#查看某一使用者錯誤登陸次數:pam_tally –user username#例如,查看work使用者的錯誤登陸次數:pam_tally –user work#清空某一使用者錯誤登陸次數:pam_tally –user username –reset#例如,清空 work 使用者的錯誤登陸次數,pam_tally –user work –resetfaillog -r 命令亦可。
4、pam_tally沒有自動解鎖功能
因為pam_tally沒有自動解鎖的功能,所以,在設定限制時,要多加註意,萬一全做了限制,而 root使用者又被鎖定了,就只能夠進單一使用者模式解鎖了,當然,也可以添加crontab任務,達到定時自動解鎖的功能,但需要注意的是,如果在/etc /pam.d/system-auth 檔案中添加了pam_tally的話,當root被鎖定後,crontab任務會失效,所以,最好不要在system-auth 檔案中添加pam_tally。