温馨提示×

怎么排查linux登录日志

小樊
37
2026-10-08 08:48:34
栏目: 智能运维

在 Linux 中,“登录日志”通常指 用户登录、退出、认证失败、SSH 登录 等相关记录。下面按「看什么日志 → 用什么命令 → 常见排查场景」给你一个实用指南。


一、常见登录相关日志文件

不同发行版略有差异:

1. systemd 系统(CentOS 7+/Ubuntu 16.04+)

日志统一由 journald 管理:

/var/log/secure        # CentOS/RHEL:登录、sudo、SSH
/var/log/auth.log      # Ubuntu/Debian:认证日志

2. 传统日志

/var/log/wtmp     # 所有成功登录记录(二进制)
/var/log/btmp     # 失败登录记录(二进制)
/var/log/lastlog  # 每个用户最近一次登录

二、最常用排查命令

1️⃣ 查看当前登录用户

who
w

2️⃣ 查看历史登录记录

last            # 成功登录
last -n 20      # 最近 20 条
last -x         # 包含重启、关机

3️⃣ 查看失败登录(暴力破解排查)

lastb
lastb | head

如果 lastb 为空,可能是 btmp 未启用或权限问题

4️⃣ 查看用户最近登录时间

lastlog
lastlog -u username

三、通过日志文件排查(推荐)

CentOS / RHEL

tail -f /var/log/secure
grep "Failed password" /var/log/secure
grep "Accepted password" /var/log/secure

Ubuntu / Debian

tail -f /var/log/auth.log
grep "Failed password" /var/log/auth.log
grep "Accepted" /var/log/auth.log

四、使用 journalctl(systemd 强烈推荐)

查看 SSH 登录

journalctl -u sshd
journalctl -u sshd --since "2026-01-20 00:00:00"

查看认证相关

journalctl _COMM=sshd
journalctl _SYSTEMD_UNIT=sshd.service

实时查看

journalctl -f

五、常见排查场景

✅ 1. 是否有人暴力破解 SSH

grep "Failed password" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr

✅ 2. 谁成功登录过

grep "Accepted password" /var/log/secure

✅ 3. 是否有异常 IP

last | grep -v "192.168"

✅ 4. 是否有人提权(sudo)

grep "sudo" /var/log/secure

六、安全加固建议(排查后)

  • 禁止 root 直接登录
  • 修改 SSH 端口
  • 使用密钥登录
  • 配置 fail2ban
  • 限制 IP 访问

如果你愿意,可以告诉我:

  • 你用的是 CentOS / Ubuntu / 其他
  • 想查 成功 / 失败 / 某个用户 / 某个时间

我可以直接给你精准命令。

0 踩