又是等保。先起个稿。
目标连续输错密码m次,限制登陆了n分钟
rhel8 已经没有 pam_tally2.so 模块了,全面使用 pam_faillock.so
涉及system-auth,password-auth
grep system-auth /etc/pam.d
grep password-auth /etc/pam.d
能看得出两个文件都是被包含在其他文件内,所以改这两个,其他程序都会生效。其中我们用得最多的sshd 则是包含了password-auth,没有包含system-auth,所以按网上只知道改system-auth则不会让ssh登录受到限制
vim /etc/pam.d/system-auth
vim /etc/pam.d/password-auth
连续错误2次,禁止登录60秒
找到两个文件 auth 段第一个 pam_unix.so
centos8.1 该行是:
auth sufficient pam_unix.so nullok try_first_pass
前面加
auth requisite pam_faillock.so preauth even_deny_root deny=2 unlock_time=60
后面加
auth [default=die] pam_faillock.so authfail even_deny_root deny=2 unlock_time=60
auth sufficient pam_faillock.so authsucc even_deny_root deny=2 unlock_time=60
写法参考了
man pam_faillock
里的例子。
原文
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
修改后
####### 连续错误2次,禁止登录60秒
####### 新加
auth requisite pam_faillock.so preauth even_deny_root deny=2 unlock_time=60
####### 原文
auth sufficient pam_unix.so nullok try_first_pass
####### 新加
auth [default=die] pam_faillock.so authfail even_deny_root deny=2 unlock_time=60
####### 新加
auth sufficient pam_faillock.so authsucc even_deny_root deny=2 unlock_time=60
####### 原文
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
没有 preauth 或者 放 pam_unix.so 后面的话,一点效果都没
authfail 和 authsucc 放 pam_unix.so 前面的话,永远登录失败
authfail 和 authsucc 放 pam_succeed_if.so 后面的话,限制不了 root
换个说法:
preauth 要出现在第一个auth pam_unix.so 前
prefail, presucc要出现在第一个auth pam_unix.so 后,auth pam_succeed_if.so 前
这大概和 sufficient, requisite, required 有关