如何解决Firewalld:将源添加到多个区域,给出错误:ZONE_CONFLICT .. 还有另一种方法吗?
我提出了一个基于角色的设计,用于使用 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
我选择此基于组的设置是为了能够进行完整的动态配置。它基于整个基础架构中的客户端/服务器或服务器/客户端关系。因此,许多其他服务组合也存在冲突。
将源组合/分组到更高级别的区域违背了我的这种粒度级别的目标。因此,将更多端口合并到同一区域中,可能会冒着访问不应该访问的端口的风险。
有人对此有任何见解吗?
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。