auditd 仅本地采集落盘,上报需日志采集器;应监控 /etc/passwd、/etc/shadow、/etc/group、/etc/gshadow 四个关键路径,配置永久规则并验证生效,再通过采集器转发至安全中心。

auditd 本身不直接“上报”日志,它负责本地采集和落盘;上报需配合日志采集器(如 Fluentd、rsyslog 或云厂商 agent)转发至安全中心。记录密码库文件的读写是可行的,但“所有操作”需明确范围——实际应聚焦关键敏感路径,而非字面意义的“全部”。
监控的核心目标路径
Linux 密码库相关的关键文件只有几个,必须覆盖: - /etc/passwd:用户账户基本信息(UID/GID/Shell等),虽不存密码,但增删改用户必动此文件 - /etc/shadow:加密密码、过期策略等,root 可读,普通用户不可见,是最高危目标 - /etc/group 和 /etc/gshadow:组信息与组密码,权限变更常由此切入不建议监控 /etc/passwd- 或 /etc/shadow- 等备份文件,它们由系统工具自动创建,高频写入易淹没真实事件。
配置永久审计规则(生产推荐)
规则必须写入/etc/audit/rules.d/ 下的 .rules 文件,才能跨重启生效:
# 创建自定义规则文件 sudo nano /etc/audit/rules.d/password_audit.rules
填入以下内容(每行一条,末尾无空格):
-w /etc/passwd -p rwxa -k passwd_access -w /etc/shadow -p rwxa -k shadow_access -w /etc/group -p rwxa -k group_access -w /etc/gshadow -p rwxa -k gshadow_access
说明:
-
-w表示路径监控(watch) -
-p rwxa捕获读(r)、写(w)、执行(x)、属性变更(a)四类操作 -
-k后的关键词用于后续日志过滤,务必保持简洁唯一
保存后加载规则:
sudo augenrules --load sudo auditctl -l | grep -E "(passwd|shadow|group|gshadow)"
确认输出中包含上述四条规则。
验证与日志采集准备
手动触发一次写操作验证是否记录: ```bash # 新建测试用户(会修改 passwd/shadow/group) sudo useradd -m testuser && sudo passwd testuser # 然后立即查日志 sudo ausearch -k passwd_access -k shadow_access -ts recent -i | head -10 ``` 若看到含syscall=2(open)、syscall=4(write)、syscall=90(chmod)等记录,说明规则生效。
上报前确保:
- 审计日志权限为
600:sudo chmod 600 /var/log/audit/audit.log - 日志轮转已配置(避免磁盘打满):编辑
/etc/audit/auditd.conf,设max_log_file = 50和num_logs = 5 - 安装并配置日志采集器(如 Fluentd),监听
/var/log/audit/audit.log的追加行为,并按 JSON 格式转发至安全中心 API 或 Syslog 端点
安全中心侧的解析建议
在安全中心配置解析规则时,重点提取字段: -auid(原始 UID):判断是否为真实用户操作(非 sudo 切换后的 uid)
- uid 和 euid:区分实际执行者与有效 UID(提权行为识别关键)
- exe:执行的程序路径(如 /usr/bin/useradd、/usr/bin/vim)
- key:匹配你设置的 passwd_access 等关键词,便于聚合告警
典型高危模式示例:
-
auid=1000 uid=0 exe="/usr/bin/vi" key="shadow_access"→ 普通用户通过 root 权限编辑 shadow 文件 -
auid=4294967295(表示 unset)→ 可能是 cron 或服务进程触发,需结合上下文判断
不复杂但容易忽略:规则生效后,日志默认只存本地;没有采集器,安全中心就收不到任何数据。











