7.9. 在区域间过滤转发的流量


firewalld 可让您控制不同 firewalld 区域之间的网络数据流。通过定义规则和策略,您可以管理流量在这些区域之间移动时是如何被允许或被拒绝的。

策略对象功能在 firewalld 中提供转发和输出过滤。您可以使用 firewalld 过滤不同区域之间的流量,以允许访问本地托管的虚拟机来连接主机。

7.9.1. 策略对象和区域之间的关系

策略对象允许用户将 firewalld 的原语(如服务、端口和富规则)附加到策略。您可以将策略对象应用到以有状态和单向的方式在区域间传输的流量上。

# firewall-cmd --permanent --new-policy myOutputPolicy

# firewall-cmd --permanent --policy myOutputPolicy --add-ingress-zone HOST

# firewall-cmd --permanent --policy myOutputPolicy --add-egress-zone ANY
Copy to Clipboard Toggle word wrap

HOSTANY 是 ingress 和 egress 区域列表中使用的符号区域。

  • HOST 符号区域对于来自运行 firewalld 的主机的流量,或具有到运行 firewalld 的主机的流量允许策略。
  • ANY 符号区对所有当前和将来的区域应用策略。ANY 符号区域充当所有区域的通配符。

7.9.2. 使用优先级对策略进行排序

多个策略可以应用到同一组流量,因此应使用优先级为可能应用的策略创建优先级顺序。

要设置优先级来对策略进行排序:

# firewall-cmd --permanent --policy mypolicy --set-priority -500
Copy to Clipboard Toggle word wrap

在上例中,-500 是较低的优先级值,但具有较高的优先级。因此,-500 将在 -100 之前执行。

较低数字的优先级值具有较高的优先级,被首先应用。

策略对象功能允许用户过滤 Podman 和 firewalld 区域之间的流量。

注意

红帽建议默认阻止所有流量,并打开 Podman 工具所需的可选择的服务。

流程

  1. 创建一个新的防火墙策略:

    # firewall-cmd --permanent --new-policy podmanToAny
    Copy to Clipboard Toggle word wrap
  2. 阻止从 Podman 到其它区域的所有流量,并只允许 Podman 上必要的服务:

    # firewall-cmd --permanent --policy podmanToAny --set-target REJECT
    # firewall-cmd --permanent --policy podmanToAny --add-service dhcp
    # firewall-cmd --permanent --policy podmanToAny --add-service dns
    # firewall-cmd --permanent --policy podmanToAny --add-service https
    Copy to Clipboard Toggle word wrap
  3. 创建一个新的 Podman 区域:

    # firewall-cmd --permanent --new-zone=podman
    Copy to Clipboard Toggle word wrap
  4. 为策略定义 ingress 区域:

    # firewall-cmd --permanent --policy podmanToHost --add-ingress-zone podman
    Copy to Clipboard Toggle word wrap
  5. 为所有其他区域定义 egress 区域:

    # firewall-cmd --permanent --policy podmanToHost --add-egress-zone ANY
    Copy to Clipboard Toggle word wrap

    将 egress 区域设置为 ANY 意味着您可以从 Podman 过滤到其他区域。如果要过滤到主机,请将 egress 区域设置为 HOST。

  6. 重启 firewalld 服务:

    # systemctl restart firewalld
    Copy to Clipboard Toggle word wrap

验证

  • 验证到其他区域的 Podman 防火墙策略:

    # firewall-cmd --info-policy podmanToAny
    podmanToAny (active)
      ...
      target: REJECT
      ingress-zones: podman
      egress-zones: ANY
      services: dhcp dns https
      ...
    Copy to Clipboard Toggle word wrap

7.9.4. 设置策略对象的默认目标

您可以为策略指定 --set-target 选项。可用的目标如下:

  • ACCEPT - 接受数据包
  • DROP - 丢弃不需要的数据包
  • REJECT - 拒绝不需要的数据包,并带有 ICMP 回复
  • CONTINUE(默认)- 数据包将遵循以下策略和区域中的规则。

    # firewall-cmd --permanent --policy mypolicy --set-target CONTINUE
    Copy to Clipboard Toggle word wrap

验证

  • 验证有关策略的信息

    # firewall-cmd --info-policy mypolicy
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat