步骤目录:
步骤一:背景了解
步骤二:设置 SSH 的登录限制
2.1 在 sshd 中开启 UsePAM
2.1.1 修改 sshd 的配置文件
2.1.2 让修改的 sshd 配置文件生效
2.2 确保 /etc/pam.d/login 包含 password-auth
2.3 添加 pam_faillock 模块
步骤三:远程登录密码输错次数的用户管理
3.1 显示某个用户近期输错了几次密码
3.2 重制所有远程登录密码输错次数
具体的操作步骤:
步骤一:背景了解
从 CentOS Linux 8 & RHEL 8 开始,系统的身份验证模块从 CentOS Linux 7 & RHEL 7 的 pam_tally2 换成了 pam_faillock
步骤二:设置 SSH 的登录限制
2.1 在 sshd 中开启 UsePAM
2.1.1 修改 sshd 的配置文件
# vim /etc/ssh/sshd_config
将以下内容:
......
#UsePAM no
......
修改为:
......
UsePAM yes
......
2.1.2 让修改的 sshd 配置文件生效
# systemctl restart sshd
2.2 确保 /etc/pam.d/login 包含 password-auth
# cat /etc/pam.d/login | grep password-auth
auth substack password-auth
account include password-auth
password include password-auth
session include password-auth
(注意:如果输出结果中不包含这 4 条内容则需要手动添加)
2.3 添加 pam_faillock 模块
# vim /etc/pam.d/password-auth
在
......
auth required pam_env.so
......
这一行下面添加:
......
auth required pam_faillock.so preauth silent audit even_deny_root deny=6 unlock_time=180
......
在
auth sufficient pam_unix.so try_first_pass nullok
这一行下面添加:
......
auth [default=die] pam_faillock.so authfail audit even_deny_root deny=6 unlock_time=180
......
在
account required pam_unix.so
这一行下面添加:
......
account required pam_faillock.so
......
(补充:这里以包括 root 用户每使用密码 ssh 远程登录失败 6 次则被锁定 180 秒为例)
步骤三:远程登录密码输错次数的用户管理
3.1 显示某个用户近期输错了几次密码
# faillock --user root
(补充:这里以显示 root 用户近期输错了几次密码为例)
3.2 重制所有登录密码输错次数
# faillock --reset