Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.8. 使用区域管理流量取决于源

您可以使用区管理传入的流量,根据其源管理传入的流量。这可让您对进入的流量进行排序,并将其路由到不同的区,以允许或禁止该流量可访问的服务。
如果您给区添加一个源,区就会成为活跃的,来自该源的所有进入流量都会被定向到它。您可以为每个区指定不同的设置,这些设置相应地应用于来自给定源的网络流量。即使只有一个网络接口,您可以使用更多区域。

5.8.1. 添加源

要将传入的流量路由到特定源,请将源添加到那个区。源可以是 CIDR 格式的 IP 地址或 IP 掩码。
  1. 在当前区中设置源:
    ~]# firewall-cmd --add-source=<source>
  2. 要为特定区设置源 IP 地址:
    ~]# firewall-cmd --zone=zone-name --add-source=<source>
以下流程允许来自 受信任 区中 192.168.2.15 的所有传入的流量:
  1. 列出所有可用区:
    ~]# firewall-cmd --get-zones
  2. 将源 IP 添加到持久性模式的信任区中:
    ~]# firewall-cmd --zone=trusted --add-source=192.168.2.15
  3. 使新设置具有持久性:
    ~]# firewall-cmd --runtime-to-permanent

5.8.2. 删除源

从区中删除源会关闭来自它的网络流量。
  1. 列出所需区的允许源:
    ~]# firewall-cmd --zone=zone-name --list-sources
  2. 从区永久删除源:
    ~]# firewall-cmd --zone=zone-name --remove-source=<source>
  3. 使新设置具有持久性:
    ~]# firewall-cmd --runtime-to-permanent

5.8.3. 添加源端口

要启用根据原始端口对流量进行排序,请使用 --add-source-port 选项指定源端口。您还可以将此与 --add-source 选项结合使用,将流量限制在特定的 IP 地址或 IP 范围。
添加源端口:
~]# firewall-cmd --zone=zone-name --add-source-port=<port-name>/<tcp|udp|sctp|dccp>

5.8.4. 删除源端口

通过删除源端口,您可以根据原始端口禁用对流量排序。
要删除源端口:
~]# firewall-cmd --zone=zone-name --remove-source-port=<port-name>/<tcp|udp|sctp|dccp>

5.8.5. 使用 Zones 和 Sources 只允许服务只用于特定域

要允许特定网络的流量在机器上使用服务,请使用区和源。以下流程只允许来自 192.0.2.0/24 网络的 HTTP 流量,而阻止其他任何流量。
警告
当您配置此场景时,请使用具有 default 目标的区。使用目标设为 ACCEPT 的区存在安全风险,因为对于来自 192.0.2.0/24 的流量,所有网络连接都将被接受。
  1. 列出所有可用区:
    ~]# firewall-cmd --get-zones
    block dmz drop external home internal public trusted work
  2. 将 IP 范围添加到 internal 区,来将来自源的流量通过区:
    ~]# firewall-cmd --zone=internal --add-source=192.0.2.0/24
  3. internal 区中添加 http 服务:
    ~]# firewall-cmd --zone=internal --add-service=http
  4. 使新设置具有持久性:
    ~]# firewall-cmd --runtime-to-permanent
  5. 检查 internal 区是否活跃,以及该区中服务是否被允许:
    ~]# firewall-cmd --zone=internal --list-all
    internal (active)
      target: default
      icmp-block-inversion: no
      interfaces:
      sources: 192.0.2.0/24
      services: dhcpv6-client mdns samba-client ssh http
      ...

5.8.6. 配置基于区接受的流量

您可以根据协议允许区接受传入的流量。所有使用指定协议的流量都会被区接受,您可以在其中应用进一步的规则和过滤。

在区中添加协议

通过在某个区中添加协议,您可以允许这个区接受使用这个协议的所有流量。
在区中添加协议:
~]# firewall-cmd --zone=zone-name --add-protocol=port-name/tcp|udp|sctp|dccp|igmp
注意
要接收多播流量,请使用带有 --add-protocol 选项的 igmp 值。

从区中删除协议

从某个区中删除协议,您可以停止接受区基于这个协议的所有流量。
从区中删除协议:
~]# firewall-cmd --zone=zone-name --remove-protocol=port-name/tcp|udp|sctp|dccp|igmp