auditctl -w 是唯一靠谱的起点,因其基于 inode 精确捕获文件写入和属性变更;-p wa 覆盖关键篡改行为,-k 提供高效日志过滤,永久规则须写入 /etc/audit/rules.d/ 并用 augenrules --load 加载。
直接用监控文件绝对路径,配合和,否则日志根本没法查、规则大概率不生效。
为什么
是唯一靠谱的起点
监控
配置文件
篡改,核心是捕获
和
(比如
、
),而
是 auditd 中唯一能精确绑定到文件 inode 层级变更的机制。用
配
会失效——它只匹配 execve 或 open 等调用的参数字符串,路径被软链接、重命名或通过 fd 传递时就漏掉了。
能捕获所有写入和权限/属主变更,哪怕调用方是
这类绕过命令行记录的方式
必须用
确认真实路径,别写成
或软链接名(如
)
如果路径含空格或特殊字符,
不支持转义,直接换行或报错;此时应改用永久规则文件 +
足够了,别乱加
或
对
、
这类文件,读操作本身不是篡改行为,且高频触发(如
调用),加
会导致日志爆炸、掩盖真正修改。执行权限
对配置文件无意义,内核也不会触发对应事件。
:覆盖写入(新增/覆盖用户)、属性变更(提权后改权限、隐藏文件)两类关键篡改
加
很重要:攻击者常先
再写入,没
就看不到这步前置动作
不要写
:在生产环境跑一天,
可能轻松破万,真正篡改藏在里面极难定位
不是可选标签,是日志过滤的生命线
audit.log 是二进制格式,没有
就只能靠
,但这个命令会扫描全量日志、忽略上下文字段(如
),且无法区分是 root 手动改还是某个 cron 脚本误操作。加了
后,
能秒出结果,还能和
组合生成可读报表。
CentOS Linux 7.9.2009
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。
下载
关键字要语义明确:
比
强十倍,避免后期 grep 错误路径
多个文件共用一个 key(如
)方便统一告警,但排查时得靠
二次过滤
key 名称不能含空格或斜杠,否则
解析失败,报错类似
永久生效必须走
+
临时规则
在 reboot、
后全部丢失。生产环境必须写进规则文件,否则某天发现被篡改,第一反应是“我明明配了”,结果查
发现空空如也。
新建
,内容为:
运行
(不是
)
验证:执行
,确认规则已载入;再手动
(需 root),立刻
应见完整上下文
常见失败点:
目录权限不是
、SELinux 拦截规则加载(
)、
导致 systemd 忽略该目录
真正容易被忽略的是:规则生效后,
默认只查最近 15 分钟,查历史得显式加
;另外,
字段才是登录用户 ID,比
可靠得多——脚本里
改文件,
是 nobody,但
还是原始管理员,这才是溯源关键。
auditctl -w-p wa-kauditctl -wwriteattribute changechmodchown-w-a always,exit-F path=...-w /etc/shadow -p waperl -e 'open...'ls -i /etc/shadow/etc/passwd/etc/shadow-auditctlaugenrules-p waxr/etc/shadow/etc/sudoersgetpwentrx-p waachmod 600 /etc/shadowa-p rwaausearch -k shadow_mod -m SYSCALL | wc -l-k-kausearch -f /etc/shadowauid-kausearch -k shadow_modaureport -f -i-k shadow_mod-k file1-k identity_filesausearch -k identity_files -f /etc/shadowausearchInvalid key name format/etc/audit/rules.d/augenrules --loadauditctl -w ...systemctl restart auditdauditctl -l/etc/audit/rules.d/10-identity.rules## Monitor critical identity files
-w /etc/shadow -p wa -k shadow_mod
-w /etc/passwd -p wa -k passwd_mod
-w /etc/sudoers -p wa -k sudoers_modaugenrules --loadsystemctl restart auditdauditctl -l | grep shadow_modecho test > /etc/shadow 2>/dev/nullausearch -k shadow_mod -m SYSCALL -i | tail -2/etc/audit/rules.d/640restorecon -Rv /etc/audit/ProtectSystem=strictausearch--start yesterdayauiduidsudo -u nobodyuidauid