第 1 章 使用和配置 firewalld
防火墙是保护机器不受来自外部的、不需要的网络数据影响的一种方式。它允许用户通过定义一组防火墙规则 来控制主机上的入站网络流量。这些规则用于对传入流量进行排序,并阻止它或允许它通过。
firewalld 是一个防火墙服务守护进程,它提供带有 D-Bus 接口的动态的、可自定义的防火墙。由于是动态的,所以它可以创建、修改和删除规则,而无需在每次规则更改时重启防火墙守护进程。
您可以使用 firewalld 配置大多数典型情况要求的数据包过滤。如果 firewalld 没有涵盖您的场景,或者您想要完全控制规则,请使用 nftables 框架。如需更多信息,请参阅 nftables 入门。
firewalld 使用区域、策略和服务的概念来简化流量管理。区域在逻辑上分隔网络。网络接口和源可以分配给区。策略用于拒绝或允许区域间的流量流动。防火墙服务是预定义的规则,其覆盖所有必要设置,以允许特定服务的传入流量,并且它们在区域内应用。
服务使用一个或多个端口或地址进行网络通信。防火墙会根据端口过滤通讯。要允许服务的网络流量,必须打开其端口。firewalld 会阻止未明确设置为开放的端口上的所有流量。一些区(如可信区)默认允许所有流量。
firewalld 维护单独的运行时和永久配置。这允许仅运行时的更改。firewalld 重新加载或重启后,运行时配置不会保留。在启动时,它会从永久配置填充。
1.1. 防火墙区域 复制链接链接已复制到粘贴板!
您可以根据您与该网络中的接口和流量的信任级别,使用 firewalld 工具将网络划分为不同的区域。连接只能是区域的一部分,但您可以对许多网络连接使用这个区域。
firewalld 在区域方面遵循严格的原则:
- 流量只流入一个区域。
- 流量只流出一个区域。
- 一个区域定义一个信任级别。
- 默认允许区域内流量(在同一区域内)。
- 默认拒绝区域内流量(从区域到区域)。
原则 4 和 5 是原则 3 的结果。
原则 4 可以通过区域选项 --remove-forward 进行配置。原则 5 可以通过添加新策略进行配置。
NetworkManager 通知接口区的 firewalld。您可以使用以下工具将区域分配给接口:
-
NetworkManager -
firewall-config工具 -
firewall-cmd工具 - RHEL web 控制台
RHEL web 控制台、firewall-config 和 firewall-cmd 只能编辑合适的 NetworkManager 配置文件。如果您使用 Web 控制台、firewall-cmd 或 firewall-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) 手册页。