Linux使用PAM锁定多次登陆失败的用户(含重置错误次数)

插件式鉴别模块(PAM)机制采用模块化设计和插件功能,使得我们可以轻易地在应用程序中插入新的鉴别模块或替换原先的组件,而不必对应用程序做任何修改,从而使软件的定制、维持和升级更加轻松--因为鉴别机制与应用程序之间相对独立。应用程序可以通过 PAM API 方便的使用 PAM 提供的各种鉴别功能,而不必了解太多的底层细节。此外,PAM的易用性也较强,主要表现在它对上层屏蔽了鉴别的具体细节,所以用户不必被迫学习各种各样的鉴别方式,也不必记住多个口令;又由于它实现了多鉴别机制的集成问题,所以单个程序可以轻易集成多种鉴别机制如 Kerberos 鉴别机制和 Diffie - Hellman 鉴别机制等,但用户仍可以用同一个口令登录而感觉不到采取了各种不同鉴别方法。

细节描述 参考   http://www.2cto.com/os/201303/198419.html

第一栏,service表示使用PAM的应用程序,比如login、passwd、rlogin等。这一栏中的OTHER表示所有没在该文件中显式列出的应用。也就是说,如果所有程序具有相同的需求,整个配置文件只需要一行即可,并且该行的第一栏为OTHER

第二栏,module_type指明程序所用PAM底层模块的类型:auth表示鉴别类模块;account表示帐户类模块;session表示会话类模块;password表示口令类模块。注意,每行只能指定一种类型模块,如果程序需要多种模块的话,可在多行中分别规定。

第三栏,control_flag规定如何处理模块的成功和失败情况。单个应用程序可以调用多种底层模块,这通常称为"堆叠",对应于某程序的按照配置文件中出现顺序执行的所有模块成为"堆",堆中的各模块的地位与出错时的处理由control_flag栏的取值决定,它的五种可能的取值分别为 required、Requisite、sufficient或_optional

修改如下文件:

/etc/pam.d/sshd    (远程ssh) Linux学习,http:// linux.it.net.cn

/etc/pam.d/login    (终端) IT网,http://www.it.net.cn

 

在第一行下即#%PAM-1.0的下面添加:
auth    required    pam_tally2.so    deny=3    unlock_time=600 even_deny_root root_unlock_time=1200

各参数解释:
even_deny_root    也限制root用户;
     
deny           设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户
     
unlock_time        设定普通用户锁定后,多少时间后解锁,单位是秒;
     

root_unlock_time      设定root用户锁定后,多少时间后解锁,单位是秒;

 

 

 

 

手动解除锁定:
查看某一用户错误登陆次数:
pam_tally –-user
例如,查看work用户的错误登陆次数:
pam_tally –-user work
清空某一用户错误登陆次数:
pam_tally –-user –-reset
例如,清空 work 用户的错误登陆次数,
pam_tally –-user work –-reset

 

faillog -r 命令亦可。

如果前几条没生效的话,也可以使用命令:

pam_tally2 –u tom --reset将用户的计数器重置清零(SLES 11.2下用此命令才重置成功)

 

查看错误登录次数:pam_tally2 –u tom

posted @ 2017-05-23 13:44  Pomme_king  阅读(1584)  评论(0)    收藏  举报