简介
Nmap (“Network Mapper(网络映射器)”) 是一款开放源代码的网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络,当然用它扫描单个 主机也没有问题。Nmap 以新颖的方式使用原始 IP 报文来发现网络上有哪些主机,那些主机提供什么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息), 它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。虽然 Nmap 通常用于安全审核, 许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息, 管理服务升级计划,以及监视主机和服务的运行。
用途
虽然 3CX 有防火墙检测可以检测 PBX 是否开放了指定端口,但是很多时候我们是作为方案整合商给终端用户做项目,有时候需要开放指定端口到指定 IP。比如:
- 对接 SIP Trunk 的时候,需要将 SIP 端口开放给 SIP Trunk 的 IP 地址。而向所有 IP 开放 SIP 端口是非常危险的。
- 3CX 放在云端,但是本地有落地网关。网关也需要向 3CX 开放 SIP 端口。
- 其他的开放端口的使用场景。。。
而在 VoIP 项目实施中,我们不负责网络部分的实施。如果网络端口开放出现了问题,对于电话系统是个非常大的隐患。
在这里我们使用 Nmap 端口扫描工具扫描端口,可以让我们在 IT 开放端口后检查对方端口的开放是否正确。避免后续带来的一系列问题。
安装
点击此处 下载 nmap-7.70 图形化软件。
如果是安装了chocolatey 的用户可以用管理员权限运行下列命令安装:
choco install nmap
Linux 和 MacOS 等用户可以前往官网寻找安装方法:https://nmap.org/download.html
简单扫描
具体的使用介绍网上也有很多文章了,官网也解释的很详细。这里我介绍一下在 3CX 部署领域内使用的一些命令。
使用下列命令可以对域名进行简单扫描:
nmap -A -T4 -Pn 58voip3cx.3cx.cn
在上述命令中,-A
用来进行操作系统及其版本的探测。-T4
可以加快执行速度。
如果主机是不可 Ping 的话,需要额外加一个 -Pn
选项。
对指定端口扫描
我们在 3CX 中可能会使用的端口如下所示(实际使用中根据需求开放):
端口 | 协议 | 用途 |
---|---|---|
5001 | tcp | https 端口 |
5060 | tcp 和 udp | sip 端口 |
5061 | tcp | Secure SIP 端口 |
5090 | tcp 和 udp | 3CX Tunnel 端口 |
9000 – 10999 | udp | RTP 端口 |
那么我们演示一下如何对上述端口进行扫描,因为 RTP 端口较多,我们分两次进行:
nmap -p 5001,5060,5061,5090 -sS -sU -Pn 58voip3cx.3cx.cn
- -p : 端口范围,用逗号隔开
- -sS : Nmap 推荐的 TCP 扫描方式。
- -sU : 扫描 UDP(需管理员权限)
- -Pn : 禁止 Ping 扫描
如下图所示端口是开放的。
接下来我们扫描一下 UDP:
nmap -p 9000-10999 -sU -T4 58voip3cx.3cx.cn
可以看到这 2000 个端口都是关闭的。
扫描结果
Nmap 扫描出来不是只有开放和关闭这两种情况,根据防火墙路由器设备的不同,对于 Nmap 的扫描也会有不同的反馈。
Nmap 扫描出来有以下 6 种结果。
状态 | 描述 |
---|---|
open | 端口是开放的,应用程序正在该端口接收TCP 连接或者UDP报文。 |
closed | 关闭。关闭的端口对于 Nmap 也是可访问的(它接受 Nmap 的探测报文并作出响应), 但没有应用程序在其上监听。 |
filtered | 被过滤的。由于包过滤阻止探测报文到达端口, Nmap 无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由器规则或者主机上的软件防火墙。 |
unfiltered | 未被过滤的。未被过滤状态意味着端口可访问,但 Nmap 不能确定它是开放还是关闭。 |
open|filtered | 当无法确定端口是开放还是被过滤的,Nmap就把该端口划分成 这种状态。开放的端口不响应就是一个例子。 |
closed|filtered | 该状态用于 Nmap 不能确定端口是关闭的还是被过滤的。 它只可能出现在IPID Idle扫描中。 |