如何在 Centos7 上使用防火墙删除对端口的访问?

mcv*_*mcv 19 firewall port centos7

如果使用 firewall-cmd 打开一个端口供公众使用,我想将此端口限制为特定 IP,我在此SITE上找到了答案。

我使用以下方法打开它:

$ firewall-cmd --permanent --zone=public --add-port=10050/tcp
$ firewall-cmd --reload
Run Code Online (Sandbox Code Playgroud)

现在使用我发现的信息中的信息,我想将此端口的访问权限限制为特定的 IP 地址。我是否需要先从公共访问中删除此端口?

或者我可以按如下方式添加新规则,这样就能解决我的问题吗?

$ firewall-cmd --new-zone=special
$ firewall-cmd --permanent --zone=special --add-rich-rule='
  rule family="ipv4"
  source address=”123.1.1.1"
  port protocol="tcp" port="10050" accept'
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法:

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --reload
Run Code Online (Sandbox Code Playgroud)

但是当我运行以下命令时:

$ firewall-cmd --list-ports 
Run Code Online (Sandbox Code Playgroud)

10050/tcp 仍然显示。

请理解我对服务器端配置不太熟悉。

解决方案:不要忘记--runtime-to-permanent

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --runtime-to-permanent
$ firewall-cmd --reload 
Run Code Online (Sandbox Code Playgroud)

mcv*_*mcv 40

解决方案:不要忘记--runtime-to-permanent

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --runtime-to-permanent 
$ firewall-cmd --reload 
Run Code Online (Sandbox Code Playgroud)


小智 10

# firewall-cmd --zone=public --remove-port=12345/tcp --permanent
# firewall-cmd --reload
Run Code Online (Sandbox Code Playgroud)

将 12345 替换为要删除的端口。