`nmap local-IP-address` 和 `nmap localhost` 之间的区别

Tim*_*Tim 7 services nmap

以下 IP 地址用于我的网络接口

$ nmap 192.168.0.142

Starting Nmap 7.60 ( https://nmap.org ) at 2019-03-09 11:33 EST
Nmap scan report for ocean (192.168.0.142)
Host is up (0.00047s latency).
Not shown: 996 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
3306/tcp open  mysql

Nmap done: 1 IP address (1 host up) scanned in 0.97 seconds
Run Code Online (Sandbox Code Playgroud)

那些服务是否显示在下面但不高于那些对外关闭但在我的本地机器内打开的服务?

我应该担心的安全性是否正是上面列出的服务?

谢谢。

$ nmap localhost

Starting Nmap 7.60 ( https://nmap.org ) at 2019-03-09 11:34 EST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00046s latency).
Other addresses for localhost (not scanned):
Not shown: 993 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
631/tcp  open  ipp
3306/tcp open  mysql
5432/tcp open  postgresql
9050/tcp open  tor-socks

Nmap done: 1 IP address (1 host up) scanned in 0.16 seconds
Run Code Online (Sandbox Code Playgroud)

Rui*_*iro 6

如果您的服务仅绑定到 localhost/127.0.0.1 地址,则它们只会在 127.0.0.1nmap扫描中显示,而不会在其他扫描到同一主机上的 IP 地址时显示。

通常情况下,出于安全原因,绑定到 127.0.0.1、MySQL、postgresql 和 mongo 数据库仅用于本地主机、redis 和其他。

相反,您有时会在非本地主机 IP 上找到其他端口,尤其是当您将网络服务器中的虚拟主机绑定到非本地主机 IP 地址并且仅侦听这些地址时。

在您特定的 192.168.0.142 情况下,我会询问 MySQL 是否也不能绑定到 127.0.0.1。

PS 我在实习时学到的一句非常古老的格言是:“比使用工具更重要的是了解它们如何工作/我们获得的数据。”

关于@roaima 答案,作为此答案中提到的示例,广泛使用的数据库 mongodb 的默认端口不在nmap.

TLDR 扫描同一设备的不同IP地址并不是规定,所有的扫描数据/开放端口都相同。

唉,通过网络设计,我们通常不希望它们相同。例如,在防火墙/交换设备中,我们在特定控制网络上定义接口/VLAN,用户无法访问这些接口以激活 Web 管理/ssh 服务,并且只能在这些接口上。例如,普通用户无法访问这些服务,他们只能通过 VPN 和/或控制室访问。(这是一个更极端的例子。我曾在一些组织中工作过,其中 VM 的 SSH 服务也仅通过控制网络提供)。


roa*_*ima 5

几乎,但不完全是。

默认情况下,nmap仅扫描任何给定协议(tcp、udp 等)的 1000 个端口。因此,您的端口扫描受该过滤器的约束。您将从文档中看到,您可以使用该选项定义要扫描的端口集-p,这-p-意味着扫描端口 1-65535。(奇怪的是,端口 0 仍然被省略;如果要包含它,则必须明确指定它。)


sou*_*edi 3

另外两个答案都提出了非常重要的观点。但此外,您似乎只扫描了 TCP 而没有扫描 UDP :-)。因此,您可能还需要担心 UDP 服务。

UDP 扫描有许多不适用于 TCP 扫描的问题。无论哪种情况,我都会首先查询操作系统:如何列出对远程计算机打开的所有套接字?

不过,端口扫描作为确认仍然很有用。如果您设置了防火墙,则从不同主机进行端口扫描是一个特别好的主意,以确认防火墙正在执行您想要的操作。