首页/安全/等保与合规速查/整改实操:登录失败锁定(pam_faillock)
测评与整改57 条

整改实操:登录失败锁定(pam_faillock)

用 faillock 实现登录失败处理:失败次数、统计窗口与解锁时间可配置,满足鉴别信息防暴力猜测要求。

等保与合规速查安全更新于 2026-10-13

faillock 是什么

pam_faillock 是 Linux-PAM 提供的登录失败计数模块:连续输错口令达到阈值后锁定账户一段时间,用于满足身份鉴别条款中「限制非法登录次数」的要求。参数集中在 /etc/security/faillock.conf,查询与解锁用 faillock 命令;RHEL 8 及以上可用 authselect 一键启用该特性,Debian 系需确认 PAM 中的模块配置。

基本信息

适用平台RHEL/CentOS 8+、Rocky、AlmaLinux(PAM 体系通用)
配置文件/etc/security/faillock.conf
关键参数deny、fail_interval、unlock_time、dir、audit
启用方式authselect enable-feature with-faillock(RHEL 8+)
查询命令faillock --user 用户名;加 --reset 解锁
风险提示改 PAM 配置错误会影响全部登录方式

典型使用场景

  • 等保登录失败处理条款的整改落地
  • 公网暴露服务器的口令猜测防护
  • 控制台与 SSH 双通道的失败计数覆盖
  • 事件处置中的账号锁定与解锁
  • 与 fail2ban 配合,形成账户级与来源级双重限制

faillock 配置

faillock 配置
# /etc/security/faillock.conf
deny = 5                 # 连续失败 5 次锁定
fail_interval = 900      # 统计窗口 900 秒
unlock_time = 600        # 锁定时长 600 秒
audit                    # 记录到审计日志
dir = /var/run/faillock  # 计数文件目录

启用与查询

启用与查询
# RHEL 8 及以上:启用 faillock 特性
authselect enable-feature with-faillock
# 查看某账号的失败计数与锁定状态
faillock --user ops
# 管理员手动解锁
faillock --user ops --reset

参数读法

参数含义建议取值
deny连续失败多少次触发锁定5
fail_interval失败计数统计窗口(秒)900
unlock_time锁定时长(秒),0 表示需管理员解锁600 至 900
dir计数文件存放目录/var/run/faillock
audit是否写入审计日志开启

与 fail2ban 的分工

维度pam_faillockfail2ban
作用对象本地账户,记在账号上来源 IP,记在防火墙上
生效范围SSH、控制台、su 等 PAM 入口主要是带日志的服务如 sshd
典型取值deny 5、unlock_time 600maxretry 5、bantime 1 小时
互补关系账户不再被反复猜测来源 IP 被直接封禁
处理 PAM 配置前备份 /etc/pam.d,配置错误会影响全部登录方式;先在测试环境验证再推到生产。
unlock_time 设为 0 时需管理员手动解锁,安全性更高但运维成本上升,公网服务与运维跳板机需权衡后再定。
迎检取证可直接用 faillock 输出配合系统日志:先查失败次数与锁定状态,再从 /var/log/secure 或 auth.log 调出对应时间段的失败记录,形成完整证据链。

易错点

  • 只限制 SSH 未覆盖控制台与其他服务:PAM 级配置才能覆盖全部登录方式
  • 解锁路径未验证:生产环境误锁后无法登录,只能进单用户模式恢复
  • 锁定阈值与运维流程冲突:管理员账号被锁会影响应急处置
  • 改 PAM 前不备份:配置写错后所有登录方式同时失效
  • 只配参数不确认模块已加载:authselect 或 PAM 里没有 faillock 相关行,参数写了也不会生效

数据来源与参考

  • Linux-PAM 手册(pam_faillock)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌