ko6*_*ko6 5 linux zones firewalld
我试图了解 Linux firewalld 区域背后的逻辑,以及它们的评估方式。
据我了解,区域被定义为接口和 IP 范围的列表,可以应用允许/拒绝规则。这样对吗?对于包含接口和附加 IP 范围的区域。即使流量将从该范围内的 IP 到达机器,但通过不同的接口,该区域允许的服务是否也将被允许用于 IP 范围?
以什么顺序评估区域?与两个(可能相互矛盾的)区域匹配的传入流量会发生什么情况?例如,区域“Z1”允许从给定接口到机器的 nfs,区域“Z2”拒绝来自 IP 的所有传入流量。通过“Z1”中定义的接口但从“Z2”中定义的 IP 到达机器的 NFS 流量会发生什么?
小智 5
Zone只是基于netfilter的一个抽象层。在 netfilter 的语言中,规则了它的一组链,这些链给您作为防火墙的最终用户的感觉,您的数据包位于某个“区域”内。您始终可以检查区域运行的确切行为:
iptables-L
firewalld匹配数据包的顺序是:
这基本上意味着,如果数据包的最终目的地不是由直接规则决定的,它们将进入某个区域。首先,firewalld 尝试根据源 IP 路由它们。如果没有匹配,firewalld 将尝试根据它们进入的接口来路由它们。如果这也失败,它们将进入默认区域。如果您使用源 IP 设置了更多区域,并且这些 IP 范围与区域重叠,则首先添加的源规则将获胜,因为将首先检查其规则是否匹配。
让系统具有接口:
防火墙设置 1:
firewall-cmd --zone=home --add-interface=eth0
firewall-cmd --zone=internal --add-source=192.168.0.0/16
Run Code Online (Sandbox Code Playgroud)
通过 eth0 来自地址 192.168.0.2 的数据包将被路由到内部区域。
防火墙设置 2:
firewall-cmd --zone=internal --add-source=192.168.0.0/16
firewall-cmd --zone=home --add-source=192.168.0.2/32
Run Code Online (Sandbox Code Playgroud)
来自 192.168.0.2 的数据包将再次路由到内部区域。它以这种方式工作,因为firewalld正在逐一添加路由区域的源规则,以便我们运行相关命令。
| 归档时间: |
|
| 查看次数: |
4728 次 |
| 最近记录: |