我想关闭接口上除 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 通信,这就是为什么你不能轻易撤消这一点。