你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Red Hat 中配置防火墙

处理室 VM 会将 Red Hat Enterprise Linux 作为操作系统运行。 默认情况下,防火墙将配置为拒绝除托管服务以外的所有入站连接。 要允许进行入站通信,必须将规则添加到防火墙,以允许传递流量。 同样,如果不再需要某个规则,则应将其移除。

本文将介绍最常见的防火墙配置命令。 有关完整文档或更复杂的方案,请参阅第 40 章.使用和配置 firewalld Red Hat Enterprise Linux 8 文档。

此处引用的所有操作都需要 sudo 特权,因此需要具有处理器管理员角色。

重要

VM 只能与同一处理室中的其他 VM 通信。 永远不允许在处理室之间传递流量,并且修改防火墙规则也不会支持在处理室之间传递流量。

先决条件

  • 具有处理器管理员角色的用户帐户。

列出所有打开的端口

列出所有当前打开的端口和关联的协议。

$ sudo firewall-cmd --list-all
public (active)
 target: default
 icmp-block-inversion: no
 interfaces: eth0
 sources: 
 services: cockpit dhcpv6-client ssh
 ports: 6817-6819/tcp 60001-63000/tcp
 protocols: 
 forward: no
 masquerade: no
 forward-ports: 
 source-ports: 
 icmp-blocks: 
 rich rules: 

打开流量的端口

可以为网络流量打开单个端口或连续的端口范围。 对 firewall-d 进行的更改是临时的,如果服务重启或重新加载,将不会保留这些更改(除非已经提交)。

打开单个端口

使用 --add-port=portnumber/porttype 选项通过给定协议的 firewalld 打开单个端口。 此示例将打开端口 5510/TCP。

$ sudo firewall-cmd --add-port=33500/tcp
success

将规则提交到永久集:

$ sudo firewall-cmd --runtime-to-permanent
success

打开一系列端口

使用 --add-port=startport-endport/porttype 选项通过指定协议的 firewalld 打开一系列端口。 此命令适用于分布式计算方案,其中工作线程会调度到大量节点,并且多个工作线程可能位于同一物理节点上。 此示例使用 UDP 协议打开从端口 5000 开始的连续 100 个端口。

$ sudo firewall-cmd --add-port=5000-5099/udp
success

将规则提交到永久集:

$ sudo firewall-cmd --runtime-to-permanent
success

移除端口规则

如果不再需要规则,则可以使用与添加和使用 --remove-port=portnumber/porttype 相同的表示法移除它们。 此示例移除了单个端口:

$ sudo firewall-cmd --remove-port=33500/tcp
success

将规则提交到永久集:

$ sudo firewall-cmd --runtime-to-permanent
success