如何在Linux中查看用户登录历史 Linux last命令审计分析

如何在Linux中查看用户登录历史 Linux last命令审计分析
最新回答
黑羊先生

2023-11-14 04:45:58

在Linux中,使用last命令查看用户登录历史是系统安全审计的核心方法,通过分析/var/log/wtmp文件可获取登录、注销、重启等事件记录。 以下是具体操作指南及审计分析技巧:

一、基础用法
  1. 查看完整登录历史直接运行last,输出包含以下字段:

    用户名:登录账户(如user1)。

    终端:登录方式(pts/0为SSH,tty1为本地控制台)。

    来源IP:远程登录的IP地址(本地登录为空)。

    登录/登出时间:会话开始与结束时间(still running表示未退出)。

    持续时间:会话时长(如00:22表示22分钟)。

    示例输出

    user1 pts/0 192.168.1.100 Mon Apr 5 10:23 - 10:45 (00:22)reboot system boot 5.4.0-135-generic Mon Apr 5 10:20 still runninguser2 tty1 Sun Apr 4 20:15 - down (02:10)
  2. 常用选项

    last -n 10:仅显示最近10条记录。

    last user1:筛选特定用户的登录历史。

    last reboot:查看系统重启记录,辅助排查异常重启。

    last -a:将IP地址移至最后一列,便于对齐查看。

    last -x:包含关机、运行级别变更等系统事件。

    last -F:显示完整时间戳(含年份),适合跨月日志分析。

二、结合其他命令增强分析
  1. 按IP或状态筛选

    查找特定IP的登录记录:last | grep "192.168.1.200"

    检查当前活跃会话:last | grep "still running"

  2. 与lastlog对比

    lastlog:显示每个用户最后一次登录时间。

    last:显示所有历史记录,适合追踪长期行为模式。

三、安全审计场景
  1. 异常登录排查

    陌生用户名或IP:发现未授权账户或可疑IP(如境外地址)登录,可能表示账户泄露。

    暴力破解迹象:大量失败登录后出现成功登录,需检查/var/log/auth.log或/var/log/secure。

    非工作时间登录:重点关注夜间或周末的登录行为。

    快速登录登出:多次短时间会话可能为脚本探测。

  2. 系统事件分析

    通过last reboot和last -x检查异常重启或运行级别变更(如从多用户模式切换至单用户模式)。

四、注意事项
  1. 日志文件保护

    /var/log/wtmp是二进制文件,不可用cat直接查看。

    若文件被清空或删除,last将无输出,需定期备份(如通过cp /var/log/wtmp /var/log/wtmp.bak)。

  2. 日志轮转与集中管理

    配置logrotate自动轮转日志,避免文件过大。

    结合ELK(Elasticsearch+Logstash+Kibana)或Splunk等工具实现集中日志管理,提升分析效率。

五、操作示例
  1. 查看最近5条登录记录

    last -n 5
  2. 分析用户admin的登录历史

    last admin
  3. 检查来自IP10.0.0.5的所有登录

    last | grep "10.0.0.5"
  4. 导出完整时间戳的登录记录至文件

    last -F > login_history.txt

通过合理使用last命令及其组合技巧,系统管理员可高效监控用户行为,及时发现并响应安全威胁,是Linux系统运维中不可或缺的审计工具。