发布于2026-08-16 阅读(0)
扫一扫,手机访问
用 auditctl -w 监控目录时,如果发现子目录或目录内文件的操作没有被记录,原因其实很明确:-w 只会盯住目标路径本身的 inode,并不会递归追踪下面的子项。也就是说,像 -w /etc 这样的规则,只能捕获类似 chmod /etc 这类直接作用在目录自身的操作;至于 chmod /etc/passwd,默认并不会被这条规则记下来,需要单独补充规则,或者改用 -a always,exit -F dir=/etc 这类方式。

因为 -w 默认只监控目标路径本身,不递归子项。比如 auditctl -w /etc 只捕获对 /etc 目录节点的属性修改(如 chmod /etc),但不会记录 /etc/passwd 的写入。
-a always,exit -F dir=/path 形式,它基于系统调用过滤,天然覆盖所有子路径-w 是“watch”机制,走的是 inotify 类路径监听,内核限制多、开销低,但粒度粗-a always,exit -F dir= 是 syscall 级审计,每条 open/write/bind 都匹配路径前缀,更准但性能开销略高sudo touch /etc/testfile 后,运行 sudo ausearch -k etc_access -i | grep "touch",若无输出,大概率是用了 -w 而非 -F dir=是,augenrules 只扫描 .rules 结尾的文件。写成 10-security.conf 或 audit.cfg 会被忽略,重启 auditd 后规则完全不加载。
640,属主 root:root,否则 augenrules 加载时会报错并跳过# 开头的注释行会被忽略00-default.rules 会比 99-custom.rules 先处理,冲突时后者覆盖前者(取决于规则匹配逻辑)sudo auditctl -l 查看实际生效的规则列表,确认你的规则在其中默认情况下,execve 系统调用的审计日志通常只会记下调用者的 UID 和可执行文件路径,argv 参数并不会一并带上。也就是说,如果想看到像 rm -rf /tmp/* 这样完整的命令行,光靠默认记录是不够的,必须明确启用 -F exe=,或者借助 aureport -f -i 做反向解析。不过后者能不能还原出来,关键还得看 audit.log 里当时有没有保存足够的相关字段。
-F auid!=4294967295 过滤掉 kernel thread,保留真实登录用户行为-F arch=b64(或 b32)限定架构,避免同一条规则在双架构系统里重复触发-a always,exit -F dir=/root -F perm=wa -F auid>=1000 -k root_write,这样既限用户范围,又明确权限类型ausearch -k root_write -i 输出中 exe="/bin/rm" 和 cmd="rm -rf /root/test" 字段是否出现——没出现说明 auditd 配置里 log_format 不是 ENRICHED,需检查 /etc/audit/auditd.conf 中该选项logrotate 默认用 root 身份创建新日志,但旧日志可能残留为 root:root 600,导致普通审计分析脚本无法读取,且不符合最小权限原则。
/etc/logrotate.d/auditd 中添加 create 640 root adm 行,确保新日志属组为 adm,权限收紧但允许日志分析工具访问sudo chmod 640 /var/log/audit/audit.log.* && sudo chgrp adm /var/log/audit/audit.log.*chmod 644 —— 其他用户可读审计日志等于泄露敏感操作痕迹/var/log/audit/ 目录权限是否为 750,否则即使日志文件权限正确,目录可遍历也会导致风险审计规则不是设完就完事。真正难的是在 -F dir= 和 -w 之间选对模式,在 .rules 文件名和 logrotate 权限上不出错,以及确认 ausearch -i 能吐出你想要的命令参数——这三处最容易被跳过验证。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9