使用 firewalld 将所有端口打开到特定 IP

use*_*201 9 firewalld

我在一台红帽 7 机器上,我需要打开防火墙上特定 IP 的所有端口。

我试过这个命令:

firewall-cmd --permanent --zone=public --add-rich-rule='   rule family="ipv4"   source address="64.39.96.0/20"   port protocol="tcp" port="*" accept'
Run Code Online (Sandbox Code Playgroud)

但是我收到了一个无效的端口错误 *

有谁知道并可以告诉我如何正确地做到这一点?

Mic*_*ton 16

为此使用 firewalld区域。可以通过接口或源 IP 地址指定区域。

事实上,默认情况下,一个接受所有流量的区域已经存在,它被命名为trusted。但是,默认情况下,此区域中没有任何内容。因此,您甚至不需要创建区域,只需将 IP 地址添加到trusted区域即可。

firewall-cmd --zone=trusted --add-source=64.39.96.0/20
Run Code Online (Sandbox Code Playgroud)

除了 CIDR 范围之外,您还可以指定单个 IP 地址或带有 .ipset 前缀的 ipset 名称ipset:

在此之后,任何端口都将允许来自指定地址的所有流量。请记住使其永久化,通过重复 append 命令--permanent或运行firewall-cmd --runtime-to-permanent.