Linux用户登录日志审计查看:零基础也能掌握的监控技巧

为什么需要审计用户登录日志

每台Linux服务器都会记录用户的登录行为,包括成功登录、失败尝试、登录时间、来源IP等。
通过查看这些日志,可以及时发现异常登录尝试、潜在的攻击行为,或者排查谁在什么时候登录过系统。
对于服务器运维新手来说,掌握登录日志审计查看是最基础也是最实用的安全技能之一。

准备工作:确认系统环境和日志文件存在

在开始操作前,先确认你的系统类型。
大多数Linux发行版(如CentOS、Ubuntu、Debian)都会默认开启登录日志记录,日志文件通常位于 /var/log/auth.log(Ubuntu/Debian)或 /var/log/secure(CentOS/RHEL)。
你可以用以下命令检查文件是否存在:

ls -l /var/log/auth.log /var/log/secure 2>/dev/null

如果显示 No such file or directory,说明你的系统可能使用systemd-journald管理日志,此时需要用 journalctl 命令代替直接读取日志文件。
另外,普通用户可能没有读取日志文件的权限,建议使用 sudo 或以root身份执行命令。

核心操作:使用三个命令快速查看登录日志

1. 查看所有成功登录记录:last

last 命令读取 /var/log/wtmp 文件(二进制格式),显示所有成功登录会话的历史记录,包括登录时间、登录时长、IP地址等。
直接运行:

last

输出示例:

admin    pts/0        192.168.1.100    Mon Mar  4 10:20   still logged in
root     pts/1        10.0.0.5         Mon Mar  4 09:15 - 09:45  (00:30)
reboot   system boot  5.10.0-28-amd64  Mon Mar  4 09:00   still running

如果想只看特定用户的记录,后面加上用户名,例如 last admin

2. 查看所有登录失败记录:lastb

lastb 命令读取 /var/log/btmp 文件,专门记录登录失败的尝试,包括错误的用户名、密码、来源IP。
执行时可能需要root权限:

sudo lastb

输出类似下面:

admin    ssh:notty   192.168.1.200    Mon Mar  4 10:10 - 10:10  (00:00)
test     ssh:notty   10.0.0.99        Mon Mar  4 08:20 - 08:20  (00:00)

如果失败记录很多,可以配合 head 只查看前10条:sudo lastb | head -10

3. 查看实时日志和更详细记录:journalctl

对于使用systemd的系统(现代Ubuntu、CentOS 7+等),推荐用 journalctl 查看登录相关日志。
筛选 sshdlogin 服务的日志:

# 查看所有与SSH登录相关的日志
sudo journalctl -u sshd --no-pager | tail -50

# 查看最近5分钟内的登录日志
sudo journalctl --since "5 minutes ago" -u sshd

此外,还可以直接查看 /var/log/auth.log/var/log/secure 的纯文本内容(需要root权限):

sudo tail -50 /var/log/auth.log

避坑指南:容易忽略的几个问题

  • 日志轮转导致文件被清空:日志文件默认由 logrotate 管理,旧日志会被压缩或删除。如果你发现 lastlastb 输出很少,不代表没有记录,只是旧的会话已经被轮转。可以查看 /var/log/wtmp-*.gz 等历史归档。
  • 权限不足:普通用户执行 lastb 会提示权限拒绝,必须加 sudolast 命令通常普通用户也能执行,但某些发行版可能限制。
  • 时间不同步:如果服务器系统时间不准确,日志时间会错误。建议先执行 date 确认当前时间,必要时用 ntpdatechrony 同步。
  • SSH配置影响记录:如果 sshd_config 中设置了 LogLevel VERBOSE,日志会更详细;如果 LogLevel QUIET,可能不记录失败信息。但默认配置下都能正常记录。

效果验证:判断日志审计是否正常工作

执行完上述命令后,你可以通过以下方式验证日志审计功能是否正常:

  1. 用错误的密码尝试SSH登录一次(比如 ssh test@localhost 输入错误密码),然后立即执行 sudo lastb,查看是否出现了该次失败的记录。
  2. 正常登录一次,然后执行 last,检查自己的会话是否出现在列表中。
  3. 长期使用 sudo journalctl -u sshd -f 可以实时监控登录尝试,每次有新的SSH连接都会实时显示。

如果上述验证都通过,说明你的Linux服务器登录日志审计查看功能正常,可以用于日常安全监控。

总结

Linux用户登录日志审计查看并不复杂,核心就是用好 lastlastbjournalctl(或直接读取 /var/log/auth.log)。
掌握了这三个命令,你就能随时掌握谁登录了服务器、谁试图入侵、以及当前的登录状态。
记住日志轮转、权限和日志路径差异这三个常见坑,日常巡检就能游刃有余。

如果你正在处理Linux用户登录日志审计查看,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
Linux用户密码安全策略配置教程:从弱密码到强防护
下一篇
Linux会话管理踢出异常账号:Linux踢出异常账号实操指
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意