【问题标题】:Firewalld: Adding a source to multiple zones, gives Error: ZONE_CONFLICT .. Is there another way?Firewalld:将源添加到多个区域,给出错误:ZONE_CONFLICT .. 还有其他方法吗?
【发布时间】: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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-27
      • 2023-02-20
      • 1970-01-01
      • 1970-01-01
      • 2014-10-27
      • 1970-01-01
      • 1970-01-01
      • 2010-11-03
      相关资源
      最近更新 更多