首页/安全/安全加固速查/登录记录核查(last/lastb/lastlog)

登录记录核查(last/lastb/lastlog)

wtmp 记成功、btmp 记失败、lastlog 记每个账号最近登录:三条线交叉验证,比单看一处可靠。

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

登录记录分在几个文件里

Linux 的登录记录不是集中在一个文件里:wtmp 记录成功登录的会话,btmp 记录失败尝试,lastlog 记录每个账号最近一次登录时间,utmp 反映当前在线会话。看单一来源容易得出片面结论,三条线交叉验证才可靠:例如 lastb 里出现大量失败尝试而 last 中没有对应的成功记录,说明爆破未得手;而 lastlog 显示某账号长期未登录却出现成功会话,就需要进一步核实。

基本信息

适用平台Linux(utmp/wtmp/btmp/lastlog 机制)
对应命令last、lastb、lastlog、who、w
权限要求lastb 需要 root 才能查看完整内容
日志文件/var/log/wtmp、/var/log/btmp、/var/log/lastlog
风险等级中

典型使用场景

  • 例行巡检:查看异常时间与异常来源的登录记录
  • 入侵排查:确认是否存在非工作时间的成功登录
  • 爆破识别:统计失败尝试的次数与来源
  • 账号核查:确认是否存在长期未用但突然登录的账号
  • 合规取证:登录记录是审计的基础材料

四种视图

四种视图
last -n 20 | head -25          # 成功登录会话(读取 wtmp)
sudo lastb -n 20 | head -25     # 失败登录尝试(读取 btmp,需 root)
lastlog | head -20              # 各账号最近一次登录时间
who; w                          # 当前在线会话
last -x reboot | head -5        # 重启记录,用于对齐时间线
awk '{print $1}' /var/log/btmp 2>/dev/null | head   # 二进制文件,勿用文本工具直接读

命令与读法

命令数据来源判读要点
lastwtmp关注来源 IP、时间是否在维护窗口内
lastbbtmp大量条目说明存在爆破尝试
lastloglastlog显示从未登录的账号属于重点
who/wutmp当前会话多出陌生来源需立即核实
last -x rebootwtmp用于把其它记录与重启事件对齐时间
记录被清空或权限异常本身就是入侵信号:发现异常先留存原始文件(附哈希)再排查,顺序反了会破坏证据。

落地要点

  • lastb 需 root 权限:普通权限看不到内容,巡检脚本要注意
  • 容器与部分精简系统没有 utmp 机制:命令无输出属于环境限制,不是被清理
  • 登录记录要与集中日志交叉验证:本地文件一旦被清就只剩远端副本
  • 定期统计失败登录的 TOP 来源,为防火墙与 fail2ban 策略提供依据
  • 把登录记录核查纳入月度巡检模板,避免只在出事后才看
记录文件是二进制格式:用 last、lastb、lastlog 读取,不要用 grep 或 cat 直接打开,否则只会看到乱码。

易错点

  • 无记录就判定没有登录:记录本身可能被清除,需结合集中日志判断
  • 用文本工具直接读 btmp:二进制文件读不出有效内容,容易误判为记录为空
  • 只看失败记录不看成功记录:爆破成功的痕迹藏在 wtmp 与 lastlog 里
  • 在容器里期待完整登录记录:精简环境本身就缺少 utmp 机制,结论要标注环境限制

数据来源与参考

  • utmp(5) man page
  • 等保 2.0:安全审计

相关工具

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