在Linux系统中,用户多次登录失败会被锁定,一段时间内将不能再登录系统,这是一般会用到Pam_Tally2进行账户解锁。

了解PAM

Linux-PAM (Pluggable Authentication Modules for Linux)可插拔认证模块。Linux-PAM是一套适用于Linux的身份验证共享库系统,它为系统中的应用程序或服务提供动态身份验证模块支持。在Linux中,PAM是可动态配置的,本地系统管理员可以自由选择应用程序如何对用户进行身份验证。PAM应用在许多程序与服务上,比如登录程序(login、su)的PAM身份验证(口令认证、限制登录),passwd强制密码,用户进程实时管理,向用户分配系统资源等。

PAM的主要特征是认证的性质是可动态配置的。PAM的核心部分是库(libpam)和PAM模块的集合,它们是位于文件夹/lib/security/中的动态链接库(.so)文件,以及位于/etc/pam.d/目录中(或者是/etc/pam.conf配置文件)的各个PAM模块配置文件。/etc/pam.d/目录中定义了各种程序和服务的PAM配置文件,其中system-auth文件是PAM模块的重要配置文件,它主要负责用户登录系统的身份认证工作,不仅如此,其他的应用程序或服务可以通过include接口来调用它(该文件是system-auth-ac的软链接)。此外password-auth配置文件也是与身份验证相关的重要配置文件,比如用户的远程登录验证(SSH登录)就通过它调用。而在Ubuntu、SuSE Linux等发行版中,PAM主要配置文件是common-auth、common-account、common-password、common-session这四个文件,所有的应用程序和服务的主要PAM配置都可以通过它们来调用。

使用如下命令判断程序是否使用了PAM:

root@test~ # ldd /usr/bin/passwd | grep libpam

libpam_misc.so.0 => /lib64/libpam_misc.so.0 (0x00007fb74f748000)

libpam.so.0 => /lib64/libpam.so.0 (0x00007fb74eb45000)

如看到有类似的输出,说明该程序使用了PAM,没有输出,则没有使用。

pam_tally2模块用于某些数对系统进行失败的ssh登录尝试后锁定用户帐户。 此模块保留已尝试访问的计数和过多的失败尝试。

pam_tally2模块有两个部分,一个是pam_tally2.so,另一个是pam_tally2。 它是基于PAM模块上,并且可以被用于检查和调节计数器文件。 它可以显示用户登录尝试次数,单独设置计数,解锁所有用户计数。

PAM身份验证配置文件

/etc/pam.d/目录包含应用程序的PAM配置文件。例如,login程序将其程序/服务名称定义为login,与之对应的PAM配置文件为/etc/pam.d/login。

PAM配置文件语法格式

每个PAM配置文件都包含一组指令,用于定义模块以及控制标志和参数。每条指令都有一个简单的语法,用于标识模块的目的(接口)和模块的配置设置,语法格式如下:

module_interface control_flag module_name module_arguments

如在/etc/pam.d/password-auth-ac配置文件中(CentOS),其中一行PAM模块接口定义如下

PAM身份验证安全配置实例

一、强制使用强密码(用户密码安全配置)

PAM配置文件:/etc/pam.d/system-auth-ac

模块名称:pam_cracklib(仅适用于password模块接口)

模块参数:

minlen=12 密码字符长度不少于12位(默认为9)

lcredit=-1 至少包含1个小写字母

ucredit=-1 至少包含1个大写字母

dcredit=-1 至少包含1个数字

ocredit=-1 至少包含1个特殊字符

retry=3 配置密码时,提示3次用户密码错误输入

difok=6 配置密码时,新密码中至少6个字符与旧密码不同(默认为5)

其他常用参数:

reject_username 新密码中不能包含与用户名称相同的字段

maxrepeat=N 拒绝包含超过N个连续字符的密码,默认值为0表示此检查已禁用

maxsequence=N 拒绝包含大于N的单调字符序列的密码,例如’1234’或’fedcb’,默认情况下即使没有这个参数配置,一般大多数这样的密码都不会通过,除非序列只是密码的一小部分

maxcla***epeat=N 拒绝包含相同类别的N个以上连续字符的密码。默认值为0表示此检查已禁用。

use_authtok 强制使用先前的密码,不提示用户输入新密码(不允许用户修改密码)

例 修改配置/etc/pam.d/system-auth-ac文件,在password模块接口行修改或添加配置参数如下:

password requisite pam_cracklib.so try_first_pass retry=3 type= reject_username minlen=12 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 difok=6

需要注意的是,我在这里展示的是在RHEL/CentOS下的配置,passwd程序的PAM配置文件涉及主配置文件/etc/pam.d/passwd和/etc/pam.d/system-auth-ac(也可以是/etc/pam.d/password-auth-ac),其中/etc/pam.d/passwd配置文件默认只包含了/etc/pam.d/system-auth-ac配置文件,因此对于以上PAM身份验证密码模块配置,只修改/配置该文件即可。或者在Ubuntu中,配置文件包括:/etc/pam.d/common-password、/etc/pam.d/common-account、/etc/pam.d/common-auth、/etc/pam.d/common-session。

修改如下文件:

/etc/pam.d/sshd    (远程ssh)

/etc/pam.d/login    (终端)

在第一行下即#%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

如果使用pam_tally没生效的话,也可以使用pam_tally2命令:

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

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

faillog -r 命令清空所有用户错误登录次数

在服务器端以root用户登录

执行命令:

# faillog –a          查看用户登录错误次数

faillog -u user –r      清空指定用户user的错误登录次数

如果超过三次的话,用户不能登录并且此后登录用户错误登录次数还是会增加。

在登录错误次数不满三次时,登录成功后,则这个用户登录错误值将清零,退出后重新telnet登录将采用新的计数。

其他例子:

Pam_tally2锁定SSH登录

默认情况下,pam_tally2模块已经安装在大多数Linux发行版,它是由PAM包本身的控制。 本文演示如何锁定和深远的登录尝试的失败一定次数后解锁SSH帐户。

如何锁定和解锁用户帐户

使用“/etc/pam.d/password-auth”配置文件来配置的登录尝试的访问。 打开此文件并以下AUTH配置行举行的“ 身份验证 ”部分的开头添加到它。

auth required pam_tally2.so file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200

接下来,添加以下行“ 账户 ”部分。

account required pam_tally2.so

参数

文件= /无功/日志/ tallylog -默认的日志文件是用来保持登录计数。

否认= 3 -拒绝后,3次尝试访问和锁定用户。

even_deny_root -政策也适用于root用户。

unlock_time = 1200 -帐户将被锁定,直到20分钟 。 (如果要永久锁定,直到手动解锁,请删除此参数。)

一旦你使用上面的配置完成,现在尽量尝试使用任何“ 用户名 ”3失败的登录尝试到服务器。 当你取得了超过3次,你会收到以下消息。

[root@test01 ~]# ssh test01@172.16.25.126

test01@172.16.25.126's password:

Permission denied, please try again.

test01@172.16.25.126's password:

Permission denied, please try again.

test01@172.16.25.126's password:

Account locked due to 4 failed logins

Account locked due to 5 failed logins

Last login: Mon Apr 22 21:21:06 2017 from 172.16.16.52

现在,使用以下命令验证或检查用户尝试的计数器。

[root@test01 ~]# pam_tally2 --user=test01

Login Failures Latest failure From

test01 15 04/22/17 21:22:37 172.16.16.52

如何重置或解锁用户帐户以再次启用访问。

[root@test01 pam.d]# pam_tally2 --user=test01 --reset

Login Failures Latest failure From

test01 15 04/22/13 17:10:42 172.16.16.52

验证登录尝试已重置或解锁

[root@test01 pam.d]# pam_tally2 --user=test01

Login Failures Latest failure From

test01 0

PAM模块是所有Linux发行版中都有的, 在命令行中执行“ pam_tally2”可更多地了解它。

linux pam 解锁_Linux多次登录失败用户被锁定使用Pam_Tally2解锁相关推荐

  1. suse账号解锁_Linux多次登录失败用户被锁定使用Pam_Tally2解锁

    在Linux系统中,用户多次登录失败会被锁定,一段时间内将不能再登录系统,这是一般会用到Pam_Tally2进行账户解锁. 了解PAM Linux-PAM (Pluggable Authenticat ...

  2. linux用户解锁pam_tally,多次登录失败用户被锁定及使用Pam_Tally2解锁

    在linux系统中,用户多次登录失败会被锁定,一段时间内将不能再登录系统,这是一般会用到Pam_Tally2进行账户解锁. 了解PAM Linux-PAM (Pluggable Authenticat ...

  3. java登录失败三次一小时后再等_Spring Security实现多次登录失败后账户锁定功能...

    在上一次写的文章中,为大家说到了如何动态的从数据库加载用户.角色.权限信息,从而实现登录验证及授权.在实际的开发过程中,我们通常会有这样的一个需求:当用户多次登录失败的时候,我们应该将账户锁定,等待一 ...

  4. Linux 查看登录日志及登录失败用户的ip

    2019独角兽企业重金招聘Python工程师标准>>> Linux 查看登录成功的用户信息 命令: last 最新的登录记录在最前面,所以可以用 一下命令来查看. last | le ...

  5. Linux 服务器自动拉黑ssh登录失败的IP

    最近有的人很闲,在网上到处攻击,今天一看一晚上失败登录517个 查了一下资料发现/etc/hosts.deny这个文件是存放ssh登录黑名单的文件 而lastb可以查看登录失败的记录 下面配置参考了h ...

  6. springmvc+mybatis+shiro MD5加密匹配登录失败超次数锁定帐号

    shiro的身份认证的流程,大致是这样的:当我们调用subject.login(token)的时候,首先这次身份认证会委托给Security Manager,而Security Manager又会委托 ...

  7. 登录判断_Spring Security之多次登录失败后账户锁定功能的实现

    在上一次写的文章中,为大家说到了如何动态的从数据库加载用户.角色.权限信息,从而实现登录验证及授权.在实际的开发过程中,我们通常会有这样的一个需求:当用户多次登录失败的时候,我们应该将账户锁定,等待一 ...

  8. SpringBoot+Shiro+ehcache实现登录失败超次数锁定帐号

    文章目录 二.Controller层接收登录请求 三.自定义的Realm 四.密码验证器增加登录次数校验功能 五.ShiroConfig的配置类 六.EhCache 的配置 七.全局异常的配置 ### ...

  9. 无法打开登录所请求的数据库database登录失败用户登录失败

    异常详细信息: System.Data.SqlClient.SqlException: 用户 'xxx\ASPNET' 登录失败. 这是怎么回事啊? 因为你的程序连接SQLServer的连接字符串是用 ...

  10. mysql多次登录失败控制,Mysql登录失败多次锁定配置

    大家有没有发现,现在我们用的手机,网站只要需要登录或者认证的,都有这样一项功能,密码或口令输错几次后系统锁定N分钟,并提示N分钟过后重试,有时候会很头疼,万一忘记了密码,只能填一堆信息重新获取,当然这 ...

最新文章

  1. 产品经理也能动手实践的AI(一)- FastAI介绍
  2. mysql常用到的几个命令
  3. 音效摸鱼还不够爽?试试IDE里打几盘魂斗罗?
  4. Spring5源码 - 09 循环依赖解读
  5. class.getResourceAsStream与class.getClassLoader().getResourceAsStream区别
  6. Docker学习笔记1 :镜像制作
  7. nginx fastcgi python_webpy + nginx + fastcgi 构建python应用
  8. 关于Raspberry Pi,Python等的6本书
  9. banner信息是什么_Spring Boot 2 尝鲜-动态 Banner
  10. Linux下使用Shell命令控制任务Jobs执行、Linux后台进程管理以及ctrl+z
  11. 最强白嫖指南---推荐11个珍藏多年的网站!
  12. 【数据可视化】AntV L7实现地图可视化,DrillDownLayer钻取异步获取数据,悬浮预警框
  13. 《趣味知识博文》小W与小L带你聊天式备考CDA Level Ⅰ(三)
  14. 英文间隔符占位html,HTML空格占位
  15. Charles——charles代理菜单proxy总结—— 开始/暂停模拟慢网速—— stop/start throttling 和 throttling settings...
  16. markdown的基本使用方法 1
  17. SAP UI5 Cross Application Navigation (跨应用间跳转)的本地模拟实现试读版
  18. 网卡驱动学习五、hostapd 移植测试
  19. mac PP助手安装deb文件
  20. 设计的意义是解决问题

热门文章

  1. 区块链中的哈希到底是什么?
  2. 怎么锁定计算机的ip地址,怎么设置固定IP地址让电脑上网
  3. PDMS二次开发(十三)——Pipeline Tool升级到E3D版本
  4. Mysql基本语法及其操作(三)
  5. html5创建桌面快捷方式,iOS APP创建桌面快捷方式
  6. Ubuntu 重新安装声卡驱动
  7. 计算机硬盘模式,详细教你bios设置硬盘模式
  8. 本地代码上传github
  9. 基于模型的约束排序,并探究OTUs对pH的响应特征——单峰or线性?
  10. python-更新word目录