使用 nmap 扫描开放端口。iptables 默认策略会影响其他规则吗?

使用 nmap 扫描开放端口。iptables 默认策略会影响其他规则吗?

我试图找出为什么更改我的默认 iptables 策略会影响 nmap 扫描我的主机时看到的内容。

考虑以下 iptables 设置:

iptables -F
iptables -A INPUT -p tcp -s 10.1.0.0/20 --dport 22 -j ACCEPT

iptables -P INPUT ACCEPT
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

让我们使用 nmap 来使用它nmap -p - 10.1.0.157

Nmap scan report for 10.1.0.157
Host is up (0.00059s latency).
Not shown: 65531 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
111/tcp   open  rpcbind
5672/tcp  open  amqp
46010/tcp open  unknown

正如预期的那样,一些端口是开放的。添加一条专门丢弃端口 111 的规则:

iptables -F
iptables -A INPUT -p tcp -s 10.1.0.0/20 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 111 -j DROP

iptables -P INPUT ACCEPT
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

结果:

Nmap scan report for 10.1.0.157
Host is up (0.00056s latency).
Not shown: 65531 closed ports
PORT      STATE    SERVICE
22/tcp    open     ssh
111/tcp   filtered rpcbind
5672/tcp  open     amqp
46010/tcp open     unknown

为什么 111 显示为已过滤?为什么会显示?如果我将默认策略更改为 DROP,我会按预期获得以下扫描结果:

Nmap scan report for 10.1.0.157
Host is up (0.00052s latency).
Not shown: 65534 filtered ports
PORT   STATE SERVICE
22/tcp open  ssh

我是否不明白默认策略在 iptables 中的工作方式,或者它与 nmap 有关?

答案1

Nmap 将未收到响应的端口显示为“已过滤”。这是规则或策略设置为“DROP”时的结果。

端口 111 出现在一个输出中而另一个输出中没有出现的原因在于“未显示:”行。无论最常见的端口状态是什么(“关闭”或“已过滤”,而不是“打开”),都会与计数一起捆绑到该行中。因此,当策略为 ACCEPT 且没有任何监听时(或者如果策略为 REJECT),最常见的状态是“关闭”,这意味着收到了 TCP RST 数据包。端口 111 的 DROP 规则使其与其他端口不同,因此会显示出来。

在第二种情况下,当默认策略为 DROP 时,端口 111 的结果与任何其他端口的结果没有什么不同,因此它与“未显示:65534 个已过滤端口”行中的其他端口归为一类。

通过添加该选项,您可以获取有关端口为何显示为特定状态的更多详细信息--reason。此外,启用调试-d将展开“未显示”包并分别显示每个端口(大量输出!)。

相关内容