第 1 章 使用和配置 firewalld


防火墙是保护机器不受来自外部的、不需要的网络数据影响的一种方式。它允许用户通过定义一组防火墙规则 来控制主机上的入站网络流量。这些规则用于对传入流量进行排序,并阻止它或允许它通过。

firewalld 是一个防火墙服务守护进程,它提供带有 D-Bus 接口的动态的、可自定义的防火墙。由于是动态的,所以它可以创建、修改和删除规则,而无需在每次规则更改时重启防火墙守护进程。

您可以使用 firewalld 配置大多数典型情况要求的数据包过滤。如果 firewalld 没有涵盖您的场景,或者您想要完全控制规则,请使用 nftables 框架。如需更多信息,请参阅 nftables 入门

firewalld 使用区域、策略和服务的概念来简化流量管理。区域在逻辑上分隔网络。网络接口和源可以分配给区。策略用于拒绝或允许区域间的流量流动。防火墙服务是预定义的规则,其覆盖所有必要设置,以允许特定服务的传入流量,并且它们在区域内应用。

服务使用一个或多个端口或地址进行网络通信。防火墙会根据端口过滤通讯。要允许服务的网络流量,必须打开其端口。firewalld 会阻止未明确设置为开放的端口上的所有流量。一些区(如可信区)默认允许所有流量。

firewalld 维护单独的运行时和永久配置。这允许仅运行时的更改。firewalld 重新加载或重启后,运行时配置不会保留。在启动时,它会从永久配置填充。

1.1. 防火墙区域

您可以根据您与该网络中的接口和流量的信任级别,使用 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

适合于:任何被丢失,但没有任何通知的传入网络数据包。

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

适用于:工作环境,其中您大多信任网络上的其他计算机。

  • 接受: 只有所选的传入连接。

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

注意

使网络区域名称一目了然,以帮助用户快速理解它们。

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

详情请查看您系统上的 firewalld.zone (5) 手册页。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat