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
相关推荐
随风ada6 分钟前
Windows、macOS、liunx下使用qemu搭建riscv64/linux
linux·windows·ubuntu·macos·golang·qemu·risc-v
云盾安全防护1 小时前
WAF能够解决数据库被渗透的问题吗?
网络·数据库
为什么要内卷,摆烂不香吗1 小时前
超简单linux上部署Apache
linux·运维·网络·apache
运维栈记2 小时前
CPython的全局解释器锁-GIL即将成为历史
java·开发语言·数据库
未来并未来2 小时前
深入理解 Redis 集群化看门狗机制:原理、实践与风险
数据库·redis·缓存
yBmZlQzJ2 小时前
第5天 | openGauss中一个用户可以访问多个数据库
数据库·opengauss
lilyssh2 小时前
在分布式系统中,如何保证缓存与数据库的数据一致性?
数据库·缓存
智象科技3 小时前
智象科技赋能金融、证券行业 IT 运维
大数据·运维·网络·数据库·科技·金融·智能运维
Learn-Share_HY3 小时前
[Linux]如何設置靜態IP位址?
linux·运维·tcp/ip·ubuntu·static ip
缘来如此҉4 小时前
Mysql数据库——增删改查CRUD
数据库·mysql·oracle