Nmap(网络映射器)是网络管理员用于安全审计和映射网络的最流行的发现工具。 此核心工具还用于查找实时主机、操作系统检测、执行端口扫描和版本检测。
为了检测网络上的各种可用主机、它们提供的服务、它们运行的操作系统版本以及它们使用的防火墙类型,nmap 使用原始 IP 地址。 每当我们遇到网络或防火墙配置的连接问题时,我们首先要检查哪些端口是开放的。
有几个命令可用于检查打开的端口并在您的系统上扫描它们,但 nmap 是用于此目的的最常用的命令。 在本文中,我们将讨论如何在 Linux 系统上使用 nmap 扫描所有开放端口。
开放端口
应用程序侦听各种网络端口,这些端口可以通过防火墙打开或关闭。 这里的开放端口是那些从某个位置接受传入数据包的端口,它们可能会带来安全风险,因为这些端口可以被各种攻击者使用。
因此,我们需要检查打开的端口和 close 任何功能都不需要的所有不必要的。 为了扫描我们系统上的各种开放端口,我们将使用命令 nmap。
安装 Nmap
在扫描任何开放端口之前,我们需要在 Linux 系统上安装 nmap。 首先使用以下选项之一在您的系统上安装 nmap:
- 在 Ubuntu、Debian 和 Linux Mint 上
sudo apt update && sudo apt install namp
- 在 CentOS、RHEL 和 Fedora
现在我们的包已经更新,我们都准备安装 nmap 并为此执行下面给出的命令:
sudo dnf install nmap
使用 nmap 命令扫描端口
我们可以通过以下方式使用 nmap 命令扫描任何端口、IP 地址范围或任何主机:
01. 要扫描主机名,我们可以执行以下命令:
sudo nmap localhost
Output Starting Nmap 7.80 ( https://nmap.org ) at 2021-10-02 10:19 UTC Nmap scan report for localhost (127.0.0.1) Host is up (0.0000050s latency). Not shown: 997 closed ports PORT STATE SERVICE 80/tcp open http 443/tcp open https 3306/tcp open mysql Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds
你也可以在没有的情况下运行 nmap sudo 但是非特权扫描使用 -sT(TCP 连接)而特权(root)使用 -sS(TCP SYN Stealth)。
02. 告诉 nmap 扫描我们使用的所有 TCP 端口 “英石” 随着 nmap 和 “-O” 此处用于操作系统检测。
sudo nmap -sT -O 127.0.0.1
输出显示 80、443 和 3306 端口已打开。
Output Starting Nmap 7.80 ( https://nmap.org ) at 2021-10-02 10:23 UTC Nmap scan report for localhost (127.0.0.1) Host is up (0.000080s latency). Not shown: 997 closed ports PORT STATE SERVICE 80/tcp open http 443/tcp open https 3306/tcp open mysql Device type: general purpose Running: Linux 2.6.X OS CPE: cpe:/o:linux:linux_kernel:2.6.32 OS details: Linux 2.6.32 Network Distance: 0 hops OS detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 1.76 seconds
03. 如果我们想要执行仅执行我们使用的一半 tcp 握手的 SYN 扫描 “-sS” 连同 nmap 命令以下列方式:
sudo nmap -sS 127.0.0.1
04. 为了告诉 nmap 扫描所有 UDP 端口而不是 TCP,我们使用“-它的” 我们将使用 -p 和 nmap 命令指定端口 80、130 和 255:
sudo nmap -sU -p 80,130,255 127.0.0.1
这里的输出显示我们为扫描指定的所有 UDP 端口都已关闭。
使用带有 nmap 的“-v”进行扫描
05. 为了获得有关系统和开放端口的更多信息,您必须使用“-v”选项和 nmap,就像我们在下面的示例中所做的那样:
sudo nmap -v 127.0.0.1
06. 通过这种方式,我们可以获得有关机器的所有详细信息以及所有打开的端口。
sudo nmap -v 10.0.2.15
使用 nmap 扫描多个主机
07. 可以使用 nmap 扫描多个主机名或 IP 地址,只需在它们之间加上空格即可,如下所示:
sudo nmap 127.0.0.1 127.0.0.2 127.0.0.3
扫描单个或多个端口
08. Nmap 可用于扫描各种端口以及特定端口,如下例所示:
sudo nmap -p 80 127.0.0.1
09. 在这里,我们正在扫描提供的 ip 地址上的端口 80,输出告诉我们它已关闭。 现在要扫描从 1 到 200 的一系列端口,我们将使用以下命令:
sudo nmap -p 1-200 127.0.0.1
10. 现在要对系统执行快速扫描,我们使用“-F”和 nmap 命令,如下所示:
sudo nmap -F 127.0.0.1
使用 nmap 扫描整个子网
11. 如果您想扫描整个 IP 或子网范围,我们按以下方式使用“*”:
sudo nmap 127.0.0.*
这个命令扫描了整个子网,并为我们提供了每个主机和它们上可用端口的结果。
通过这种方式,我们可以对 IP 地址、特定主机进行各种扫描并检查所有端口。 此外,可以指定特定端口或端口范围,如上面示例中所示。
结论
检查网络上打开的端口非常重要,因为任何打开的端口都很容易被黑客攻击并造成安全威胁。 这就是为什么执行扫描并检查所有打开的端口很重要的原因,如果它们没有被使用, close 他们。
Nmap 是常用的端口扫描命令。 在本文中,我们讨论了如何使用 nmap 扫描 Linux 系统上的开放端口,并通过示例来演示这些和各种选项的使用,以进一步指定用途。