sudo 操作审计是什么
sudo 默认会记录每一条被提权执行的命令,这是回答「谁在什么时候动了什么」的第一手材料。日志位置随发行版与日志方案不同:有的落在认证日志里,有的落在安全日志里,使用 systemd 的系统还可以直接查日志服务。审计不只是保存日志,更要对失败尝试做监控——短时间内大量授权失败,往往意味着有人在猜口令或做越权探测。
基本信息
| 适用平台 | GNU/Linux(sudo 与系统日志) |
|---|---|
| 日志位置 | Debian 系在认证日志、RHEL 系在安全日志、systemd 环境在日志服务 |
| 关键字段 | 操作者、终端、执行的命令、目标用户 |
| 加固选项 | 可开启输入与输出记录,输出记录会保存完整会话 |
| 留存要求 | 合规场景应接入远程收集或延长保留 |
| 监控要点 | 授权失败激增需要告警 |
典型使用场景
- 追溯某次变更是谁执行的、执行了什么命令。
- 排查提权失败:确认是密码错误还是不在授权列表。
- 合规审计:提供特权操作的完整记录。
- 排查异常登录与提权配合的入侵迹象。
- 评估是否需要开启更详细的会话记录。
常用查询
常用查询
grep sudo /var/log/auth.log | tail -n 20 # Debian 系认证日志
grep sudo /var/log/secure | tail -n 20 # RHEL 系安全日志
journalctl -t sudo --since today --no-pager | tail -n 30
grep -E 'sudo.*(incorrect password|NOT in sudoers)' /var/log/auth.log | tail
grep -c 'sudo.*COMMAND' /var/log/auth.log # 统计提权命令数量
ls /var/log/secure /var/log/auth.log 2>/dev/null # 确认本机日志路径字段与位置读法
| 项目 | 含义 | 使用要点 |
|---|---|---|
| 日志位置 | 随发行版与日志方案不同 | 先确认本机实际路径再查 |
| 操作者字段 | 谁执行的 | 结合终端字段判断来源 |
| 命令字段 | 执行了什么 | 审计的核心证据 |
| 失败记录 | 密码错误或不在授权列表 | 越权探测的重要线索 |
| 输入输出记录 | 可开启的详细记录 | 输出含敏感内容,慎重启用 |
| 留存与轮转 | 日志保留周期 | 轮转后历史丢失,合规场景要延长 |
开启输出记录会保存完整会话回放,可能包含敏感数据,使用前要评估合规与隐私影响;至少保留命令级别的记录供审计。
日志轮转后历史会丢失:合规场景应把特权操作日志接入远程日志收集,或延长本地留存周期。
只审计不监控等于没有:授权失败在短时间内激增的情况应配置告警,才能及时发现越权尝试。