解读 Linux 安全日志是系统运维和安全排查中的核心技能。下面我按**“日志在哪 → 日志讲什么 → 怎么看 → 实战案例”**的结构,系统地给你讲一遍。
不同发行版位置略有差异:
/var/log/secure:CentOS / RHEL(SSH、sudo、登录)/var/log/auth.log:Ubuntu / Debian/var/log/messages:综合系统日志(部分安全信息)日志由 journald 管理:
journalctl -u sshd
journalctl _COMM=sudo
journalctl --since "2024-01-01" --until "2024-01-02"
/var/log/audit/audit.log(auditd)成功登录
Jan 10 10:22:10 host sshd[1234]: Accepted password for root from 192.168.1.10 port 54321 ssh2
失败登录(暴力破解信号)
Failed password for root from 1.2.3.4 port 44422 ssh2
异常点:
sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/bin/bash
风险点:
rm -rf, chmod 777)useradd: new user: name=test123
passwd: password changed for test123
关注:
sshd[1234]: Received disconnect from 1.2.3.4
或 audit 中:
type=SYSCALL msg=audit(...): arch=x86_64 syscall=bind
说明有程序在绑定异常端口。
示例:
type=SYSCALL msg=audit(1704870000.123:456):
arch=c000003e syscall=2 success=yes
exe="/bin/cat"
uid=0
key="etc_passwd"
字段含义:
syscall=2:opensuccess=yes:成功exe:执行程序uid=0:rootkey:审计规则名常用于:
/etc/passwdgrep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr
last
lastlog
who
w
journalctl _COMM=sshd | grep "Accepted"
Failed password for root from 45.33.22.11
Failed password for root from 45.33.22.11
Accepted password for root from 45.33.22.11
结论:
sudo: user1 : USER=root ; COMMAND=/bin/bash
结论:
✅ 看谁(用户 / IP)
✅ 看什么时候(时间异常)
✅ 看做了什么(命令 / 文件)
✅ 看是否成功
✅ 看是否符合业务
如果你愿意,可以:
我可以直接帮你逐行分析。