多网卡防火墙配置的核心,在于根据不同网卡的角色和用途实施分区管理:首先,通过ip -br a识别接口,再使用ip addr show确认IP地址与子网信息;接着,为管理网卡(如ens33)创建management zone并完成绑定,将业务网卡(如enp0s8)划分到public zone,同时为这两个zone设置--set-target=DROP,以阻止跨网卡转发;随后,按照不同安全区域分别开放端口(例如management仅开放22/8443,public禁用ssh、限制icmp并控制443访问);最后,重新加载并检查/etc/sysconfig/network-scripts/等底层网络配置,确保路由策略不存在冲突。

在多网卡环境中进行防火墙配置时,关键并不是给所有网卡套用同一套安全规则,而是让每一块网卡独立处理各自流量,依据用途、风险等级和所属网络区域分别控制。
先识别并区分每块网卡的实际角色
运行 ip -br a 或 nmcli device status 查看全部接口状态,再通过 ip addr show 确认每张网卡的 IP、子网以及物理连接关系。例如:
ens33:连接管理网络(172.16.1.0/24),通常只开放 SSH 与 HTTPS 管理端口enp0s8:连接业务网络(192.168.10.0/24),可开放 80/443,但禁止 ICMPvirbr0:虚拟桥接接口,仅用于内部容器或虚拟化通信,不直接对外提供访问
不要将 DHCP 和静态 IP 混合使用,建议统一配置为静态地址,避免因 IP 漂移导致防火墙策略失效。
用防火墙区域(zone)绑定网卡,实现逻辑隔离
在 Linux 多网卡防火墙配置中,firewalld 的 zone 机制是实现网络隔离最直接的方法。每个 zone 都对应不同的信任级别和默认访问策略:
- 创建专用 zone(如
management)并绑定管理网卡:firewall-cmd --permanent --new-zone=managementfirewall-cmd --permanent --zone=management --add-interface=ens33 - 将业务网卡加入
publiczone:firewall-cmd --permanent --zone=public --add-interface=enp0s8 - 关键步骤:各 zone 的 FORWARD 默认策略必须设置为
DROP,防止不同网卡之间发生流量转发:firewall-cmd --permanent --zone=management --set-target=DROPfirewall-cmd --permanent --zone=public --set-target=DROP
按 zone 单独配置端口与协议规则
不同网卡所面对的业务场景和安全风险并不相同,因此防火墙规则必须按区域分别设置,不能一刀切:
managementzone 仅开放必要管理服务:firewall-cmd --permanent --zone=management --add-port=22/tcpfirewall-cmd --permanent --zone=management --add-port=8443/tcpfirewall-cmd --permanent --zone=management --remove-icmp-block=echo-request(可按需允许 ping)publiczone 访问限制应更严格:firewall-cmd --permanent --zone=public --remove-service=sshfirewall-cmd --permanent --zone=public --add-rich-rule='rule protocol value="icmp" drop'firewall-cmd --permanent --zone=public --add-port=443/tcp
完成所有修改后,执行 firewall-cmd --reload 重新加载规则,再使用 firewall-cmd --list-all-zones 检查各个 zone 是否已经正确生效。
同步检查底层网络配置,避免路由冲突
防火墙规则能否真正生效,前提是网络流量必须从对应网卡进出,因此底层网络配置也要同步核查:
- 确认
/etc/sysconfig/network-scripts/ifcfg-ens33中BOOTPROTO=static,并确保 IP 地址与子网掩码符合网络规划 /etc/resolv.conf中的nameserver应优先指向内网 DNS,而不要误配为公网 DNS 地址- 默认网关只能配置在一个出口网卡上(例如
DEFROUTE=yes只在ens33或enp0s8中保留一个),否则可能造成路由冲突,甚至绕过防火墙策略
整体并不复杂,但这些细节在多网卡防火墙部署中非常容易被忽视。
