第 41 章 使用和配置 firewalld
防火墙是保护机器不受来自外部的、不需要的网络数据影响的一种方式。它允许用户通过定义一组防火墙规则 来控制主机上的入站网络流量。这些规则用于对传入流量进行排序,并阻止它或允许它通过。
firewalld
是一个防火墙服务守护进程,它通过 D-Bus 接口提供动态、可自定义的防火墙。如果是动态的,它会在每次更改规则时启用、修改和删除规则,而无需在每次更改规则时重启防火墙守护进程。
您可以使用 firewalld
来配置大多数典型情况所需的数据包过滤。如果 firewalld
不涵盖您的场景,或者您想要完全控制规则,请使用 nftables
框架。
firewalld
使用区、策略和服务的概念来简化流量管理。区域以逻辑方式分隔网络。网络接口和源可以分配给区。策略用于拒绝或允许区域间的流量流。防火墙服务是预定义的规则,覆盖了允许特定服务的传入流量的所有必要设置,并在区域内应用。
服务使用一个或多个端口或地址进行网络通信。防火墙会根据端口过滤通讯。要允许服务的网络流量,必须打开其端口。firewalld
会阻止未明确设置为开放的端口上的所有流量。一些区(如可信区)默认允许所有流量。
firewalld
维护单独的运行时和永久配置。这允许仅运行时的更改。firewalld
重新加载或重启后,运行时配置不会保留。在启动时,它会填充自永久配置。
请注意,带有 nftables
后端的 firewalld
不支持使用- direct
选项将自定义 nftables
规则传递给 firewalld
。
41.1. 使用 firewalld、nftables 或者 iptables 时
以下是您应该使用以下工具之一的概述:
-
firewalld
:对简单的防火墙用例使用firewalld
工具。此工具易于使用,并涵盖了这些场景的典型用例。 -
nftables
:使用nftables
工具来设置复杂和性能关键的防火墙,如用于整个网络。 -
iptables
:Red Hat Enterprise Linux 上的iptables
工具使用nf_tables
内核 API 而不是传统的
后端。nf_tables
API 提供了向后兼容性,以便使用iptables
命令的脚本仍可在 Red Hat Enterprise Linux 上工作。对于新的防火墙脚本,红帽建议使用nftables
。
要防止不同的与防火墙相关的服务(firewalld
、nftables
或 iptables
)相互影响,请在 RHEL 主机上仅运行其中一个服务,并禁用其他服务。