针对对RedhatLinux系统维护账号登录失败进行锁定
TR1:RHEL6、RHEL5版本均可以实现登录次数、超时时间、解锁时间;
TR2.RHEL4版本无法实现,只能支持root用户解锁;
实现原理:
主要使用Linux的PAM模块实现,pam_tally.so[RHEL4内置]/pam_tally2.so[RHEL5、RHEL6内置]模块可以控制限制用户密码认证失败的次数上限;
由于pam_tally.so属于比较老的版本且支持系统内核版本均较低,不具有pam_tally2.so的"认证失败次数超限内后,在一段时间锁定用户及解锁用户"的功能,只能实现一旦认证失败次数超限后永久锁定账户,直到root用户将该用户解锁.
PAM的目录位于/etc/pam.d,其下有形如sshd,ftp,等等的对应各种程序的认证规则文件.
若希望所有密码认证均应用规则,可直接修改system-auth文件
修改方案(针对RHEL5、6):
备注:【RHEL4不支持该设置方式,设置后会导致用户无法登陆】
目前我们只是需要限制对ssh远程连接规则,故需要修改 /etc/pam.d/sshd
文件,且必须要加在该文件第一行,因为该文件有验证顺序;
【】
为注释
vim /etc/pam.d/login #%PAM-1.0
auth required pam_tally2.so deny=20 unlock_time=300 even_deny_root
root_unlock_time=30
解析:
auth required pam_tally2.so deny=20【限制用户登录失败次数】 unlock_time=300【限制用户锁定时间,时间单位:s】 even_deny_root【限制root用户】
root_unlock_time=30
【限制root用户解锁时间,时间单位:s】 PS:若不对root用户做限制,可以把后面两个字段拿掉
目前红帽官方对RHEL4版本已经不提供支持,参考了相关KB[只针对RHEL5、6],信息如下(需login):
https://access.redhat.com/site/solutions/37687