关键网络接口只读配置本质是防止运行时配置被非法修改,需协同内核机制、文件权限与服务管控:限制ip/ifconfig执行权限、加固NetworkManager服务、设置配置文件不可修改、禁用DHCP等自动协议,并通过auditd监控和哈希校验实现主动审计。

对关键网络接口实施只读配置,本质不是让接口“不能通信”,而是让其运行时配置不可被非法修改——这属于运行层防护策略,需结合内核机制、文件系统权限与服务管控三者协同实现。
锁定网络接口运行时配置
Linux 中接口的 IP、路由等参数由内核网络栈维护,但用户空间可通过 ip 或 ifconfig 修改。要防止篡改,需限制这些命令的执行能力:
- 移除普通用户对
/sbin/ip、/sbin/ifconfig的执行权限:sudo chmod 750 /sbin/ip /sbin/ifconfig - 将网络管理服务(如 NetworkManager)设为仅 root 可操作:
sudo systemctl edit NetworkManager,添加[Service]\nRestrictSUIDSGID=true\nNoNewPrivileges=true - 启用内核参数
net.ipv4.conf.all.protect_acct(部分发行版支持),阻止非特权进程修改接口状态
固化接口配置文件权限
永久配置若存于文件(如 /etc/netplan/*.yaml、/etc/network/interfaces 或 /etc/sysconfig/network-scripts/ifcfg-eth0),必须防止被覆盖或编辑:
- 设置文件为不可修改(immutable):
sudo chattr +i /etc/netplan/01-network-manager-all.yaml - 仅保留 root 读写权限:
sudo chmod 600 /etc/netplan/*.yaml - 禁用 netplan 自动重载:在 systemd 单元中屏蔽
netplan-apply.service或通过systemctl mask netplan-apply.service
禁用动态配置协议与服务
DHCP、Zeroconf(Avahi)、LLMNR 等自动配置机制是常见篡改入口,应按需关闭:
- 停用 DHCP 客户端:
sudo systemctl disable --now dhcpcd.service dhclient.service - 禁用 IPv4 链路本地地址自动生成:
echo 'net.ipv4.conf.eth0.disable_policy=1' | sudo tee -a /etc/sysctl.conf && sudo sysctl -p - 在 NetworkManager 配置中显式禁用:
sudo nmcli connection modify "Wired connection 1" ipv4.ignore-auto-routes yes ipv4.ignore-auto-dns yes
监控与审计接口变更行为
只读不是静态防御,还需主动发现异常修改尝试:
- 启用 auditd 监控关键路径:
sudo auditctl -w /sbin/ip -p x -k netmod,并配置日志告警 - 定期校验接口当前配置哈希:
ip -br a | sha256sum,与基线比对 - 使用
networkctl status查看接口是否处于 “configured” 状态,避免出现 “unmanaged” 或 “failed” 异常态








