使用 pam_tally2.so 達成登入安全機制
若要限制帳戶使用 ssh 登入時連續失敗 3 次就自動鎖定帳戶,並在特定的時限自動解除,可以使用 pam_tally2.so 的 PAM 模組進行設定。
需求:
- 記錄 ssh 登入失敗的資訊
- 由 ssh 登入失敗超過 3 次,該帳戶即被鎖定無法入
- 鎖定後 1 小時後解除鎖定,可再次使用 ssh 登入
備份 /etc/pam.d/sshd
1 |
root # cp /etc/pam.d/sshd /etc/pam.d/sshd.org |
修改 /etc/pam.d/sshd
在 auth required pam_sepermit.so 下一行加入
1 |
auth required pam_tally2.so deny=3 unlock_time=3600 even_deny_root |
在 account required pam_nologin.so 下一行加入
1 |
account required pam_tally2.so |
做完如下參考
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
1 #%PAM-1.0 2 auth required pam_sepermit.so 3 auth required pam_tally2.so deny=1 unlock_time=30 even_deny_root 4 auth include password-auth 5 account required pam_nologin.so 6 account required pam_tally2.so 7 account include password-auth 8 password include password-auth 9 # pam_selinux.so close should be the first session rule 10 session required pam_selinux.so close 11 session required pam_loginuid.so 12 # pam_selinux.so open should only be followed by sessions to be executed in the user context 13 session required pam_selinux.so open env_params 14 session optional pam_keyinit.so force revoke 15 session include password-auth |
不用重開機,立即生效
查看登入錯誤的 log
1 |
root # /bin/egrep --color 'PAM:\ Authentication\ failure.*for\ .*' /var/log/secure |
清除所有被鎖定的帳戶
1 |
root # pam_tally2 --reset |