真正监控审计敏感配置文件需聚焦“谁、何时、如何触碰关键文件”,使用auditd基于inode路径设-w规则,覆盖读写属性修改并存入rules.d,加载后验证捕获能力,再结合uid/euid差异、命令名、终端/ip等线索识别非授权行为。

要真正监控并审计所有指向敏感配置文件的非授权访问,核心不是“拦住访问”,而是“精准捕获谁、在何时、以何种方式触碰了哪些关键文件”,并确保这些行为可追溯、难绕过、不被遗漏。
明确监控范围与真实路径
敏感配置文件如 /etc/passwd、/etc/shadow、/etc/sudoers、/etc/ssh/sshd_config 必须用其实际 inode 路径监控——auditd 基于文件系统 inode 工作,若规则中写的是软链接路径(如 /etc/shadow 指向 /usr/etc/shadow),而没确认真实位置,事件将无法捕获。
- 先查真实路径:
ls -i /etc/shadow,确保规则中使用的是该路径(通常就是/etc/shadow,但需验证) - 避免监控整个
/etc目录:粒度太粗易产生噪音、影响性能;应聚焦具体文件 - 对 SSH 配置等网络服务关键文件,同样需单独加规则,不能依赖日志文件(如
/var/log/secure)间接推断
编写高精度文件访问审计规则
使用 -w(watch)语法直接监听文件,配合 -p 和 -k 实现可检索、可分类的审计流:
-
-w /etc/passwd -p wa -k identity_change:监控写入和属性修改(含 chmod/chown) -
-w /etc/shadow -p rwa -k shadow_access:增加r(读)以捕获非法读取(如暴力提权时的 shadow 导出) -
-w /etc/sudoers -p wa -k sudoers_change:防止越权提权策略植入 -
-w /etc/ssh/sshd_config -p wa -k sshd_config_change:拦截 SSH 后门式配置篡改(如 PermitRootLogin yes)
所有规则必须存入 /etc/audit/rules.d/ 下的 .rules 文件(如 10-identity.rules),不可仅用 auditctl -w 临时添加——重启即失效。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
确保规则生效并验证非授权访问捕获能力
加载后不验证 = 规则形同虚设。三步确认法:
- 执行
sudo augenrules --load(自动合并并重载) - 运行
sudo auditctl -l | grep -E "(shadow_access|identity_change)",确认规则已载入内核 - 模拟一次非授权尝试:用普通用户执行
cat /etc/shadow(应失败),再立即运行:sudo ausearch -k shadow_access -m SYSCALL -i --start recent | tail -2
应看到完整上下文:用户 UID、终端、命令名(comm="cat")、调用时间、是否成功(exit=0或exit=-13)
关联上下文识别“非授权”本质
auditd 本身不判断“授权与否”,它只记录事实。要识别“非授权访问”,需结合以下线索交叉分析:
-
uid!=euid或euid!=uid:表明进程以不同用户身份执行,常见于 su/sudo 提权后访问 -
comm="su"、comm="sudo"、comm="sh"等低层命令调用,而非上层管理工具 - 来自非常规终端(
terminal=pts/99)、非预期 IP(通过aureport -f -i查看完整事件时可关联登录源) - 高频短时重复访问同一敏感文件(需外部脚本聚合分析
ausearch输出)
建议将 ausearch -k shadow_access -m SYSCALL --start today | aureport -f -i 加入每日巡检脚本,人工复核异常模式。










