首页/安全/安全加固速查/失败登录记录分析(btmp/lastb)
口令与认证策略55 条

失败登录记录分析(btmp/lastb)

btmp 记录全部失败登录尝试,lastb 是它的可读前端:按来源与账号聚合是识别爆破与撞库的最快路径。

安全加固速查安全更新于 2026-10-13

失败登录记录是什么

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每个账号最近一次登录时间
journalctlsystemd 日志失败原因与客户端密钥指纹
lastb 的来源列显示为主机名还是地址,取决于是否开启反向解析:排查爆破时保留地址更直观,必要时在客户端配置里关掉解析。
btmp 的留存周期由日志轮转控制,合规场景常见要求不少于六个月,归档要放在具备完整性保护的集中日志平台。

发现异常后的动作

  • 先确认来源是否属于已知的扫描器、监控或堡垒机地址,避免误封正常运维通道
  • 对确认的爆破来源在边界封禁,并把地址加入威胁情报比对清单
  • 核对被尝试的账号是否存在、是否启用,长期未用的账号优先停用或删除
  • 用 last 与认证日志还原同一时间段是否有成功登录,判断是否已被突破
  • 把本轮聚合结果与上期对比,观察来源数量与目标账号是否在变化
本地终端上的失败尝试同样会写进 btmp,来源列可能为空或显示为本地主机,分析时要与网络来源分开统计。

易错点

  • btmp 只记录本机的 sshd 等系统认证失败:Web 应用与数据库的登录失败不在其中,需要单独查应用日志
  • btmp 可被有足够权限者清空或改写:高安全场景必须转发到集中日志并做完整性保护
  • 只看失败条数不看账号分布:分不清是针对单一账号的爆破还是全网段的撞库,处置策略会错
  • 排障时直接清空 btmp 文件:既丢掉了证据,也让后续的趋势分析没有基线

数据来源与参考

  • man 1 lastb
  • 等保 2.0:登录审计要求

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌