faillock 记录了什么
faillock 是 PAM 失败计数模块的命令行工具,pam_faillock 在连续认证失败达到阈值后锁定账号一段时间。它记录的是「哪个来源、在什么时间、以什么方式失败了几次」,因此能反映针对具体账号的口令测试行为:短时间内大量失败后突然出现成功登录,通常意味着口令被猜中或撞库成功。记录保存在 tally 目录中,重启或超过时间窗后可能被清空,取证阶段应尽早导出。
基本信息
| 命令 | faillock、faillock --user <账号>、faillock --reset |
|---|---|
| 配置 | /etc/security/faillock.conf(deny、unlock_time、fail_interval) |
| PAM 配置 | pam_faillock 出现在 /etc/pam.d/ 的 auth 与 account 阶段 |
| 记录位置 | /var/run/faillock/ 或 /var/log/faillock/ 下的 tally 文件 |
典型使用场景
- 判断某账号是否被反复尝试登录并触发锁定
- 把失败次数的时间分布与攻击来源对齐
- 确认锁定策略的实际阈值与解锁时间,评估口令暴力破解的成功率
- 核对审计工单:管理员正常输错口令与异常测试的差别
- 取证完成后按流程重置计数,避免影响业务登录
查看与核对
查看与核对
faillock --user alice # 查看指定账号的失败记录与当前锁定状态
faillock # 列出所有存在失败记录的账号
ls -l /var/run/faillock/ 2>/dev/null # 查看 tally 文件时间,判断记录新鲜度
grep -Rn 'pam_faillock' /etc/pam.d/ | head -10 # 确认模块挂在哪些服务上
grep -E '^(deny|unlock_time|fail_interval)' /etc/security/faillock.conf 2>/dev/null # 查看策略参数faillock 输出读法
| 列 | 含义 | 判读要点 |
|---|---|---|
| When | 失败发生的时刻 | 密集失败的时间段是攻击窗口 |
| Type | V 表示有效登录,F 表示失败 | F 与 V 交替说明试错过程 |
| Source | 来源地址或终端 | 同一来源攻击多个账号即为扫描行为 |
| Valid | 锁定状态与剩余时间 | 决定是否仍在被锁定 |
并非所有发行版默认启用 pam_faillock,很多系统实际使用 pam_tally2;记录为空时要先确认模块与 PAM 配置,再判断是否真的没有失败尝试。
faillock --reset 会清除失败计数,取证阶段不要提前执行,否则锁定过程这一关键证据被自己抹掉。
多台主机共用同一账号时,可把各主机的失败记录按来源地址汇总:同一来源在短时间内对多台主机尝试登录,说明对方已经掌握主机清单,属于集中扫描而不是单点误操作。