ubuntu 22.04 pam 模块设置用户登录失败锁定

1、ubuntu 22.04 配置方法

/etc/pam.d/common-auth 加到如下行后

bash 复制代码
# auth    [success=1 default=ignore]      pam_unix.so nullok
# 添加如下内容
auth     [default=die]      pam_faillock.so authfail
auth     sufficient         pam_faillock.so authsucc

/etc/pam.d/common-account 加到最后一行

bash 复制代码
account required            pam_faillock.so

修改 /etc/security/faillock.conf

bash 复制代码
sed -i 's/# audit/audit/g' /etc/security/faillock.conf
sed -i 's/# deny = 3/deny = 3/g' /etc/security/faillock.conf
sed -i 's/# fail_interval = 900/fail_interval = 900/g' /etc/security/faillock.conf
sed -i 's/# unlock_time = 600/unlock_time = 0/g' /etc/security/faillock.conf
sed -i 's/# even_deny_root/even_deny_root/g' /etc/security/faillock.conf
sed -i 's/# root_unlock_time = 900/root_unlock_time = 0/g' /etc/security/faillock.conf

一键设置脚本

⚠️警告:不要在 ubuntu20.04 系统上执行如下脚本,否则所有登录方式都会被锁定,导致进不了系统。

bash 复制代码
cp /etc/pam.d/common-auth /etc/pam.d/common-auth.bak
cp /etc/pam.d/common-account /etc/pam.d/common-account.bak
cp /etc/security/faillock.conf /etc/security/faillock.conf.bak
sed -i '/^auth[[:space:]]\+\[success=1 default=ignore\][[:space:]]\+pam_unix\.so[[:space:]]\+nullok$/a\
auth     [default=die]      pam_faillock.so authfail\n\
auth     sufficient         pam_faillock.so authsucc' /etc/pam.d/common-auth
echo 'account required            pam_faillock.so' >> /etc/pam.d/common-account
sed -i 's/# audit/audit/g' /etc/security/faillock.conf
sed -i 's/# deny = 3/deny = 3/g' /etc/security/faillock.conf
sed -i 's/# fail_interval = 900/fail_interval = 900/g' /etc/security/faillock.conf
sed -i 's/# unlock_time = 600/unlock_time = 0/g' /etc/security/faillock.conf
sed -i 's/# even_deny_root/even_deny_root/g' /etc/security/faillock.conf
sed -i 's/# root_unlock_time = 900/root_unlock_time = 0/g' /etc/security/faillock.conf

查看被锁定的用户

bash 复制代码
faillock --user testuser
testuser:
When                Type  Source                                           Valid
2025-07-14 13:27:26 RHOST 192.168.5.103                                        V

解锁被锁定的用户

bash 复制代码
faillock --user testuser --reset

2、Ubuntu 20.04 设置

bash 复制代码
sudo apt update
sudo apt install libpam-cracklib
sudo nano /etc/pam.d/common-auth
auth required pam_tally2.so deny=3 unlock_time=300 onerr=fail audit silent
sudo systemctl restart sshd

查看特定用户的登录尝试次数

bash 复制代码
sudo pam_tally2 --user <username>

解锁特定用户

bash 复制代码
sudo pam_tally2 -u <username> -r
相关推荐
lzx_0023 小时前
Linux 进程(二) 深入理解进程
linux
沫璃染墨3 小时前
从零入门计算机网络系列(十二):HTTP长连接与会话管理详解——从Connection到Cookie与Session
linux·服务器·c++·tcp/ip·ubuntu·http·交互
温暖小土3 小时前
在 CentOS 上安装 Redis Stack
linux·redis·centos
CCIE-Yasuo4 小时前
网络安全-学习数据库-Mysql-2
数据库·学习·mysql
这个DBA有点耶4 小时前
内核级AI与多模融合:AI数据库在海外场景的落地要点
数据库·人工智能·架构
涛思数据(TDengine)4 小时前
从工业本体到 AI 原生:TDengine 出席 2026 QCon 分享工业数据基础设施路径
大数据·数据库·人工智能·tdengine·工业
Jesse_EC4 小时前
换乘次数最少的路径 SQL 查询详解与实战经验——从 WITH RECURSIVE 到 pgRouting
数据库·postgresql
工控丫丫4 小时前
帆软看板中经常使用的公式函数及经常搭的组合
前端·javascript·数据库
GeW5 小时前
国产化替代进入深水区之后Linux 与数据库为什么必须走向重建
linux
这个DBA有点耶6 小时前
云数据库半夜卡顿,CPU才30%?深挖云盘IOPS突发限制与内核挂起机制
数据库·mysql·云原生