Linux系统巧用NMAP来收集主机信息(1)


NMAP自从在红帽Linux中出现后,就迅速流传开来,成为Linux网络工程师与系统管理员不可缺少的工具之一。通过这个工具可以用来判断网络布局、主机打开的端口与服务等等。而这些信息的话对于管理员提高系统的安全性又具有至关重要的作用。NMAP为建立使用安全服务和停运不被使用能够服务的政策奠定了良好的基础。

如上图就是NMAP运行的命令结果。他可以通过对特定主机进行扫描,以发现其所采用的操作系统、所打开的端口与采用的服务等等。不过SMAP是在shell下运行的一个命令其没有直观的界面。为此对于不少Linux系统管理员来说这是一个难以跨越的障碍。我刚开始的时候也特别不习惯,很羡慕Windows下面的一些局域网扫描工具,如流光扫描等等。这些工具都提供了友好的图形化操作界面。不过后来我用惯了这个命令之后,反而离不开这个NMAP命令了。因为经过多次使用,我发现了很多其他扫描工具难以实现的功能。只要灵活使用这个命令,相比其他扫描工具来说,系统管理员会有更大的收获。废话就不说了,我转入正题,谈谈如何巧用NMAP来收集局域网中的主机信息。

一、扫描一批主机。

若你正在负责你们公司局域网的安全,那么就需要知道企业局域网中哪些主机开启了不需要的服务与端口。这会为局域网的安全埋下安全隐患。为此就需要对局域网的主机进行扫描,以收集开发的端口与启用的服务信息。

NMAP命令就可以实现这个目的。因为NMAP命令支持CIDR风格的地址。如系统管理员可以采用192.168.0.0/24的形式来表示一串IP地址。这是一种通过子网掩码来表示IP地址串的一种方法。但是很显然,CIDR命名方法虽然比较简单但是不够灵活。如现在企业中192.168.0.4是一台文件服务器。在扫描的时候,系统管理员不希望NMAP命令扫描这台主机,以免信息外漏给攻击者提供方便。为此在实际工作中对局域网主机进行扫描的时侯,往往需要过滤某些特定的主机。另外也不希望对192.168.0.0等特殊的地址进行扫描,因为这些是广播地址,不对标特定的主机。现在市面上的扫描软件基本上都支持CIDR风格的IP地址。但是NMAP却可以把某些特定的IP地址过滤掉,或者只收集一些特定IP地址主机的信息。

如NMAP命令后面可以利用逗号来分隔多个IP地址,还可以通过范围列表来选定特定IP地址的主机。不过当需要扫描的主机比较多时,通过手工输入的方式将会很麻烦。而NMAP命令最值得我推荐的就是可以从一个列表中制定需要扫描的IP地址信息。也就是说,系统管理员可以预先把需要收集信息的主机的IP地址保存在一个文件中。然后让NMAP命令从这个文件中读取IP地址信息。这即省去了输入的麻烦,提高了工作效率;而且这个文件还可以重复使用。如利用“nmap –iL 文件名”的方式即可。我现在在企业中是利用DHCP服务器来管理IP地址的。IP地址分配即有动态的、又有静态的。我会定期对局域网内的主机进行扫描,以防止用户打开了不安全的端口。在扫描的时候如果主机比较多,需要花费比较多的时间。为此我是采用循环扫描的方式,如一次扫描50台主机等等,一个月刚好循环一次。为了达到这个目的,我就从DHCP服务器中导出了所有在用的IP地址列表,然后制作成一个文本文件。注意NMAP命令不支持EXCEL格式的文件,所以需要把这个列表转换成文本格式的文件。然后我就可以利用“nmap –iL 文件名”命令来扫描文件中规定IP地址的主机,收集有用的信息,以保障局域网内主机的安全。


相关内容