Linux 认证日志速查是什么
Linux 的认证与提权记录集中在两个位置:Debian/Ubuntu 系在 /var/log/auth.log,RHEL/CentOS 系在 /var/log/secure。SSH 登录成败与来源、sudo 执行的具体命令、su 切换、PAM 报错都写在这里,是主机侧最直接的账号行为证据,也是判断「谁在什么时候用什么方式进来」的首选入口。
基本信息
| 常见路径 | /var/log/auth.log(Debian 系)、/var/log/secure(RHEL 系) |
|---|---|
| 记录内容 | SSH 登录成败、sudo 与 su、PAM 报错、会话起止 |
| 时间口径 | 本地时区,跨主机对照前先统一 |
| 轮转文件 | auth.log.1、auth.log.2.gz 等同目录归档 |
典型使用场景
- 排查异常登录的时间、来源与账号
- 确认爆破是否得手:失败序列与成功记录配对
- 审计提权动作:哪个账号在什么时间执行了什么命令
- 核实离职或外包账号是否仍在被使用
- 判断日志是否被截断或清理(配合清理痕迹识别)
- 核对登录来源与跳板机记录是否一致,识别绕过堡垒机的直连行为
常用检索
常用检索
grep -Ei 'failed|accepted' /var/log/auth.log | tail -50 # 登录成败记录
grep 'sudo:' /var/log/auth.log | tail -30 # 提权执行的命令
grep -E 'session opened|session closed' /var/log/auth.log # 会话起止
zgrep -h '203.0.113.7' /var/log/auth.log* # 跨轮转文件全量检索
awk '/Failed password/{print $(NF-3)}' auth.log | sort | uniq -c | sort -rn | head
# 轮转文件必须一起检索,否则时间窗会人为断裂日志行逐段读法
| 字段段 | 示例内容 | 含义 |
|---|---|---|
| 时间戳 | Oct 12 03:11:04 | 本地时区,跨年与跨时区要留意 |
| 主机名 | web-1 | 多主机汇总时区分来源 |
| 进程标签 | sshd[1234] 或 sudo: | 决定这一行的语义归属 |
| 主体 | user=svc_backup | 发起认证的账号名 |
| 来源 | 192.0.2.45 port 51234 | 客户端 IP 与源端口 |
| 结果 | Accepted / Failed password | 成败与认证方式,二者要区分 |
认证方式不同,日志行也不同:公钥登录写成 Accepted publickey,口令写成 Accepted password。键盘交互认证的失败不会出现在 Failed password 里,检索条件不全会漏判。
如果某类事件在日志里完全看不到,先确认对应的 PAM 模块或 sshd 配置是否仍在记录,再下「没有发生」的结论。
认证日志同时被本地留存与集中平台收集时,做时间线应以集中平台为准,本地文件用于格式比对与补充细节。