如何使用 Nmap 扫描开放端口

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 系统上的开放端口,并通过示例来演示这些和各种选项的使用,以进一步指定用途。