网站搜索

如何在 Firewalld 中打开特定 IP 地址的端口


如何允许来自我的专用网络中特定 IP 地址的流量或允许来自特定专用网络的流量通过 firewalld 到达 Red Hat Enterprise Linux 上的特定端口或服务> (RHEL) 还是 CentOS 服务器?

在这篇短文中,您将了解如何在运行 firewalld 防火墙的 RHEL 或 CentOS 服务器中打开特定 IP 地址或网络范围的端口。

解决此问题的最合适方法是使用 firewalld 区域。因此,您需要创建一个新区域来保存新配置(或者您可以使用任何可用的安全默认区域)。

在 Firewalld 中打开特定 IP 地址的端口

首先创建一个适当的区域名称(在我们的例子中,我们使用mariadb-access来允许访问MySQL数据库服务器)。

firewall-cmd --new-zone=mariadb-access --permanent

接下来,重新加载 firewalld 设置以应用新的更改。如果跳过此步骤,当您尝试使用新区域名称时可能会收到错误消息。这一次,新区域应该出现在区域列表中,如以下屏幕截图中突出显示的那样。

firewall-cmd --reload
firewall-cmd --get-zones

接下来,添加您希望在本地服务器上打开的源 IP 地址 (10.24.96.5/20) 和端口 (3306),如图所示。然后重新加载防火墙设置以应用新的更改。

firewall-cmd --zone=mariadb-access --add-source=10.24.96.5/20 --permanent
firewall-cmd --zone=mariadb-access --add-port=3306/tcp  --permanent
firewall-cmd --reload

或者,您可以允许从整个网络 (10.24.96.0/20) 到服务或端口的流量。

firewall-cmd --zone=mariadb-access --add-source=10.24.96.0/20 --permanent
firewall-cmd --zone=mariadb-access --add-port=3306/tcp --permanent
firewall-cmd --reload

要确认新区域具有上面添加的所需设置,请使用以下命令检查其详细信息。

firewall-cmd --zone=mariadb-access --list-all 

从 Firewalld 中删除端口和区域

您可以删除源 IP 地址或网络,如图所示。

firewall-cmd --zone=mariadb-access --remove-source=10.24.96.5/20 --permanent
firewall-cmd --reload

要从区域中删除端口,请发出以下命令,然后重新加载firewalld设置:

firewall-cmd --zone=mariadb-access --remove-port=3306/tcp --permanent
firewall-cmd --reload

要删除区域,请运行以下命令,然后重新加载firewalld设置:

firewall-cmd --permanent --delete-zone=mariadb-access
firewall-cmd --reload

最后但未列出,您还可以使用防火墙丰富的规则。这是一个例子:

firewall-cmd --permanent –zone=mariadb-access --add-rich-rule='rule family="ipv4" source address="10.24.96.5/20" port protocol="tcp" port="3306" accept'

就是这样!我们希望上述解决方案对您有用。如果是,请通过下面的反馈表告诉我们。您也可以提出问题或分享有关此主题的一般评论。