正文:
步骤一:在 /etc/pam.d/sshd 配置文件中添加 pam_tally2.so 模块和相关参数
# vim /etc/pam.d/sshd
在此行:
......
auth include common-auth
......
下面添加:
......
auth required pam_tally2.so onerr=fail audit silent deny=15 unlock_time=3000 even_deny_root root_unlock_time=3000
......
在此行:
......
account include common-account
......
下面添加:
......
account required pam_tally2.so
......
或者:
# sed -i '/auth.*include.*common-auth/a auth required pam_tally2.so onerr=fail audit silent deny=15 unlock_time=3000 even_deny_root root_unlock_time=3000' /etc/pam.d/sshd; sed -i '/account.*include.*common-account/a account required pam_tally2.so' /etc/pam.d/sshd
(
补充:
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 毫秒后可以重新登录
)
步骤二:用户登录失败的管理
2.1 查看某个用户近期输错了几次密码
# pam_tally2 -u <user>
2.2 重制某个用户登录密码输错次数
# pam_tally2 -u <user> -r --reset
步骤三:部分用户输错密码次数限制的排除
# vim /etc/pam.d/sshd
在此行:
......
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