《高性能Linux服务器构建实战:系统安全、故障排查、自动化运维与集群架构》——2.4 网络探测和安全审核工具nmap

简介:

本节书摘来自华章计算机《高性能Linux服务器构建实战:系统安全、故障排查、自动化运维与集群架构》一书中的第2章,第2.4节,作者:高俊峰著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.4 网络探测和安全审核工具nmap

对于nmap,相信很多安全运维人员并不陌生,它曾经在电影《黑客帝国》中出现过,是黑客和网络安全人员经常用到的工具,本节重点介绍此工具的实现原理和使用技巧。
2.4.1 nmap和Zenmap简介
nmap是一个开源免费的网络发现工具,通过它能够找出网络上在线的主机,并测试主机上哪些端口处于监听状态,接着通过端口确定主机上运行的应用程序类型与版本信息,最后利用它还能侦测出操作系统的类型和版本。由此可见,nmap是一个功能非常强大的网络探测工具,同时它也成为网络黑客的最爱,因为nmap所实现的这些功能正是黑客入侵网络的一个基本过程。站在安全运维的角度,只有了解了黑客入侵的基本方式和过程,才能有目的、有针对性地进行安全防护,这也正是本节重点介绍nmap这个网络嗅探工具的原因。
nmap是Network Mapper的缩写,由Fyodor在1997年创建,现在已经成为网络安全必备的工具之一,目前最新的版本为nmap6.40,更多详细信息可以参考官方网站:www.nmap.org。nmap作为一个流行的安全工具,它的主要特点有:
非常灵活。nmap支持10多种扫描方式,并支持多种目标对象扫描。
支持主流操作系统。nmap支持Windows、Linux、BSD、Solaris、AIX、Mac OS等多种平台,可移植性强。
使用简单。nmap安装、使用都非常简单,基本用法就能满足一般使用需求。
自由软件。nmap是在GPL协议下发布的,在GPL License的范围内可自由使用。
Zenmap是nmap的GUI版本,由nmap官方提供,通常随着nmap安装包一起发布。Zenmap是用Python语言编写的,能够在Windows、Linux、UNIX、Mac OS等不同系统上运行。开发Zenmap的目的主要是为nmap提供更加简单的操作方式。
2.4.2 nmap基本功能与结构
nmap功能非常强大,从它实现功能的方向性来划分,主要有如下四个基本功能:
主机发现。
端口扫描。
应用程序及版本侦测。
操作系统及版本侦测。
这四个基本功能既相互独立,又依次依赖,因为一般的网络嗅探都是从主机发现开始的,在发现在线的主机后,接着需要进行端口扫描,进而通过扫描到的端口确定运行的应用程序类型及版本信息,并最终确定操作系统的版本及漏洞信息。另外nmap还提供了防火墙与入侵检测系统的规避技巧,这个功能可以应用到基本功能的各个阶段中。最后,nmap还提供了高级用法,即通过NSE(Nmap Scripting Language)脚本引擎功能对nmap基本功能进行补充和扩展。
2.4.3 nmap的安装与验证
nmap的安装非常简单,官方提供源码编译安装和RPM包两种方式,读者可根据自己的喜好选择安装即可。这里下载的版本为nmap-6.40.tar.bz2,下面分别介绍两种安装方式。
1 . 源码编译安装
从官方网站下载源码包,然后编译安装即可。编译安装过程无需额外参数,操作如下:

[root@localhost ~]# tar jxvf nmap-6.40.tar.bz2
[root@localhost ~]# cd nmap-6.40
[root@localhost nmap-6.40]# make
[root@localhost nmap-6.40]# make install

至此,源码编译编译方式安装nmap完成。
2 . RPM包安装
nmap官方也提供RPM格式的安装包,直接从网站下载RPM格式的安装包,然后进行安装即可,操作过程如下:

[root@localhost ~]# wget http://nmap.org/dist/nmap-6.40-1.x86_64.rpm
[root@localhost ~]# rpm -Uvh nmap-6.40-1.x86_64.rpm

在完成安装后,执行“namp -h”,如果能输出帮助信息,表示安装成功,否则根据错误提示重新安装。
2.4.4 nmap的典型用法
前面提到了nmap主要包含四个方面的扫描功能,在详细介绍每个功能之前,首先介绍nmap的典型用法。最简单的nmap命令形式如下:

namp 目标主机

通过这个命令,可以确定目标主机的在线情况和端口的监听状态,如图2-22所示。

image

由输出可知,目标主机“192.168.12.189”处于“up”状态,并且此主机上开放了22、21、3306端口,同时还侦测到每个端口对应的服务,在最后还给出目标主机网卡的MAC信息。
如果希望了解目标主机更多的信息,可以通过完全扫描的方式实现,nmap命令内置了“-A”选项,可以实现对目标主机进行主机发现、端口扫描、应用程序与版本侦测、操作系统识别等完整全面的扫描,命令形式如下:

nmap -T4 -A -v 目标主机

其中,“-A”选项用于开启全面扫描;“-T4”指定扫描过程中使用的时序模板,总共有6个等级(0~5),等级越高,扫描速度越快,但也越容易被防火墙或者入侵检测设备发现并屏蔽,所以选择一个适当的扫描等级非常重要,这里推荐使用“-T4”;“-v”参数可显示扫描细节。图2-23是nmap对某主机的全面扫描过程。

image

从图2-23中可以看出,整个扫描过程非常详细:第一部分是对主机是否在线进行扫描;第二部分是对端口进行扫描,在默认情况下nmap会扫描1000个最有可能开放的端口,由于只扫描到22、111、80三个端口处于打开状态,所以在输出中会有“997 closed ports”的描述;第三部分是对端口上运行的应用服务以及版本号进行统计,可以看到,扫描结果非常详细地记录了软件的版本信息;第四部分是对操作系统类型和版本进行探测,从扫描结果来看,还是非常准确的;第五部分是对目标主机的路由跟踪信息。
2.4.5 nmap主机发现扫描
主机发现主要用来判断目标主机是否在线,其扫描原理类似于ping命令,通过发送探测数据包到目标主机,如果能收到回复,那么认为目标主机处于在线状态。nmap支持多种不同的主机探测方法,例如发送TCP SYN/ACK包、发送SCTP包、发送ICMP echo/timestamp/netmask请求报文等,用户可在不同的环境下选择不同的方式来探测目标主机。
1 . 主机发现的用法
nmap提供了丰富的选项以供用户选择不同的主机发现探测方式,使用语法如下:

nmap [选项或参数] 目标主机

nmap常用的主机发现选项与含义如表2-7所示。
image

在这些选项中,比较常用的是“-sn”和“-Pn”,例如,查看某个网段有哪些主机在线,就需要使用“-sn”选项,而如果已经知道了目标主机在线,仅仅想扫描主机开放的端口时,就需要用“-Pn”选项。
2 . 使用实例
下面以探测www.abc.com主机的信息为例,简单演示主机发现的用法。首先,在联网的服务器上执行如下命令:

nmap  -sn -PE -PS22,80 -PU53 www.abc.com

执行结果如图2-24所示。

image

在这个例子中,使用了“-PE”、“-PS”、“-PU”等参数,根据上面的介绍,“-PE”是以发送ICMP echo报文的形式进行主机探测的,“-PS”是以发送TCP SYN/ACK包的形式侦测主机信息的,而“-PU”则是以UDP的方式进行主机侦测的。为了清晰展示nmap的侦测方式和侦测过程,这里通过抓包工具Wireshark动态监测nmap探测主机的过程,如图2-25所示。

image

从图2-25中可以看到,nmap所在的主机“192.168.12.188”向目标主机“61.185.133.234”发送了四个探测包,分别是ICMP Echo (ping)、22端口和80端口的TCP SYN、53端口的UDP包。但是仅仅收到了ICMP Echo (ping)和80端口的回复,22端口返回了“RST”标识,这说明22端口处于关闭状态。不过nmap的原则是只要能收到任何一种探测请求的回复,就认为此主机处于在线状态。
2.4.6 nmap端口扫描
端口扫描是nmap最核心的功能,通过端口扫描可以发现目标主机上TCP、UDP端口的开放情况。nmap在默认状态下会扫描1000个最有可能开放的端口,并将侦测到的端口状态分为6类,分别是:
open,表示端口是开放的。
closed,表示端口是关闭的。
filtered,表示端口被防火墙屏蔽,无法进一步确定状态。
unfiltered,表示端口没有被屏蔽,但是否处于开放状态,还需要进一步确定。
open|filtered,表示不确定状态,端口可能是开放的,也可能是屏蔽的。
closed|filtered,表示不确定状态,端口可能是关闭的,也可能是屏蔽的。
在端口扫描方式上,nmap支持10多种探测方法,最常用的有“TCP SYN scanning”,这是默认的端口扫描方式,另外还有“TCP connect scanning”、“TCP ACK scanning”、“TCP FIN/Xmasscanning”、“UDP scanning”等探测方式。具体使用哪种探测方式,用户可自己指定。
1 . 端口扫描的用法
nmap提供了多个选项以供用户来指定扫描方式和扫描端口,使用语法如下:

nmap [选项或参数] 目标主机

nmap端口扫描的常用选项与含义如表2-8所示。
image

2 .使用实例
下面仍以探测www.abc.com主机的信息为例,简单演示端口扫描的使用方法。首先,在联网的服务器上执行如下命令:
nmap -sU -sS -F www.abc.com
执行结果如图2-26所示。
在图2-26中,参数“-sS”表示使用TCP SYN方式扫描TCP端口,“-sU”表示扫描UDP端口,“-F”表示使用快速扫描模式,扫描最可能开放的前100个端口(TCP和UDP各100个端口),由输出可知,有21个端口处于开放或者屏蔽状态,其他179个端口处于关闭状态。

image

2.4.7 nmap版本侦测
nmap的版本侦测功能主要用来确定目标主机开放的端口上运行的应用程序及版本信息,nmap的版本侦测支持TCP/UDP协议,支持多种平台的服务侦测,支持IPV6功能,并能识别几千种服务签名,下面介绍nmap版本侦测的使用方法。
1 . 版本侦测的用法
nmap在版本侦测方面的命令选项非常简单,常用的语法如下:

nmap [选项或参数] 目标主机

nmap在版本侦测方面的常用选项及含义如表2-9所示。
image

2 . 使用实例
下面以探测“23.76.232.59”主机上运行的应用程序的版本信息为例,简单演示版本侦测的使用方法。首先,在联网的服务器上执行如下命令:

nmap  -sV  23.76.232.59

执行结果如图2-27所示。

image

从图2-27中nmap的输出可以看到每个端口对应的服务名称以及详细的版本信息,通过对服务器上运行服务的了解,以及对服务版本的探测,基本能判断出来此服务器是否存在软件漏洞,进而提醒运维管理人员进行端口关闭或升级软件等操作,尽早应对可能出现的安全威胁。
2.4.8 nmap操作系统侦测
操作系统侦测主要是对目标主机运行的操作系统类型及版本信息进行检测。nmap拥有丰富的系统指纹库,目前可以识别近3000种操作系统与设备类型。下面介绍nmap操作系统侦测的使用方法。

  1. 操作系统侦测的用法
    nmap在操作系统侦测方面提供的命令选项比较少,常用的语法如下:
nmap [选项或参数] 目标主机

nmap在操作系统侦测方面的常用选项及含义如表2-10所示。
image

  1. 使用实例
    下面以探测“192.168.12.118”和“192.168.12.119”主机的操作系统类型为例,简单演示操作系统侦测的使用方法。首先,在联网的服务器上执行如下命令:
nmap -O --osscan-guess 192.168.12.118-119

执行结果如图2-28所示。

image

从图2-28中可以看出,在指定了“-O”选项后,nmap命令首先执行了主机发现操作,接着执行了端口扫描操作,然后根据端口扫描的结果进行操作系统类型的侦探,获取到的信息有设备类型、操作系统版本、操作系统的CPE描述、操作系统的细节和网络距离。如果不能确定操作系统的版本,会猜测每个系统版本的可能性比率,例如对于“192.168.12.119”主机,nmap给出最可能的操作系统版本是VMware ESXi Server 5.0,而事实上,此主机确实安装了这个版本的系统。由此可见,nmap的操作系统侦测功能是多么的强大。

相关文章
|
12天前
|
安全 网络安全 数据安全/隐私保护
网络堡垒的构建者:洞悉网络安全与信息安全的深层策略
【4月更文挑战第9天】在数字化时代,数据成为了新的价值核心。然而,随之而来的是日益复杂的网络安全威胁。从漏洞利用到信息泄露,从服务中断到身份盗用,攻击手段不断演变。本文深入剖析了网络安全的关键组成部分:识别和防范安全漏洞、加密技术的应用以及提升个体和企业的安全意识。通过探讨这些领域的最佳实践和最新动态,旨在为读者提供一套全面的策略工具箱,以强化他们在数字世界的防御能力。
|
13天前
|
Linux 编译器 开发者
Linux设备树解析:桥接硬件与操作系统的关键架构
在探索Linux的庞大和复杂世界时🌌,我们经常会遇到许多关键概念和工具🛠️,它们使得Linux成为了一个强大和灵活的操作系统💪。其中,"设备树"(Device Tree)是一个不可或缺的部分🌲,尤其是在嵌入式系统🖥️和多平台硬件支持方面🔌。让我们深入了解Linux设备树是什么,它的起源,以及为什么Linux需要它🌳。
Linux设备树解析:桥接硬件与操作系统的关键架构
|
25天前
|
网络协议 安全 Linux
linux系统安全及应用——端口扫描
linux系统安全及应用——端口扫描
36 0
|
29天前
|
存储 安全 网络安全
云计算与网络安全:构建数字化时代的坚固防线
在当今数字化时代,云计算和网络安全已经成为企业和个人信息安全的重要保障。本文探讨了云服务、网络安全以及信息安全等技术领域的相关议题,旨在帮助读者深入了解这些关键领域的发展和挑战,以构建更加坚固的数字化防线。
12 2
|
28天前
|
SQL 安全 网络安全
网络堡垒的构建者:深入网络安全与信息安全的核心
在数字化时代,每一次点击、每一条信息的传递都可能成为安全威胁的载体。本文将探讨网络安全漏洞的本质,加密技术的进展以及提升个人和企业的安全意识的重要性。我们将深入分析如何通过技术手段和教育措施,构筑起防御网络攻击的坚固防线,确保信息传输的安全性和隐私保护。
|
2天前
|
存储 安全 网络安全
构筑安全之盾:云计算环境下的网络安全与信息保护策略
【4月更文挑战第19天】随着云计算技术的飞速发展,企业和个人越来越依赖于云服务来存储、处理和交换数据。然而,这种便利性背后隐藏着潜在的安全风险。本文深入探讨了在云计算背景下,如何通过综合性的安全措施和策略来强化网络安全防护,确保数据的完整性、可用性和机密性。我们将分析当前面临的主要安全挑战,并基于最新的技术进展提出相应的解决方案,以期达到有效防御外部威胁和内部漏洞的目的。
12 4
|
2天前
|
运维 监控 安全
等保合规:保护企业网络安全的必要性与优势
等保,全称为“信息安全等级保护”,是国家强制性标准,要求特定行业和企业通过安全评估确保网络安全。等保涉及物理安全(如门禁、人员管理、设备保护等)、网络安全、主机安全、应用与数据安全、制度与人员安全、系统建设管理及系统运维管理等七个方面,确保信息系统的安全和可靠性。企业进行等保合规是为了满足《网络安全法》等法律法规要求,防止网络数据泄露,避免罚款。等保工作包括定级备案、安全测评、建设整改等,企业需建立良好的安全保护生态,确保网络安全。通过等保,企业能构建有效的安全保障体系,防御系统入侵,保障用户信息,提升故障修复效率,并符合法律义务。
|
2天前
|
存储 安全 网络安全
构建坚固的防线:云计算环境下的网络安全策略
【4月更文挑战第19天】 随着企业纷纷迁移至云平台,云计算已成为现代信息技术架构的核心。然而,数据存储与处理的云端化也带来了前所未有的安全挑战。本文深入探讨了在复杂多变的云环境中,如何实施有效的网络安全措施,确保信息安全和业务连续性。通过分析云服务模型、网络威胁以及加密技术,提出了一系列切实可行的安全策略,旨在帮助组织构建一个既灵活又强大的防御体系。
12 1
|
2天前
|
监控 安全 算法
数字堡垒的构建者:网络安全与信息保护的现代策略
【4月更文挑战第19天】在信息化快速发展的今天,网络安全和信息安全已成为维护社会稳定、保障个人隐私和企业商业秘密的关键。本文将深入探讨网络安全漏洞的成因、加密技术的进展以及提升安全意识的重要性,旨在为读者提供一套综合性的网络防护策略,以应对日益猖獗的网络威胁。
7 1
|
2天前
|
人工智能 监控 安全
构筑安全之盾:云计算环境下的网络安全策略与实践
【4月更文挑战第19天】 在数字化转型的浪潮中,云计算已成为企业IT架构的核心组成部分。然而,随着云服务使用的普及化,网络安全问题亦变得日益复杂和挑战性。本文将深入探讨如何在云计算环境中实施有效的网络安全策略,保障数据的安全性和完整性。我们将从云服务模型出发,分析不同服务模型下的安全威胁,并提出相应的防护措施。文章还将讨论信息安全管理的最佳实践,包括加密技术、身份验证、访问控制以及安全监控等方面,旨在为企业提供一套全面的云计算安全防护框架。