2023-11-14 04:45:58
在Linux中,使用last命令查看用户登录历史是系统安全审计的核心方法,通过分析/var/log/wtmp文件可获取登录、注销、重启等事件记录。 以下是具体操作指南及审计分析技巧:
一、基础用法查看完整登录历史直接运行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)常用选项
last -n 10:仅显示最近10条记录。
last user1:筛选特定用户的登录历史。
last reboot:查看系统重启记录,辅助排查异常重启。
last -a:将IP地址移至最后一列,便于对齐查看。
last -x:包含关机、运行级别变更等系统事件。
last -F:显示完整时间戳(含年份),适合跨月日志分析。
按IP或状态筛选
查找特定IP的登录记录:last | grep "192.168.1.200"
检查当前活跃会话:last | grep "still running"
与lastlog对比
lastlog:显示每个用户最后一次登录时间。
last:显示所有历史记录,适合追踪长期行为模式。
异常登录排查
陌生用户名或IP:发现未授权账户或可疑IP(如境外地址)登录,可能表示账户泄露。
暴力破解迹象:大量失败登录后出现成功登录,需检查/var/log/auth.log或/var/log/secure。
非工作时间登录:重点关注夜间或周末的登录行为。
快速登录登出:多次短时间会话可能为脚本探测。
系统事件分析
通过last reboot和last -x检查异常重启或运行级别变更(如从多用户模式切换至单用户模式)。
日志文件保护
/var/log/wtmp是二进制文件,不可用cat直接查看。
若文件被清空或删除,last将无输出,需定期备份(如通过cp /var/log/wtmp /var/log/wtmp.bak)。
日志轮转与集中管理
配置logrotate自动轮转日志,避免文件过大。
结合ELK(Elasticsearch+Logstash+Kibana)或Splunk等工具实现集中日志管理,提升分析效率。
查看最近5条登录记录
last -n 5分析用户admin的登录历史
last admin检查来自IP10.0.0.5的所有登录
last | grep "10.0.0.5"导出完整时间戳的登录记录至文件
last -F > login_history.txt通过合理使用last命令及其组合技巧,系统管理员可高效监控用户行为,及时发现并响应安全威胁,是Linux系统运维中不可或缺的审计工具。