最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Linux 防火墙:执行网络分段策略与跨段访问控制
时间:2026-07-08 09:51:47 编辑:袖梨 来源:一聚教程网
Linux防火墙不直接划分网段,而是通过firewalld区域机制绑定接口或地址段实现安全边界,并配合路由隔离、命名空间及策略路由等协同强化分段实效。
Linux 防火墙本身不直接“划分网段”,但它是网络分段策略落地的关键执行层。真正实现分段靠的是子网规划与路由隔离,而防火墙负责在每个子网边界(物理接口、虚拟接口或逻辑区域)上强制执行访问控制——既阻止非法跨段通信,又精准放行必需的跨段服务。
基于子网边界的防火墙区域划分
firewalld 的 zone(区域)机制天然适配网络分段逻辑:每个区域可绑定到特定网卡或源地址段,代表一个安全边界。
- 将连接办公内网的 eth1 接口设为 internal 区域,开放 SSH、HTTP 和数据库端口,但默认拒绝来自其他区域的连接;
- 将面向互联网的 eth0 设为 public 区域,仅开放 80/443,并显式拒绝 22、3306 等管理与敏感端口;
- 为运维跳板机网段 10.10.5.0/24 创建独立 trusted 区域,允许其访问所有管理端口,且不经过 public 规则链;
- 自定义 dmz 区域,绑定到隔离 DMZ 网段的 veth 接口,只允许外部访问 Web 服务端口,禁止回连内网路由。
跨网段访问的精细化放行规则
允许跨段访问不能简单“开个端口”,必须明确来源、目标、协议和用途,避免扩大信任范围。
- 用 rich rule 精确控制:允许 192.168.10.0/24(应用服务器段)访问 172.16.20.0/24(数据库段)的 3306 端口,但拒绝该段其他端口:
firewall-cmd --permanent --zone=db-zone --add-rich-rule='rule family="ipv4" source address="192.168.10.0/24" port port="3306" protocol="tcp" accept'; - 若需双向通信(如监控 agent 回传数据),必须在两端 firewall 上分别配置入向和出向规则,否则连接会因回程包被丢弃而中断;
- 对跨段 HTTP 流量,可结合 service 模块统一管理:启用 http 服务后,在对应区域中仅对该服务放行,而非直接开放 80 端口,便于后续统一调整。
配合路由与命名空间强化分段实效
仅靠防火墙规则无法防止路由层绕过。要确保分段真正生效,需与底层网络结构协同。
- 在多网卡主机上,禁用 IP 转发:
sysctl -w net.ipv4.ip_forward=0,避免主机成为非预期的跨段跳板; - 对高敏感服务(如密钥管理器),使用 network namespace 隔离整个网络栈,再通过 veth pair + bridge 连接至专用子网,防火墙规则部署在命名空间内部,与主机完全解耦;
- 当存在多个出口路径时,用 策略路由 + iptables MARK 强制某类流量走指定网关(如备份流量走专线),并在该路径的防火墙区域中单独设置限速与日志规则。
验证与持续维护要点
规则上线后,必须验证是否按预期工作,而非仅看命令返回 success。
- 从源段发起连接测试:
nc -zv 172.16.20.10 3306,确认通断;同时用tcpdump -i eth1 port 3306在目标主机抓包,验证流量是否真经由指定接口到达; - 检查规则持久性:firewalld 规则需
--permanent参数并--reload;iptables 规则须保存至系统启动加载文件(如/etc/iptables/rules.v4),否则重启即失效; - 定期审计:用
firewall-cmd --list-all-zones或iptables -L -v -n查看命中计数,识别长期零匹配的冗余规则,及时清理。