我想阻止其他人看到我的端口在nmap标准扫描(非特权)过滤。 假设我打开了以下端口:22,3306,995和一个像这样configuration的防火墙:
-A INPUT -p tcp -m tcp --dport 22 -j DROP -A INPUT -p tcp -m tcp --dport 3306 -j DROP -A INPUT -p tcp -m tcp --dport 995 -j DROP
这是nmap扫描的结果:
[+] Nmap scan report for XXXX Host is up (0.040s latency). Not shown: 90 closed ports PORT STATE SERVICE 22/tcp filtered ssh 995/tcp filtered pop3s 3306/tcp filtered mysql
它将这些端口显示为过滤,因为我的服务器没有回复SYN的RST。 有没有办法来修改这种行为? 例如:如果iptables防火墙阻塞一个端口,回复RST的SYN,而不是保持沉默(不回答任何东西)?
不要使用DROP,如果知道盒子已经打开,很容易识别为“过滤”。 相反,您可以使用以下方式发送RST。 (好像有一个服务正在倾听,但它不接受你的连接)
-A INPUT -p tcp -m tcp --dport 22 -j REJECT --reject-with tcp-reset
否则,只需使用以下来使端口看起来closures。 (好像没有服务监听)
-A INPUT -p tcp -m tcp --dport 22 -j REJECT
-A INPUT -p tcp -m tcp --dport 995 -j REJECT --reject-with tcp-reset
应该做你想做的(用RST回复)。