CentOS使用PAM锁定多次登陆失败的用户

   CentOS使用PAM锁定多次登陆失败的用户

          Linux有一个pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值,则锁定用户。

  编译PAM的配置文件

  # vim /etc/pam.d/login

  ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

#%PAM-1.0
auth required pam_tally2.so deny=3lock_time=300 even_deny_root root_unlock_time=10
auth [user_unknown=ignoresuccess=okignoreignore=ignore default=bad] pam_securetty.so
auth include system-auth
account required pam_nologin.so
account include system-auth
password include system-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session optional pam_keyinit.so force revoke
session required pam_loginuid.so
session include system-auth
session optional pam_console.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open

  各参数解释

  ?

1
2
3
4
5

even_deny_root 也限制root用户;
deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户
unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒;
此处使用的是 pam_tally2 模块,如果不支持 pam_tally2 可以使用 pam_tally 模块。另外,不同的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。

  在#%PAM-1.0的下面,即第二行,添加内容,一定要写在前面,如果写在后面,虽然用户被锁定,但是只要用户输入正确的密码,还是可以登录的!

  最终效果如下图


  这个只是限制了用户从tty登录,而没有限制远程登录,如果想限制远程登录,需要改SSHD文件

  # vim /etc/pam.d/sshd

  ?

1
2
3
4
5
6
7
8
9

#%PAM-1.0
auth required pam_tally2.so deny=3unlock_time=300 even_deny_root root_unlock_time=10
auth include system-auth
account required pam_nologin.so
account include system-auth
password include system-auth
session optional pam_keyinit.so force revoke
session include system-auth
session required pam_loginuid.so

  同样是增加在第2行!

  查看用户登录失败的次数

  ?

1
2
3

[root@node100 pam.d]# pam_tally2 --user redhat
Login Failures Latest failure From
redhat 7 07/16/12 15:18:22 tty1

  解锁指定用户

  ?

1
2
3

[root@node100 pam.d]# pam_tally2 -r -u redhat
Login Failures Latest failure From
redhat 7 07/16/12 15:18:22 tty1

  这个远程ssh的时候,没有提示,我用的是Xshell,不知道其它终端有没提示,只要超过设定的值,输入正确的密码也是登陆不了的!

时间: 2024-10-29 11:27:58

CentOS使用PAM锁定多次登陆失败的用户的相关文章

CentOS使用PAM锁定多次登陆失败的用户的教程

Linux有一个pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值,则锁定用户. 编译PAM的配置文件 # vim /etc/pam.d/login #%PAM-1.0  auth required  pam_tally2.so deny=3lock_time=300 even_deny_root root_unlock_time=10 auth [user_unknown=ignoresuccess=okignoreignore=ignore defaul

Linux中如何使用PAM锁定多次登陆失败的用户

Linux有一个pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值,则锁定用户. 编译PAM的配置文件 # vim /etc/pam.d/login #%PAM-1.0 auth required pam_tally2.so deny=3 lock_time=300 even_deny_root root_unlock_time=10 auth [user_unknown=ignore success=ok ignoreignore=ignore defau

Oracle 审计失败的用户登陆(Oracle audit)

       对于在线交易系统,且Oracle用户在使用缺省的profile的情形下,多用户共享相同的数据库用户及密码,任意用户输入错误密码累计达到10次以上,其帐户会被自动锁定使得交易被迫临时终止将产生不小的损失.故有必要对那些失败的帐户登陆进行分析以预估是否存在恶意攻击等.Oracle提供了审计功能用于审计那些失败的Oracle用户登陆来进行风险评估.本文即是描述如何开启审计失败的用户登陆.本文不涉及审计的具体的描述信息,仅仅描述如何审计失败的用户登陆.详细完整的审计大家可以参考Oracle

ssl-python:POPlib模块写一个接受邮件的程序,显示登陆失败,请使用安全连接SSL

问题描述 python:POPlib模块写一个接受邮件的程序,显示登陆失败,请使用安全连接SSL 解决方案 接收方是qq邮箱..... 解决方案二: 在qq邮箱里要配置一下,使用ssl连接

java 使用jsch包进行ssh登陆失败,手动ssh命令可登陆

问题描述 java 使用jsch包进行ssh登陆失败,手动ssh命令可登陆 报错如下:com.jcraft.jsch.JSchException: Session.connect: java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64 and can only range from 512 to 1024 (inclusive) 网上查到类似的说是jdk版本问题,目前使用的是1.6,

服务器-centos ssh root账号不能远程登陆

问题描述 centos ssh root账号不能远程登陆 ssh,sftp忽然之间不能远程登陆了,系统是精简版的centos 服务器返回错误信息大致有一下几个:使用Bitvise ssh客户端1.Server disconnected without sending a disconnect message.2.积极拒绝3.自动断开 去机房捣鼓了一下午还是不行 解决方案 防火墙,或者sshd服务挂了. 解决方案二: 积极拒绝,自动断开 应该是服务器关了把 解决方案三: sshd正常呢,服务器也运

app-android APP使用友盟第三方登陆,微信可以登陆,QQ 登陆提示登陆失败,错误码:100044

问题描述 android APP使用友盟第三方登陆,微信可以登陆,QQ 登陆提示登陆失败,错误码:100044 使用友盟的第三方登陆实现微信和QQ登陆app,使用keystore微信可以登陆,QQ提示100044错误 :直接用eclipse运行qq可以登陆,但无法跳转到微信登陆页面: 解决方案 http://bbs.umeng.com/thread-5756-1-1.html

模拟登陆总是登陆失败怎么办啊,求高手解答

问题描述 模拟登陆总是登陆失败怎么办啊,求高手解答 ![ 这是提交的表单信息,和错误信息,求大神们解答 啊,谢谢!!! 解决方案 在Eclipse中开发相关项目时,在控制台经常看到如下信息: log4j:WARN No appenders could be found for logger log4j:WARN Please initialize the log4j system properly. 此处输出信息并不是错误信息而仅只是警告信息,因为log4j无法输出日志,log4j是一个日志输入

求助:登陆失败,该登录名来至不受信任的域不能与windows身份验证一起使用。Ox80004005

问题描述 用VB.NET编了个小的应用软件,数据库用的是SQL2008,发布完成后在本机实验没有问题.但是在其他机器上安装后登陆时,提示:登陆失败,该登录名来至不受信任的域不能与windows身份验证一起使用.错误码是:Ox80004005有人知道是因为什么吗? 解决方案 解决方案二:在config文件里,把windows验证改为Form验证解决方案三:检查连接字符串在数据库里看看sa能不能登陆是不是混合连接而不只是WINDOWS登陆解决方案四:引用1楼zh6335901的回复: 在config