13.3. 防火墙区域

您可以使用 ⁠firewalld 工具根据您与该网络中接口和流量的信任级别将网络划分为不同的区域。连接只能是一个区域的一部分,但您可以对许多网络连接使用这个区域。

firewalld 在区域方面遵循严格的原则:

  1. 流量只进入一个区域。
  2. 流量只离开一个区域。
  3. 一个区域定义一个信任级别。
  4. 默认情况下,允许区域内流量(在同一区域中)。
  5. 默认情况下,拒绝区域间流量(从区域到区域)。

原则 4 和 5 是原则 3 的结果。

原则 4 可以通过区域选项 --remove-forward 进行配置。原则 5 可以通过添加新策略来进行配置。

NetworkManager 通知接口区的 firewalld。您可以使用以下工具为接口分配区域:

  • NetworkManager
  • firewall-config 工具
  • firewall-cmd 工具
  • RHEL web 控制台

RHEL web 控制台、firewall-configfirewall-cmd 只能编辑合适的 NetworkManager 配置文件。如果您使用 web 控制台、firewall-cmdfirewall-config 更改接口的区域,则请求将被转发到 NetworkManager,且不会由 firewalld 进行处理。

/usr/lib/firewalld/zones/ 目录存储预定义的区域,您可以立即将它们应用到任何可用的网络接口。只有在修改后,这些文件才会被拷贝到 /etc/firewalld/zones/ 目录中。预定义区的默认设置如下:

block
  • 适用于:任何传入的网络连接都会被拒绝,并报 IPv4 的 icmp-host-prohibited 消息和 IPv6 的 icmp6-adm-prohibited 消息 。
  • 接受:只从系统内启动的网络连接。
dmz
  • 适用于:DMZ 中的计算机可以公开访问,但对您的内部网络有有限的访问权限。
  • 接受:仅所选的传入连接。
drop
适用于:所有传入的网络数据包都会丢失,没有任何通知。

**Accepts:仅传出的网络连接。

external
  • 适用于:启用了伪装的外部网络,特别是路由器。不信任网络上其他计算机的情况。
  • 接受:仅所选的传入连接。
home
  • 适用于:您主要信任网络上其他计算机的家庭环境。
  • 接受:仅所选的传入连接。
internal
  • 适用于:您主要信任网络上其他计算机的内部网络。
  • 接受:仅所选的传入连接。
public
  • 适用于:您不信任网络上其他计算机的公共区域。
  • 接受:仅所选的传入连接。
trusted
  • 接受:所有网络连接。
work

适用于:您主要信任网络上其他计算机的工作环境。

  • 接受:仅所选的传入连接。

这些区中的一个被设置为 default 区。当接口连接被添加到 NetworkManager 中时,它们会被分配到默认区。安装时,firewalld 中的默认区域是 public 区域。您可以更改默认区域。

注意

使网络区域名称自我解释,以帮助用户快速理解它们。

要避免安全问题,请查看默认区配置并根据您的需要和风险禁用任何不必要的服务。

其它资源

  • firewalld.zone (5) 手册页。