Centos7下用户登录失败N次后锁定用户禁止登陆的方法

前言

针对linux上的用户,如果用户连续3次登录失败,就锁定该用户,几分钟后该用户再自动解锁。Linux有一个pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值,则锁定用户。

PAM的配置文件介绍

PAM配置文件有两种写法:

一种是写在/etc/pam.conf文件中,但centos6之后的系统中,这个文件就没有了。

另一种写法是,将PAM配置文件放到/etc/pam.d/目录下,其规则内容都是不包含 service 部分的,即不包含服务名称,而/etc/pam.d 目录下文件的名字就是服务名称。如: vsftpd,login等.,只是少了最左边的服务名列.如:/etc/pam.d/sshd

由上图可以将配置文件分为四列,

  • 第一列代表模块类型
  • 第二列代表控制标记
  • 第三列代表模块路径
  • 第四列代表模块参数

1、限制用户远程登录

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

# vim /etc/pam.d/sshd
#%PAM-1.0
auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=10

各参数解释

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

此处使用的是 pam_tally2 模块,如果不支持 pam_tally2 可以使用 pam_tally 模块。另外,不同的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。

2、限制用户从tty登录

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

# 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

同样是增加在第2行!

3、查看用户登录失败次数

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

4、解锁指定用户

[root@node100 pam.d]# pam_tally2 -r -u root
Login Failures Latest failure From

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

您可能感兴趣的文章:

  • CentOS系统临时禁止一个用户的方法
(0)

相关推荐

  • CentOS系统临时禁止一个用户的方法

    前言 在使用CentOS系统的过程中,如果不想删除用户,只是临时或短期内禁止某个用户登录系统,可以通过下面两种办法实现: 1.只把用户的记录从/etc/passwd文件中去掉,仅保留其主目录和其他文件不变: 2.在/etc/passwd文件(或/etc/shadow)中,关于该用户的passwd域的第一个字符前面加上一个"*"号即可. 注意:这只是禁止某个用户.如果要删除一个用户,需要删除的项包括: 1. /etc/passwd文件中的相关用户记录: 2. /etc/group文件中的

  • Centos7下用户登录失败N次后锁定用户禁止登陆的方法

    前言 针对linux上的用户,如果用户连续3次登录失败,就锁定该用户,几分钟后该用户再自动解锁.Linux有一个pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值,则锁定用户. PAM的配置文件介绍 PAM配置文件有两种写法: 一种是写在/etc/pam.conf文件中,但centos6之后的系统中,这个文件就没有了. 另一种写法是,将PAM配置文件放到/etc/pam.d/目录下,其规则内容都是不包含 service 部分的,即不包含服务名称,而/etc/

  • linux尝试登录失败后锁定用户账户的两种方法

    本文主要给大家介绍了关于linux尝试登录失败后锁定用户账户的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍吧. pam_tally2模块(方法一) 用于对系统进行失败的ssh登录尝试后锁定用户帐户.此模块保留已尝试访问的计数和过多的失败尝试. 配置 使用/etc/pam.d/system-auth或etc/pam.d/password-auth配置文件来配置的登录尝试的访问 auth required pam_tally2.so deny=3 unlock_time=600 acc

  • PostgreSQL用户登录失败自动锁定的处理方案

    墨墨导读:PostgreSQL使用session_exec插件实现用户密码验证失败几次后自动锁定,本文介绍一种处理方案. 一.插件session_exec安装配置篇 下载插件并编译安装. https://github.com/okbob/session_exec $ unzip session_exec-master.zip $ cd session_exec-master/ $ make pg_config=/opt/pgsql/bin/pg_config $ make pg_config=/

  • 关于C#连接SQL Server时提示用户登录失败的解决方法

    在用C#开发windows端程序并连接SQL Server时有可能会遇到数据库登录失败的问题,报错现象如下图所示: 报错信息如下: System.Data.SqlClient.SqlException: '用户 '' 登录失败.' This exception was originally thrown at this call stack:     [External Code]     MyQQ.DataOperator.ExecSQL(string) in DataOperator.cs

  • Sql Server "用户登录失败,错误编18456"的解决过程

    目录 1.说明 2.其他错误信息 排错分析 总结 Sql Server 解决“用户登录失败,错误编号18456” 1.说明 因密码或用户名错误而使身份验证失败并导致连接尝试被拒时,类似以下内容的消息将返回到客户端:“用户‘<user_name>’登录失败. (Microsoft SQL Server,错误:18456)”. 返回到客户端的其他信息有: “用户‘<user_name>’登录失败. (.Net SqlClient 数据访问接口)” -------------------

  • IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法

    本文实例讲述了IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法.分享给大家供大家参考,具体如下: 经常我们用表单提交东西,在提交后,浏览器会自动记录你输入的东西,下次你再输入的时候,可以重新选择,但是如果你是用IE的话,这里有一个BUG, 其他浏览器没有这个问题.当然首先你得设置IE 浏览器选项是可以记录表单数据的,然后写一段代码来测试. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> &

  • Python实现用户登录并且输入错误三次后锁定该用户

    实现用户登录并且输入错误三次后锁定该用户 我的测试环境,win7,python3.5.1 提示输入用户名,和密码 判断是否被锁定 判断用户名和密码是否匹配 输入错误三次,账号被锁定 思路 代码块 name = 'alex' #正确的用户名 passwd = '123456' #正确的密码 lock_usr = [] #锁定账号列表 for i in range(0,3): usr_name = input("用户名:") usr_passwd = input("密码:&quo

  • django实现登录时候输入密码错误5次锁定用户十分钟

    在学习django的时候,想要实现登录失败后,进行用户锁定,切记录锁定时间,在网上找了很多资料,但是都感觉不是那么靠谱,于是乎,我开始了我的设计,其实我一开始想要借助redis呢,但是想要先开发一个简单的,后续在拆分后,然后在去进行拆分, 这样也是很接近我们在真实的开发中所遇到问题. 我的思路是: 输入账号密码>是否已经登录>提示已经登录 输入账号密码>错误次数少于6次>校验密码>登录成功,记录登录时间,错误次数清空,记录登录状态 输入账号密码>错误大于六次>提示

  • PHP+jQuery+Ajax实现用户登录与退出

    用户登录与退出功能应用在很多地方,而在有些项目中,我们需要使用Ajax方式进行登录,登录成功后只刷新页面局部,从而提升了用户体验度.本文将使用PHP和jQuery来实现登录和退出功能. 准备数据库 本例我们使用Mysql数据库,创建一张user表,表结构如下: CREATE TABLE `user` ( `id` int(11) NOT NULL auto_increment, `username` varchar(30) NOT NULL COMMENT '用户名', `password` v

  • SQLServer2005混合模式登录配置(用户登录错误18452,233,4064)

    一.错误提示:用户登录失败,该用户与可信SQL Server连接无关联 错误18452 原因是远程登录没配置好,配置方法如下: 1:开启SQL2005远程连接功能 配置工具->SQLServer外围应用配置器->服务和连接的外围应用配置器->打开SQLEXPRESS下的DataBase Engine节点,选择远程连接,选择"同时使用TCP/IP和named pipes",确定后,重启数据库服务. 2:登录改为混合模式 打开管理器,用windows方式连接进入数据库,右

随机推荐