PAM(可插入的验证模块)的pam_tally模块可以跟踪不成功的登录次数。当到达一个预先设定的限制值后,禁止这个用户的帐号。也就是通常讲的锁住用户。
为了使一个用户尝试登录4次失败,锁住这个用户,需要在/etc/pam.d/system-auth文件中加入下面两行:
auth required /lib/security/pam_tally.so onerr=fail no_magic_root
account required /lib/security/pam_tally.so deny=3 no_magic_root reset
下面是上面使用的选项的具体描述:
* onerr=fail
如果一些奇怪的事情发生,例如不能打开文件,这个决定了模块应该如何反应。
* no_magic_root
表示如何这个模块是由一个uid=0的用户触发,那么计数器就增加。
系统管理员应该使用这个选项用于例如:telnet/rsh/login之类的服务。
* deny=3
这个选项表明如果这个用户登录3次失败,就拒绝访问。
* reset
这个选项指示模块对成功的实体,应复位到0。
下面是一个实现这种策略的一个完全的例子:
auth required /lib/security/pam_env.so
auth required /lib/security/pam_tally.so onerr=fail no_magic_root
auth sufficient /lib/security/pam_unix.so likeauth nullok
auth required /lib/security/pam_deny.so
account required /lib/security/pam_unix.so
account required /lib/security/pam_tally.so deny=5 no_magic_root reset
password requisite /lib/security/$ISA/pam_cracklib.so retry=3
password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow
password required /lib/security/$ISA/pam_deny.so
session required /lib/security/$ISA/pam_limits.so
session required /lib/security/$ISA/pam_unix.so