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
相关推荐
iuvtsrt3 分钟前
SQL如何高效提取大表前几行:分页查询与OFFSET优化
jvm·数据库·python
彳亍10113 分钟前
如何用 Dask 替代 Pandas 实现高效 Excel 数据处理
jvm·数据库·python
音符犹如代码14 分钟前
Docker 一键部署带有 TimescaleDB 插件的 PostgreSQL
java·运维·数据库·后端·docker·postgresql·容器
程序leo源17 分钟前
Qt信号与槽深度详解
c语言·开发语言·数据库·c++·qt·c#
2301_7838486519 分钟前
c++怎么把多个变量一次性写入二进制文件_结构体对齐与write【实战】
jvm·数据库·python
wang3zc25 分钟前
如何在 WooCommerce 后台按订单总金额精准筛选订单
jvm·数据库·python
念恒1230644 分钟前
库制作与原理---库的理解和加载(中)
linux·运维·服务器
烛衔溟1 小时前
TypeScript 中的类基础
javascript·ubuntu·typescript
宁静@星空1 小时前
009-Linux环境安装宝塔
linux·运维·服务器
蜡笔婧萱1 小时前
LInux---Web网站建立的实战演练(2)
linux·运维·服务器