使用firewalld关闭端口

使用firewalld关闭端口

我想关闭接口上除 22 之外的所有端口enp0s3。出于测试目的,我让 netcat 监听端口 1234。我遇到的问题如下:

$ sudo firewall-cmd --state
running

$ sudo firewall-cmd --zone=drop --list-all
drop (default, active)
  interfaces: enp0s3
  sources: 
  services: ssh
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 

$ nmap 10.0.2.15
Starting Nmap 6.40 ( http://nmap.org ) at 2016-02-24 06:36 UTC
Nmap scan report for 10.0.2.15
Host is up (0.00099s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
1234/tcp open  hotline

如你所见,nmap 显示端口 1234 已打开,但我已将接口添加到降低防火墙中的区域。我遗漏了什么?

答案1

您尝试做的某件事非常糟糕,以至于防火墙根本就不允许您这样做。

默认情况下,允许来自 localhost 的所有流量的输入规则出现在防火墙的很前面,并且优先级高于全部用户定义的规则。它在firewalld的CLI工具中不可见,并且不能使用它们进行更改或删除。

从理论上讲,你可能确实需要这样做,但这种可能性极小(请注意,你可能思考你确实有需要,但实际上却不需要。对 localhost 进行防火墙保护是破坏整个系统的好方法,因为许多程序都依赖于 localhost 通信,这就是为什么你不能轻易撤消这一点。

相关内容