认证日志是什么
认证日志记录谁在什么时候、从哪里、用什么方式登录或提权。RHEL 系写在 /var/log/secure,Debian 系写在 /var/log/auth.log;改用了 journal 的系统也能用 journalctl 查到同一批事件。暴力破解、sudo 提权、密钥登录被拒,这些线索都落在这里。
基本信息
| 适用场景 | 排查登录失败、爆破尝试与提权记录 |
|---|---|
| 日志位置 | RHEL 系 /var/log/secure;Debian 系 /var/log/auth.log;journal 系统用 journalctl 查询 |
| 写入来源 | rsyslog 加 PAM,sshd 与 sudo 的认证事件都经过 PAM |
| 读取权限 | 这些文件通常需要 root 才能查看 |
典型使用场景
- 排查登录失败:区分是口令错误、密钥被拒还是账号被锁
- 识别爆破:按来源地址聚合失败次数,而不是只看总数
- 审计提权:查 sudo 执行的命令与执行人
- 关联分析:把登录时间与业务异常时间放在一起对照
- 加固决策:制定封禁策略前先看真实的失败分布
常用示例
常用示例
tail -n 100 /var/log/secure
grep 'Failed password' /var/log/secure | tail -n 20
grep 'Accepted' /var/log/secure | tail -n 20
grep 'sudo:' /var/log/secure | tail -n 20
# 按来源地址聚合失败次数
awk '/Failed password/ {print $(NF-3)}' /var/log/secure | sort | uniq -c | sort -rn | headjournal 等价查询
journal 等价查询
journalctl -u sshd --since today | grep -E 'Failed|Accepted'
journalctl -t sudo -n 30
journalctl _COMM=sshd --since -1h关键词对照
| 关键词 | 含义 | 说明 |
|---|---|---|
| Failed password | 密码认证失败 | 口令错误或账号状态有问题 |
| Failed publickey | 密钥认证失败 | 密钥不匹配或被策略拒绝 |
| Accepted password / publickey | 认证成功 | 记录用户、来源与认证方式 |
| Invalid user | 用户名不存在 | 自动化爆破的常见特征 |
| sudo: | 提权命令记录 | 包含执行人与目标用户 |
| session opened / closed | 会话开始与结束 | 可用来估算在线时长 |
排查爆破要按来源地址聚合,只看条数不看来源会把正常用户的偶发输入失误也算进去;聚合出来的高频地址才是封禁策略的依据。
使用 LDAP 或 AD 集中认证时,认证失败可能记在 sssd 的日志里而不是本机认证日志中;排查前先确认这个账号走的是本地认证还是集中认证。
常见认证记录读法
| 日志特征 | 含义 | 处置方向 |
|---|---|---|
| 口令失败记录 | 口令认证未通过 | 核对口令策略与账号状态 |
| 用户名不存在 | 仍有连接尝试 | 多为扫描行为,结合来源判断 |
| 认证阶段连接关闭 | 握手中断 | 查客户端配置与中间设备 |
| 公钥认证成功 | 密钥方式通过 | 核对来源地址是否可信 |
| 系统认证模块报错 | PAM 层记录 | 与策略调整时间点对齐 |
做长期防护时把失败来源聚合成频次清单,再据此决定封禁范围;审计上要区分口令错误与账号不存在,前者可能是用户失误,后者更接近扫描探测。还要确认日志留存周期覆盖审计要求的窗口,否则事后追溯时会发现关键时段已经被轮转掉。