firewalld
firewalld 是一个功能强大的防火墙管理工具,可用于控制出站和入站规则。下面是使用 firewalld 控制出入站规则的一般步骤:
-
检查 firewalld 服务是否正在运行:
sudo systemctl status firewalld
-
如果 firewalld 未运行,请启动 firewalld 服务:
sudo systemctl start firewalld
-
检查默认的防火墙区域:
sudo firewall-cmd --get-default-zone
-
查看当前活动的防火墙区域:
sudo firewall-cmd --get-active-zones
-
切换到你想要配置的防火墙区域(例如
public
):sudo firewall-cmd --set-default-zone=public
-
添加入站规则:
sudo firewall-cmd --zone=public --add-service=<service_name> --permanent
其中
<service_name>
是你想允许通过防火墙的服务名称,例如http
、ssh
等。这将持久保存规则,重启后仍然有效。 -
添加出站规则:
sudo firewall-cmd --zone=public --add-forward-port=port=<port_number>:proto=<protocol>:toport=<target_port> --permanent
其中
<port_number>
是源端口号,<protocol>
是协议类型(如tcp
、udp
),<target_port>
是目标端口号。这将持久保存规则,重启后仍然有效。 -
重新加载防火墙配置以应用更改:
sudo firewall-cmd --reload
-
检查当前的防火墙规则:
sudo firewall-cmd --list-all
以上是一般的步骤,你可以根据自己的需求调整和修改规则。请确保在进行任何更改之前先备份原始配置文件以防止意外情况。
查看规则
firewall-cmd --list-all
命令的输出结果如下所示,我将逐一解释其中的每个参数的含义:
-
public (active)
: 显示活动的防火墙区域名称。在这种情况下,使用了名为"public"的防火墙区域。 -
target: default
: 指定默认的目标(策略)来处理传入的网络流量。在这种情况下,使用了名为"default"的目标。 -
icmp-block-inversion: no
: 设置是否开启反向ICMP阻塞。如果设置为"yes",则会阻止传入的ICMP流量。在这种情况下,未开启此功能。 -
interfaces: enp125s0f0 enp135s0f0
: 列出与此防火墙区域关联的网络接口。在这种情况下,有两个网络接口与该防火墙区域相关联,分别是"enp125s0f0"和"enp135s0f0"。 -
sources:
: 指定允许访问此防火墙区域的源IP地址范围。在这种情况下,没有指定任何源IP地址。 -
services: cockpit dhcpv6-client mdns ssh
: 列出允许通过此防火墙区域的服务。在这种情况下,允许通过的服务包括"cockpit"、“dhcpv6-client”、“mdns"和"ssh”。 -
ports:
: 列出允许通过此防火墙区域的端口。在这种情况下,没有指定任何允许通过的端口。 -
protocols:
: 列出允许通过此防火墙区域的协议。在这种情况下,没有指定任何允许通过的协议。 -
masquerade: no
: 设置是否启用伪装(网络地址转换)功能。如果设置为"yes",则会使用伪装来隐藏内部网络的真实IP地址。在这种情况下,未启用此功能。 -
forward-ports:
: 指定要转发到其他主机或端口的端口。在这种情况下,没有进行任何端口转发。 -
source-ports:
: 指定允许从特定源端口发出的流量通过防火墙。在这种情况下,没有指定任何源端口。 -
icmp-blocks:
: 指定要阻止的ICMP类型。在这种情况下,没有阻止任何ICMP类型。 -
rich rules:
: 列出由特定规则定义的自定义规则。在这种情况下,没有定义任何自定义规则。