以下 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
这些服务是否显示在下方但未显示在上方,这些服务对外部关闭但在我的本地计算机中打开?
我应该担心其安全性的服务是否正是上面列出的那些?
谢谢。
$ 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
如果您的服务仅绑定到 localhost/127.0.0.1 地址,则它们只会在 127.0.0.1
nmap
扫描中显示,而不会在其他扫描到同一主机上的 IP 地址时显示。出于安全原因,这种情况通常会绑定到 127.0.0.1、MySQL、postgresql 和 mongo DB,仅用于本地主机、redis 等。
相反,您有时可以在非本地主机 IP 上找到其他端口,尤其是当您在网络服务器中的虚拟主机绑定到非本地主机 IP 地址并且只侦听这些地址时。
在您特定的 192.168.0.142 案例中,我会询问 MySQL 是否也不能绑定到 127.0.0.1。
PS 作为实习生,我被教导的一句很古老的格言是:“比使用工具更重要的是,了解它们是如何工作的/我们获得的数据。”
关于@roaima 答案,作为该答案中提到的一个示例,广泛使用的数据库 mongodb 的默认端口不在默认扫描的端口列表中
nmap
。TLDR 扫描同一台设备的不同IP 地址并不是一个规则,所有扫描数据/打开的端口都相同。
唉,通过网络设计,我们通常不希望它们相同。例如,在防火墙/交换设备中,我们在特定的控制网络上定义接口/VLAN,用户无法访问以使 Web 管理/ssh 服务处于活动状态,并且只能在这些接口上。例如,普通用户无法访问这些服务,只能通过 VPN 和/或控制室访问。(这是一个更极端的例子。我曾在虚拟机的 SSH 服务也仅通过控制网络存在的组织中工作过)。
差不多,但不完全。
默认情况下
nmap
,对于任何给定的协议(tcp、udp 等),只扫描 1000 个端口。因此,您的端口扫描受该过滤器的约束。您将从文档-p
中看到,您可以使用该选项定义要扫描的端口集,这-p-
意味着扫描端口 1-65535。(奇怪的是,out 0 仍然被省略;如果你想包含它,你必须明确指定它。)其他两个答案都提出了非常重要的观点。但此外,您似乎只扫描了 TCP 而不是 UDP :-)。因此,您可能还需要担心 UDP 服务。
UDP 扫描有许多不适用于 TCP 扫描的问题。无论哪种情况,我都会先查询操作系统:如何列出对远程机器开放的所有套接字?
不过,端口扫描作为确认仍然有用。如果您设置了防火墙,则从不同主机进行端口扫描是一个特别好的主意,以确认防火墙正在执行您想要的操作。