如何配置iptables,以便将不需要的端口不报告为已过滤


9

我想阻止其他人看到我的端口在nmap标准扫描中过滤(无特权)。假设我打开了以下端口:22、3306、995和配置如下的防火墙:

-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 X.X.X.X

    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,而不是保持沉默(不回复任何内容)?

Answers:


18

不要使用DROP,如果您知道该框已启动,则很容易将其标识为“已过滤”。相反,您可以使用以下命令发送RST。(好像有一个服务正在监听,但它不接受您的连接)

-A INPUT -p tcp -m tcp --dport 22 -j REJECT --reject-with tcp-reset

否则,只需使用以下命令使端口看起来关闭。(好像没有服务在监听)

-A INPUT -p tcp -m tcp --dport 22 -j REJECT

9
-A INPUT -p tcp -m tcp --dport 995 -j REJECT --reject-with tcp-reset

应该做您想要的(回复RST)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.