auditd可精准追踪网络配置文件变动,需监控/etc/netplan/、/etc/systemd/network/、/etc/hosts等关键路径,用-w -p wa规则捕获写入与属性变更,并通过auid字段追溯原始登录用户,确保审计完整可靠。

要追踪系统网络配置文件的变动,核心是监控那些被网络服务(如 systemd-networkd、NetworkManager、ifup/ifdown、dhclient)实际读写的关键路径,并通过 auditd 捕获底层 write、attr 等系统调用。不能只靠 grep 日志或轮询 stat,必须从内核审计层入手。
需要重点监控的网络配置文件路径
不同发行版和网络管理方式差异较大,但以下路径覆盖绝大多数场景:
- /etc/sysconfig/network-scripts/ifcfg-*(RHEL/CentOS 7 及旧版 NetworkManager 或 ifup/down 场景)
- /etc/netplan/*.yaml(Ubuntu 18.04+、Debian 12+、多数现代 systemd-networkd 环境)
- /etc/systemd/network/*.network(systemd-networkd 原生配置)
- /etc/hosts(DNS 解析关键文件,常被恶意篡改)
- /etc/resolv.conf(DNS 服务器指向,软链接常见,需监控目标文件)
- /etc/nsswitch.conf(名称解析顺序控制,影响 host lookup 行为)
注意:/etc/network/interfaces(Debian/Ubuntu 传统 ifupdown)和 /etc/sysctl.conf(网络参数)也建议纳入,尤其当系统启用了 IP 转发、防火墙规则等高级功能时。
添加精准 auditd 监控规则
对每个路径使用 -w + -p wa 组合:写入(w)覆盖 echo、cp、编辑器保存等操作;属性变更(a)覆盖 chmod、chown、ln -sf 等间接修改行为(比如重链 /etc/resolv.conf)。
- 临时测试(立即生效):
sudo auditctl -w /etc/netplan/ -p wa -k netplan_modsudo auditctl -w /etc/systemd/network/ -p wa -k systemd_net_modsudo auditctl -w /etc/hosts -p wa -k hosts_modsudo auditctl -w /etc/resolv.conf -p wa -k resolv_mod - 永久生效(重启不丢):
创建/etc/audit/rules.d/network.rules,内容如下(每行一条,无空格开头):-w /etc/netplan/ -p wa -k netplan_mod-w /etc/systemd/network/ -p wa -k systemd_net_mod-w /etc/sysconfig/network-scripts/ -p wa -k ifcfg_mod-w /etc/hosts -p wa -k hosts_mod-w /etc/resolv.conf -p wa -k resolv_mod-w /etc/nsswitch.conf -p wa -k nsswitch_mod
执行 sudo augenrules --load 加载,再用 sudo auditctl -l | grep net 验证是否全部加载成功。
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
查日志时聚焦真实操作者与上下文
网络配置改动往往伴随提权(如 sudo vim),单看 uid 容易误判。必须依赖 auid(审计 UID)字段追溯原始登录用户:
- 查最近所有网络配置变更:
sudo ausearch -k netplan_mod -k systemd_net_mod -k ifcfg_mod --start today -i - 关键字段解读:
comm=“vim” 或 “bash” —— 触发命令名
exe=“/usr/bin/vim.basic” —— 实际执行程序
auid=1001 —— 最初登录的用户 ID(即使 sudo 切换 root 也不变)
name=“/etc/netplan/01-network.yaml” —— 具体被改文件
cwd=“/etc/netplan” —— 当前工作目录,辅助判断操作路径
若看到 auid=4294967295,说明该操作未经过标准登录流程(如直接 ssh root@host),需检查 PAM 配置是否启用 pam_loginuid.so。
补充建议:避免漏报与误报
网络配置可能通过非文件方式修改(如 nmcli、ip link set、sysctl -w),这些不改配置文件但影响运行态。如需全面覆盖,可额外加两条系统调用规则:
- 监控网络接口状态变更:
-a always,exit -F arch=b64 -S setsockopt,socket,bind -F perm=x -k net_syscall - 监控 sysctl 参数写入:
-a always,exit -F arch=b64 -S write -F path=/proc/sys/ -k sysctl_write
注意:这类规则日志量较大,建议先在测试环境验证,再按需启用。生产环境优先保证核心配置文件监控稳定可用。

















