如何configurationiptables,使不需要的端口不被过滤

我想阻止其他人看到我的端口在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回复)。