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