换句话说,当我无法访问另一台机器进行扫描时,我想看看服务器在外面的样子。让我举个例子:
案例 1:当我通过 SSH 连接到我的 VPS(即 Ubuntu Server)时,端口扫描的结果如下所示:
[email protected]:~$ nmap -p 1-20000 77.77.77.70
Nmap scan report for 77.77.77.70
PORT STATE SERVICE
25/tcp open smtp
80/tcp open http
111/tcp open rpcbind
443/tcp open https
8142/tcp open unknown
11273/tcp open unknown
18142/tcp open unknown
18143/tcp open unknown
18144/tcp open unknown
18145/tcp open unknown
18146/tcp open unknown
18147/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 0.36 seconds
案例 2:当我从我的 Ubuntu 桌面机器执行相同的命令时,结果被 VPS 的防火墙过滤,它看起来像:
user@Desktop:~$ sudo nmap -p 1-20000 77.77.77.70
Nmap scan report for 77.77.77.70
PORT STATE SERVICE
80/tcp open http
443/tcp open https
11273/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 4298.23 seconds
所以,我的问题是:有没有办法从 VPS 本身实现“案例 2”中的结果?使用 ofnmap
不是强制性的。
简短的回答是:不,您无法通过从内部查看服务器的外观。
长答案:正如您自己写的那样,来自外部的扫描受到防火墙的影响,并且可能受到其他干预网络组件的影响。理论上,您可以通过在 VPS 上设置的虚拟网络来模拟这种影响。但这是很多工作,您必须确切地知道这些组件是什么以及它们是如何配置的。唯一可行的方法是找到可以进行扫描的外部主机。
如果您没有任何防火墙,则可以运行
netstat -ln --inet --inet6
以列出侦听套接字。这将显示什么监听哪些接口。快速示例:
这里我们看到两种类型:
第一种,监听 0.0.0.0 或 ::(任何 IP)将可以远程使用,除非有防火墙。仅在 localhost(127.0.0.1 或 ::1)上侦听的套接字只能通过环回接口访问,因此无法远程访问。
此外,您可以将套接字绑定到特定接口,在这种情况下,接口的 IP 将显示在第 3 列中,例如 192.168.8.1 - 这意味着它们只能在该接口上访问。
这与端口扫描不同,因为它不考虑防火墙,但结合读取防火墙配置可能是进行设置的好方法,并且只有在配置防火墙后通过端口扫描进行验证。