操作系统:龙蜥8.6 x86_64
查看是否安装pam模块
rpm -qa | grep pam
查看可以使用的认证模块,因为有的系统是pam_tally2.
cd /etc/pam.d
ls
经过查看,该服务器是使用的pam_faillock 模块
打开/etc/pam.d/password-auth
的 PAM 配置文件:
vim /etc/pam.d/password-auth
在文件中找到或添加以下行(确保在适当的位置添加):
具体的代码如下:
auth required pam_faillock.so preauth silent audit deny=3 unlock_time=600
auth [default=die] pam_faillock.so authfail audit deny=3
account required pam_faillock.so
- 解释一下这些参数:
deny=3
:允许的最大失败次数。在这里,设置为3次。unlock_time=600
:账户被锁定的时间(以秒为单位)。在这里,设置为10分钟(600秒)。preauth
和authfail
分别用于预认证和认证失败时调用pam_faillock.
保存并关闭文件。
默认情况,锁定机制对root用户不生效的,然后,将该文件的内容复制到system-auth文件中,执行如下命令:
cat /etc/pam.d/password-auth > /etc/pam.d/system-auth
重启 SSH 服务以应用更改
根据您的 Linux 发行版,使用以下命令重启 SSH 服务:
systemctl restart sshd
测试配置是否生效
新建测试用户,并修改密码
[didiplus@rocky ~]$ useradd didiplus
[didiplus@rocky ~]$ passwd didiplus #为didiplus用户修改密码
使用 SSH 连接到您的 Linux 服务器,故意输入错误密码三次。
第三次失败后,尝试使用正确的密码登录。如果一切设置正确,您将会被提示账户已被锁定,并显示锁定时间。
通过faillock 可以查看被锁定的时间,从那个台服务器登录的。如下图:
也可以通过日志文件查看,如下图:
通过这些步骤,您已经成功地配置了 pam_faillock,使得在 SSH 登录失败3次后自动锁定用户账户10分钟,从而增强了系统的安全性。
如果需要手动解锁账户,可以使用 faillock 命令:
faillock --user <username> --reset