在 Red Hat 中設定防火牆
艙室 VM 會以作業系統身分執行 Red Hat Enterprise Linux。 根據預設,防火牆會設定為拒絕受控服務以外的所有輸入連線。 若要允許輸入通訊,必須將規則新增至防火牆以允許流量通過。 同樣地,如果不再需要規則,應該將其移除。
本文提供最常見的防火牆設定命令。 如需完整文件或更複雜的案例,請參閱第 40 章:使用和設定 Red Hat Enterprise Linux 8 的 firewalld
文件。
這裡參考的所有作業都需要 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
的連接埠範圍。 此命令使用於分散式運算案例,其中背景工作會分派至大量節點,且多個背景工作可能位於相同的實體節點上。 此範例會開啟從連接埠 5000 開始並採用 UDP 通訊協定的 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