正文:
步骤一:让 sshd 使用可插入身份验证模块
1.1 修改 sshd 的配置文件
# vim /etc/ssh/sshd_config
将以下内容:
......
#UsePAM no
......
修改为:
......
UsePAM yes
......
1.2 让修改的 sshd 配置文件生效
# systemctl restart sshd
步骤二:让本地登录和 sshd 登录使用密码认证
2.1 确认 /etc/pam.d/login 配置文件
# cat /etc/pam.d/login | grep include
确保包含以下内容:
auth include common-auth
account include common-account
password include common-password
session include common-session
2.2 确认 /etc/pam.d/sshd 配置文件
# cat /etc/pam.d/sshd | grep include
确保包含以下内容:
auth include common-auth
account include common-account
password include common-password
session include common-session
步骤三:在 /etc/pam.d/common-auth-pc 配置文件中添加 pam_tally2.so 模块和相关参数
# vim /etc/pam.d/common-auth-pc
添加以下内容:
......
auth required pam_tally2.so onerr=fail audit silent deny=15 unlock_time=3000 even_deny_root root_unlock_time=3000
(
补充:
1) 这里的 pam_tally2.so 代表使用 pam_tally2.so 模块
2) 这里的 silent 代表不会显示信息性的消息
3) 这里的 deny=15 代表输错 15 次后会禁止登录
4) 这里的 unlock_time=3000 代表禁止登录后 3000 毫秒后可以重新登录
5) 这里的 even_deny_root 代表 root 用户和其它用户一样会被锁住
6) 这里的 root_unlock_time=3000 代表禁止 root 用户登录后 3000 毫秒后可以重新登录
)
步骤四:在 /etc/pam.d/common-account-pc 配置文件中添加使用 pam_tally2.so 模块和相关参数
# vim /etc/pam.d/common-account-pc
添加以下内容:
......
account required pam_tally2.so
(补充:这里的 pam_tally2.so 代表加载 pam_tally2.so 模块)
步骤五:用户登录失败的管理
5.1 查看某个用户近期输错了几次密码
# pam_tally2 -u <user>
5.2 重制某个用户登录密码输错次数
# pam_tally2 -u <user> -r --reset
步骤六:部分用户输错密码次数限制的排除
6.1 在 /etc/pam.d/common-auth-pc 配置文件中添加 pam_succeed_if.so 模块和相关参数
# vim /etc/pam.d/common-auth-pc
在此行:
......
auth required pam_tally2.so onerr=fail audit silent deny=15 unlock_time=3000 even_deny_root root_unlock_time=3000
下面添加:
......
auth [success=1 default=ignore] pam_succeed_if.so user in mingyuzhu1:mingyuzhu2:mingyuzhu3
(补充:这里以排除用户 zhumingyu1、zhumingyu2 和 zhumingyu3 的输错密码次数限制为例)
6.2 在 /etc/pam.d/common-account-pc 配置文件中添加 pam_succeed_if.so 模块和相关参数
# vim /etc/pam.d/common-account-pc
在此行:
......
auth required pam_tally2.so onerr=fail audit silent deny=15 unlock_time=3000 even_deny_root root_unlock_time=3000
下面添加:
......
auth [success=1 default=ignore] pam_succeed_if.so user in mingyuzhu1:mingyuzhu2:mingyuzhu3
(补充:这里以排除用户 zhumingyu1、zhumingyu2 和 zhumingyu3 的输错密码次数限制为例)
参考文献:
https://access.redhat.com/solutions/62949