centos pam模块设置 登录输入错误密码多次锁定账号时间PAM实现方式

转载于:https://www.leftso.com/article/47.html
/etc/pam.d/login 文件用于限制终端(VNC)登录
/etc/pam.d/sshd  文件用于限制ssh远程连接登录

设置

注意:添加内容必须在#%PAM-1.0后面第一行
auth  required  pam_tally2.so  deny=3  unlock_time=300 even_deny_root root_unlock_time=300
修改PAM配置文件将马上生效
参数说明:
deny    设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户;
unlock_time   设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time   设定root用户锁定后,多少时间后解锁,单位是秒;
此处使用的是 pam_tally2 模块,如果不支持 pam_tally2 可以使用 pam_tally 模块。另外,不同的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则

验证

刻意输入错误root密码三次 第四次时候报错 
如图翻译:密码认证失败密码认证失败。请确认用户名和密码是否正确。
验证没问题

解锁用户解决该问题

查看所有用户密码错误次数  #pam_tally2 --user
查看指定用户密码错误次数  #pam_tally2 --user username
解除某个用户锁定  #pam_tally2 -r -u username

文件内注释掉策略解决该问题

pam_tally2模块用于记录用户登录失败的次数,并在达到一定的阈值后禁止用户继续尝试登录(锁定用户)。
pam_tally2模块分为两部分,一部分是pam_tally2.so,另一部分是pam_tally2。它基于PAM模块,可用于检查和操作计数器文件。它可以显示用户登录尝试次数,单独设置计数,也可清除计数,解锁所有用户登录锁定。
登录失败计数器记录在默认的/var/log/tallylog文件中。

这些操作可以看到都是在/etc/pam.d/ssh文件做的操作 也就是说基于pam_tally2模块让root用户在ssh远程连接方式锁定的
并不妨碍console方式(login/tty)root用户的登录 也就是说并不是root用户被锁定了 而是基于pam_tally2模块ssh远程连接方式下的root登录方式被锁定
注释掉该行后立即生效!!!! 注释后通过ssh方式登录root用户成功。