首页/系统/信创系统运维速查/登录失败锁定:pam_faillock
安全加固65 条

登录失败锁定:pam_faillock

连续登录失败锁定账户:faillock.conf 配置 deny 与 unlock_time,PAM 栈在鉴权与账目阶段引用 pam_faillock;锁定与解锁用 faillock 命令查看与复位。

信创系统运维速查系统更新于 2026-10-13

faillock 是干什么的

pam_faillock 是 PAM 的登录失败锁定模块:连续多次鉴权失败后把账户(或来源)临时锁住,防止口令爆破。它由 /etc/security/faillock.conf 提供参数,并在 PAM 栈的鉴权与账目阶段被引用。查看与解锁用 faillock 命令。适用于使用 PAM 与 systemd 的主流发行版,包括麒麟与 UOS。

基本信息

配置文件/etc/security/faillock.conf
引用位置/etc/pam.d/ 下的 system-auth 或 password-auth
查看锁定faillock --user <用户>
解锁复位faillock --user <用户> --reset
关键参数deny 与 unlock_time

典型使用场景

  • 等保与安全基线要求登录失败锁定与自动解锁
  • 公网暴露的跳板机与 VPN 前置机防口令爆破
  • 配合口令复杂度一起加固本机登录入口
  • 排查用户被锁:确认是策略生效还是人为锁定
  • 应急解锁:误锁管理员账户后快速复位

关键配置项

关键配置项
deny = 5            # 连续失败多少次后锁定
unlock_time = 600   # 锁定时长(秒),0 表示只能管理员复位
audit               # 记录失败尝试到系统审计日志
silent              # 不向用户提示具体失败次数

查看与解锁

查看与解锁
faillock --user someuser          # 查看失败计数与锁定状态
faillock --user someuser --reset  # 复位计数,立即解锁
grep -r pwquality /etc/pam.d/ | head   # 确认 PAM 引用位置
grep faillock /etc/pam.d/system-auth   # RPM 系常见引用位置
grep faillock /etc/pam.d/common-auth   # DEB 系常见引用位置

参数与效果

参数含义常见取值
deny触发锁定的失败次数3 到 5 次
unlock_time自动解锁等待秒数600 秒,0 表示只能人工复位
fail_interval计数窗口时长900 秒
audit把失败记录写入审计按合规要求开启
root 账户同样受策略约束应急通道需提前准备
修改 PAM 配置前备份 /etc/pam.d/ 下的相关文件;栈写错会影响全部登录方式(包括 root 控制台),操作时保留一个已登录会话用于回滚。

上线前验证

  • 用测试账户连续输错口令,确认达到 deny 后触发锁定
  • 执行 faillock 查看失败计数与锁定状态
  • 等 unlock_time 到期或手工复位,确认能恢复登录
  • 确认审计日志中能查到失败尝试记录

易错点

  • 改完不做完整验证:应当用测试账户连续输错口令,确认锁定与自动解锁行为符合预期后再推给全员
  • 忘记 root 同样会被锁定:运维前准备好第二管理员账号或单用户模式应急通道
  • 只改 faillock.conf 不检查 PAM 引用:未被引用的模块参数不会生效,先 grep 确认引用位置
  • 记录窗口配置不当:fail_interval 过长会把隔很久的零星输错累计成锁定,导致正常用户被误锁
  • 解锁时间设得过长:用户频繁被锁会催生共享账号与弱口令,策略要在安全与可用之间取平衡

数据来源与参考

  • man 8 pam_faillock
  • man 1 faillock
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌