linux auditd

作者admin

1月 30, 2026

auditd 是用来做安全审计与合规取证的,不是监控性能,也不是自动化运维。

auditd 是什么?

auditd(Audit Daemon) 是 Linux 内核的审计框架在用户态的守护进程。

它配合内核的 Linux Audit Framework,可以精确记录系统中的关键安全事件,例如:

  • 哪个用户访问/修改了某个文件
  • 哪个进程执行了某条命令
  • 哪个程序调用了敏感系统调用(syscall)
  • 权限、SELinux、ACL 的变化
  • 登录、提权、sudo 行为

这些记录不可伪造、可追溯,常用于:

  • 安全审计
  • 合规要求(等保、ISO 27001、PCI-DSS)
  • 事后取证(incident response)

auditd 解决什么问题?

它回答的是安全问题,不是运维问题:

❓「事情发生过没有?」
❓「是谁干的?」
❓「当时用的什么程序?」

而不是:

❌ 文件有没有变化(inotify 更合适)

❌ 任务什么时候跑(cron)

❌ 系统快不快(top / prometheus)

auditd 的核心特点

1️⃣ 内核级、不可绕过

事件在 syscall 层捕获

即使程序绕过日志,也逃不过 audit

2️⃣ 记录非常细

可以精确到:

  • UID / GID
  • PID / PPID
  • 可执行文件路径
  • syscall 参数
  • 时间戳

3️⃣ 偏向“事后分析”

  • 不是实时处理
  • 日志量大
  • 需要配合分析工具

auditd 能记录什么?(举例)

1. 文件访问审计

$ auditctl -w /etc/passwd -p wa -k passwd_change

含义:

  • 监控 /etc/passwd
  • w 写入、a 属性修改
  • key 为 passwd_change

谁改了 /etc/passwd,一定有记录。

2. 命令执行审计

$ auditctl -a always,exit -F arch=b64 -S execve -k cmd_exec

记录所有命令执行行为。

3. sudo / 提权行为

系统通常默认就有规则,记录:

  • sudo
  • su
  • PAM 登录

auditd vs inotify vs cron(重点对比)

工具 核心作用
auditd 安全审计、取证
inotify 文件变化监听
cron 定时任务

举个同一个场景的三种视角

有人改了 /etc/ssh/sshd_config

inotify:
👉 文件变了(但不知道是谁)

cron:
👉 定时跑一次 diff(不实时)

auditd:
👉 谁、用什么命令、什么时候改的(完整证据)

什么时候该用 auditd?

  • 你应该考虑 auditd,如果你关心:
  • 安全合规
  • 关键文件不可被“悄悄改”
  • 运维责任追踪
  • 服务器被入侵后的取证能力

你不应该用 auditd,如果你只是想:

  • 自动处理文件变化
  • 做实时同步
  • 做业务监控

一个重要提醒(实话)

auditd 很强,但:

❗ 配不好会日志爆炸

❗ 规则太多会影响性能

❗ 不适合“什么都审计”

审计的是“关键点”,不是“全部行为”。

作者 admin

百度广告效果展示