【发布时间】:2021-02-18 18:32:52
【问题描述】:
我提出了一种基于角色的设计,用于使用 Saltstack 配置我的防火墙区域。
实际上,我更多地将区域用作逻辑组。例如,某个组中的所有服务器都可以访问 Grafana/Influx 服务器(用于将数据流式传输到该服务器)。
所以我有一个名为 influx_group 的 firewalld 区域,所有源都会根据其角色自动添加到该区域。
其中一个服务器是 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;DR
我选择此基于组的设置能够进行完全动态配置。它基于整个基础架构中的客户端/服务器或服务器/客户端关系。因此,许多其他服务组合也存在冲突。
将源组合/分组到更高级别的区域违背了我的这种粒度级别的目标。因此将更多端口组合到相同的区域中,冒着访问不应该访问的端口的风险。
有人对此有任何见解吗?
谢谢!
【问题讨论】:
标签: security salt-stack firewalld