在工作中为了防止恶意访问者暴力破解openssh口令。所我们需要设置登录系统失败锁定用户策略。
我的环境是Centos7
服务器1:192.168.239.142
服务器2:192.168.239.145
一、pam_tally2模块
编辑192.168.239.142的 /etc/pam.d/sshd 在第二行添加红框内容
# vi /etc/pam.d/sshd #%PAM-1.0 auth required pam_tally2.so onerr=fail deny=3 unlock_time=300 even_deny_root root_unlock_time=300 123
失败3次,锁定300秒
接下来测试用192.168.239.142
root账号ssh连接192.168.239.145 root账号
由此可见 第三次及时输入正确的也不允许登录
接下来使用这个命令解锁就可以正常登录了
查看用户登录失败的次数
如果锁定的时间较长的话,需要手动解锁,清空计数
二、pam_faillock 模块
适用于CentOS 8、Redhat中,pam_faillock PAM模块允许系统管理员锁定在指定次数内登录尝试失败的用户账户。限制用户登录尝试的次数主要是作为一个安全措施,旨在防止可能针对获取用户的账户密码的暴力破解
通过 pam_faillock模块,将登录尝试失败的数据储存在 /var/run/faillock 目录下每位用户的独立文件中
配置
添加以下命令行到 /etc/pam.d/system-auth文件和/etc/pam.d/password-auth文件中的对应区段:
auth required pam_faillock.so preauth silent audit deny=3 unlock_time=600 auth sufficient pam_unix.so nullok try_first_pass auth [default=die] pam_faillock.so authfail audit deny=3 account required pam_faillock.so 1234
注意:
auth required pam_faillock.so preauth silent audit deny=3 必须在最前面。
适用于root在pam_faillock 条目里添加 even_deny_root 选项
查看每个用户的尝试失败次数
# faillock 1
解锁一个用户的账户
# faillock --user lt --reset 1
faillock有下面几个命令可供使用
#使用以下命令查看失败计数
faillock --user username 1
#重置失败计数
faillock --user username --reset 1
#设置保存失败记录的目录
faillock --dir /var/run/faillock 1
1
1
1
参考链接 :
https://www.cnblogs.com/ltlinux/p/9837144.html
Centos7密码登录失败锁定设置
https://www.linuxprobe.com/centos-sshd.html