NMAP 工具结果

NMAP 工具结果

我首先通过 nmap 127.0.0.1(环回地址)执行了 nmap 扫描。它返回 999 个端口已关闭,端口 631 已打开(这是正确的,因为 netstat -tlpn 也显示端口 631 正在监听)。然后我通过 nmap 进行了端口扫描我的 IP 地址。然后返回的结果是所有 1000 个端口都已关闭。为什么他们只是扫描我的本地电脑,这两个结果会有差异?

答案1

您的答案不同,因为第一次扫描127.0.0.1不会穿过防火墙。第二次扫描也包括防火墙规则。

端口状态

开放状态

应用程序正在此端口上主动接受 TCP 连接、UDP 数据报或 SCTP 关联。找到这些通常是端口扫描的主要目标。有安全意识的人知道每个开放端口都是攻击的途径。攻击者和渗透测试人员希望利用开放端口,而管理员则试图关闭或使用防火墙保护它们,而不会阻止合法用户。开放端口对于非安全扫描也很有趣,因为它们显示了网络上可用的服务。

关闭状态

已关闭的端口是可访问的(它接收并响应 Nmap 探测数据包),但没有应用程序监听它。它们有助于显示主机在 IP 地址上处于启动状态(主机发现或 ping 扫描),并可作为操作系统检测的一部分。由于已关闭的端口是可访问的,因此可能值得稍后扫描,以防某些端口打开。管理员可能需要考虑使用防火墙阻止此类端口。然后它们将出现在过滤状态,下面将讨论。

过滤状态

Nmap 无法确定端口是否打开,因为数据包过滤会阻止其探测到达端口。过滤可能来自专用防火墙设备、路由器规则或基于主机的防火墙软件。这些端口让攻击者感到沮丧,因为它们提供的信息非常少。有时它们会以 ICMP 错误消息(如类型 3 代码 13(目标无法到达:管理上禁止通信))进行响应,但更常见的是过滤器只是丢弃探测而不做出响应。这迫使 Nmap 重试多次,以防探测因网络拥塞而不是过滤而丢弃。这会大大减慢扫描速度。

未过滤状态

未过滤状态意味着端口可访问,但 Nmap 无法确定它是打开还是关闭。只有用于映射防火墙规则集的 ACK 扫描才会将端口归类为此状态。使用其他扫描类型(例如窗口扫描、SYN 扫描或 FIN 扫描)扫描未过滤端口可能有助于确定端口是否打开。

开放和过滤状态

当 Nmap 无法确定端口是开放的还是被过滤的时,它会将端口置于此状态。这种情况发生在开放端口没有响应的扫描类型中。没有响应也可能意味着数据包过滤器丢弃了探测或它引发的任何响应。因此 Nmap 无法确定端口是开放的还是被过滤的。UDP、IP 协议、FIN、NULL 和 Xmas 扫描以这种方式对端口进行分类。

关闭和过滤状态

当 Nmap 无法确定端口是否关闭或被过滤时使用此状态。它仅用于 IP ID 空闲扫描。

因此,就您而言,端口处于关闭状态可能是因为您没有应用程序监听它。

答案2

由于nmap只显示 localhost 的一个开放端口,而外部 IP 没有端口,因此一个简单的结论就是您只有一个服务在监听,并且它只监听 localhost。netstat该端口的输出证实了这一点,因为该服务只监听127.0.0.1:631(IPv4 localhost) 和::1:631(IPv6 localhost)。

答案3

当一个程序打开一个监听 TCP 套接字时,它必须首先绑定将该套接字绑定到地址和端口号。最常见的地址是INADDR_ANY,在 Linux 上是 0.0.0.0 地址。这意味着“任何接口上的任何地址都可以连接”。另一种常见的替代方法是绑定到特定接口上配置的地址:设备面向外部的 IP 地址或环回适配器的特殊地址 ( lo) 127.0.0.1。

在您的例子中,CUPS 正在环回端口 631 上监听。这意味着它无法通过任何其他地址联系,即使是 Nmap 也无法联系到它。对于使用 CUPS 提供打印服务但未配置为网络上其他系统的打印服务器的系统来说,这是有道理的。

相关内容