失败登录记录是什么
btmp 是二进制记录文件,保存全部失败登录尝试;lastb 是它的可读前端。成功登录写在 wtmp 里由 last 读取,lastlog 则显示每个账号最近一次登录时间。按来源地址与账号做聚合,是识别爆破与撞库最快的路径,也是合规审计需要的原始证据。
基本信息
| 加固项 | 认证审计与失败记录分析 |
|---|---|
| 适用平台 | Linux(wtmp、btmp、lastlog) |
| 风险等级 | 低 |
| 基线 | 失败记录定期查看并集中留存 |
| 文件权限 | btmp 通常为 600,属主 root 与 utmp 组 |
典型使用场景
- 例行巡检:找出针对 root 或 admin 的集中尝试来源
- 封禁联动:把聚合结果用于 fail2ban 或边界策略的验证
- 合规留存:登录与失败记录按要求周期归档
- 账号清理:用 lastlog 找出长期未登录的账号并复核
- 时间线还原:把 last 与认证日志合并,排出登录顺序
聚合分析
聚合分析
lastb | head -30 # 最近 30 条失败尝试
lastb | awk '{print $3}' | sort | uniq -c | sort -rn | head -10 # 按来源聚合
lastb | awk '{print $1}' | sort | uniq -c | sort -rn | head -10 # 按账号聚合
last | head -20 # 成功登录记录(wtmp)
lastlog | grep -v 'Never' | head -20 # 各账号最近一次登录命令与数据源对照
| 命令 | 数据源 | 能看到什么 |
|---|---|---|
| lastb | /var/log/btmp | 失败尝试的账号、来源与时间 |
| last | /var/log/wtmp | 成功登录与重启关机记录 |
| lastlog | /var/log/lastlog | 每个账号最近一次登录时间 |
| journalctl | systemd 日志 | 失败原因与客户端密钥指纹 |
lastb 的来源列显示为主机名还是地址,取决于是否开启反向解析:排查爆破时保留地址更直观,必要时在客户端配置里关掉解析。
btmp 的留存周期由日志轮转控制,合规场景常见要求不少于六个月,归档要放在具备完整性保护的集中日志平台。
发现异常后的动作
- 先确认来源是否属于已知的扫描器、监控或堡垒机地址,避免误封正常运维通道
- 对确认的爆破来源在边界封禁,并把地址加入威胁情报比对清单
- 核对被尝试的账号是否存在、是否启用,长期未用的账号优先停用或删除
- 用 last 与认证日志还原同一时间段是否有成功登录,判断是否已被突破
- 把本轮聚合结果与上期对比,观察来源数量与目标账号是否在变化
本地终端上的失败尝试同样会写进 btmp,来源列可能为空或显示为本地主机,分析时要与网络来源分开统计。