1

我提出了一种基于角色的设计,用于使用 Saltstack 配置我的防火墙区域。

实际上,我更多地将区域用作逻辑组。例如,某个组中的所有服务器都被允许访问Grafana/Influx服务器(用于将其数据流式传输到该服务器)。

所以我有一个名为 firewalld 的区域influx_group,所有源都会根据它们的角色自动添加到该区域。

其中一个服务器是 openvpn 服务器,它也应该添加到组internal中以进行 SSH 访问。然后是 firewall-cmd 命令给我一个错误。

firewall-cmd --add-source=1.1.1.1 --zone=internal
Error: ZONE_CONFLICT: '1.1.1.1' already bound to a zone

这可以通过丰富的规则来解决吗?

更新 1

可以通过向默认区域添加丰富的规则来解决最简单形式的问题:

firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="1.1.1.1" port port="22" protocol="tcp" accept'

但是,这并不能解决客户端/服务器与服务器/客户端关系和/或组的设计概念。因为没有通用的方法来决定定义组中的某些来源何时会发生冲突。并且简单地基于冲突有条件地在默认区域中删除规则,完全扼杀了基于服务关系的分组的细粒度控制。


TL;博士

我选择这个基于组的设置能够进行完整的动态配置。它基于整个基础架构中的客户端/服务器或服务器/客户端关系。因此,许多其他服务组合也存在冲突。

将源组合/分组到更高级别的区域会破坏我对这种粒度级别的目标。因此将更多端口组合到相同的区域中,冒着访问不应该访问的端口的风险。

有人对此有任何见解吗?

谢谢!

4

1 回答 1

0

接口(网络接口卡)和源(您的机器具有专用 IP 地址)只能绑定到一个区域。而已。这是有意义的,因为在不同级别的敌对环境中无法找到相同的源集。此外,此设置有助于拉平或拉平防守。您应该仔细阅读了解多区域配置中的 Linux 防火墙

将接口提供给可能是公共的更严格的区域。然后将资源添加到相应区域的信任级别。检查这些特定来源的区域中必须可用的服务和端口。

他们都会很活跃。源区域将具有优先权。如果源不匹配,将应用接口规则。如果接口区域不处理基于区域默认目标的流量,它将被丢弃、拒绝等。确保您阅读链接。

于 2022-03-06T00:56:58.243 回答