linux PAM 用户登录认证

时间:2016-08-01 23:34:43   收藏:0   阅读:2094

PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的API,将系统提供的服务 和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系 统中添加新的认证手段。从本篇开始会总结一些常用的pam模块及其实现的功能,今天讲的是pam_tally2模块。

一、参数与场景

应用场景:设置Linux用户连续N次输入错误密码进行登陆时,自动锁定X分钟或永久锁定(这里的永久锁定指除非进行手工解锁,否则会一直锁定)。

配置格式:


pam_tally2.so [file=/path/to/counter] [onerr=[fail|succeed]] [magic_root] [even_deny_root] [deny=n] [lock_time=n] [unlock_time=n]  
         
              [root_unlock_time=n] [serialize] [audit] [silent] [no_log_info]



参数相关:

1、全局参数





上面的五项全局参数,一般在使用中都不需要单独配置。

2、认证选项



二、使用示例

1、示例:


auth required pam_tally2.so deny=3 unlock_time=5 even_deny_root root_unlock_time=10


最多连续三认认证登录都出错时,5秒后解锁,root用户也可以被锁定,root用户10秒后解锁。

/etc/pam.d/login中配置只在本地文本终端上做限制;

/etc/pam.d/kde在配置时在kde图形界面调用时限制;

/etc/pam.d/sshd中配置时在通过ssh连接时做限制;

/etc/pam.d/system-auth中配置凡是调用 system-auth 文件的服务,都会生效。

以下是pam_tally2的man手册中,给出的一个pam下的login调用该模块的示例:



auth     required       pam_securetty.so
auth     required       pam_tally2.so deny=4 even_deny_root unlock_time=1200
auth     required       pam_env.so
auth     required       pam_unix.so
auth     required       pam_nologin.so
account  required       pam_unix.so
password required       pam_unix.so
session  required       pam_limits.so
session  required       pam_unix.so
session  required       pam_lastlog.so nowtmp
session  optional       pam_mail.so standard



注:pam_tally2与pam_tally模块的区别是前者增加了自动解锁时间的功能,后者没有。所以在老的发行版中,如果使用了pam_tally模块时,可以使用pam_tally 、faillog配合crontab 进行自动解锁。


2、解锁与查看失败

可以通过以下指令查看361way用户登录的错误次数及详细信息:


pam_tally2 --user 361wat


可以通过以下命令清空361way用户的错误登录次数,即手动解锁:


pam_tally2 --user 361way --reset


同样,使用faillog -r命令也可以进行解


本文出自 “沙漠骆驼” 博客,请务必保留此出处http://maomaochong.blog.51cto.com/9260445/1832955

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!