阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux多次登录失败用户被锁定使用Pam_Tally2解锁

563次阅读
没有评论

共计 4553 个字符,预计需要花费 12 分钟才能阅读完成。

在 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 模块接口定义如下

Linux 多次登录失败用户被锁定使用 Pam_Tally2 解锁

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”可更多地了解它。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4553字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7963175
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流! 大家好,我是星哥,今天才思枯竭,不写技术文章了!来吐槽一下 CSDN。...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用 AI 做了一个 1978 年至 2019 年中国大陆企业注册的查询网站 最近星哥在 GitHub 上偶然...
星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛 NAS-4:飞牛 NAS 安装 istore 旁路由,家庭网络升级的最佳实践 开始 大家好我是...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...