正文:
步骤一:让 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 system-auth
确保包含以下内容:
auth substack system-auth
account include system-auth
password include system-auth
session include system-auth
2.2 确认 /etc/pam.d/sshd 配置文件
# cat /etc/pam.d/sshd | grep password-auth
确保包含以下内容:
auth substack password-auth
account include password-auth
password include password-auth
session include password-auth
步骤三:在 /etc/pam.d/system-auth-ac 配置文件中添加 pam_tally2.so 模块和相关参数
# vim /etc/pam.d/system-auth-ac
添加以下内容:
......
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/password-auth-ac 配置文件中添加 pam_tally2.so 模块和相关参数
# vim /etc/pam.d/password-auth-ac
添加以下内容:
......
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 毫秒后可以重新登录
)
步骤五:部分用户输错密码次数限制的排除
5.1 在 /etc/pam.d/system-auth-ac 配置文件中添加 pam_succeed_if.so 模块和相关参数
# vim /etc/pam.d/system-auth-ac
在此行:
......
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 的输错密码次数限制为例)
5.2 在 /etc/pam.d/password-auth-ac 配置文件中添加 pam_succeed_if.so 模块和相关参数
# vim /etc/pam.d/password-auth-ac
在此行:
......
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