auditd 不直接监控网络流量,而是通过审计网络配置文件的写入与属性变更、关键网络命令的执行过程、网络服务的启动与配置加载行为,实现对网络配置变更的精准审计。

auditd 本身不直接监控网络流量(如 TCP/IP 包内容),但它能精准审计网络配置的变更行为——比如谁修改了防火墙规则、启停了网络服务、更改了 IP 地址或路由表。这类操作本质是系统调用或文件写入,auditd 正擅长捕获这些底层动作。
要实现对网络配置变更的有效审计,关键不是抓“流量”,而是盯住“配置源头”和“关键命令”。
监控核心网络配置文件的写入与属性变更
网络服务的配置通常以文本文件形式存在,修改它们会触发内核级 write 或 setattr 系统调用。用 -w 规则绑定真实路径最可靠:
-
/etc/sysconfig/network-scripts/ifcfg-*(RHEL/CentOS) -
/etc/netplan/*.yaml(Ubuntu 18.04+) -
/etc/network/interfaces(Debian/旧版 Ubuntu) -
/etc/iptables/rules.v4、/etc/iptables/rules.v6 -
/etc/firewalld/下的关键文件(如firewalld.conf、zones/内 XML)
示例规则(写入 /etc/audit/rules.d/99-network.rules):
-w /etc/sysconfig/network-scripts/ -p wa -k network_config -w /etc/netplan/ -p wa -k network_config -w /etc/iptables/rules.v4 -p wa -k iptables_rules -w /etc/firewalld/zones/ -p wa -k firewalld_zones
注意:路径必须真实存在;软链接目标需用
ls -i确认 inode,避免监控到符号链接本身。
捕获关键网络命令的执行过程
用户常通过命令行修改网络状态,这些操作最终调用 execve。配合 -F euid 和 -F arch 可精准定位特权执行:
# 监控 root 执行的网络相关命令 -a always,exit -F arch=b64 -F euid=0 -S execve -F path=/usr/sbin/ip -k net_ip_cmd -a always,exit -F arch=b64 -F euid=0 -S execve -F path=/sbin/iptables -k net_iptables -a always,exit -F arch=b64 -F euid=0 -S execve -F path=/usr/bin/nmcli -k net_nmcli -a always,exit -F arch=b64 -F euid=0 -S execve -F path=/bin/systemctl -F a0="start\|stop\|restart" -F a1="firewalld\|NetworkManager\|sshd" -k net_service_ctrl
-F a0和-F a1过滤命令行参数,避免记录所有 systemctl 调用,只捕获服务启停动作。
审计网络服务的启动与配置加载行为
某些服务(如 firewalld、NetworkManager)在启动时会读取配置并应用规则。可补充监控其主配置文件的 open 或 read(慎用,仅必要时):
# 若需确认配置是否被实际加载(非仅修改),可加读操作(仅限低频关键文件) -w /etc/firewalld/firewalld.conf -p rwa -k firewalld_conf
但更推荐聚焦 wa ——因为真正影响网络策略的是写入和权限变更,而非读取。
验证与日志检索方法
规则加载后,务必验证:
sudo augenrules --load sudo auditctl -l | grep network_config
模拟一次变更(如 sudo ip addr add 192.168.100.99/24 dev eth0),再查日志:
# 查所有带 network_config 标签的事件 sudo ausearch -k network_config -i # 查 root 执行的 ip 命令 sudo ausearch -k net_ip_cmd -i # 查某次具体操作的完整上下文(含 auid、exe、cwd、comm) sudo ausearch -m SYSCALL -ts recent | grep -E "(ip|iptables)"
-i 参数将 UID/GID、系统调用名等自动翻译为可读名称,大幅降低解读门槛。
auditd 不是流量分析器,却是网络配置变更的“数字指纹采集器”。盯住文件、命令、服务三类入口,就能构建出清晰、不可绕过的行为审计链。











