路由器专家:创建网络详细清单(二)

日期: 2009-04-26 作者:Michael J. Martin翻译:曾少宁 来源:TechTarget中国 英文

收集网络清单数据   建立清单最有效的方法是一次处理一个IP子网。每个网络都有它本身的逻辑布局,但是每个网络都会使用一个或多个子网。这样IP子网就成为了处理中最小的逻辑单位。如果我们审计我们自己的网络,那么我们并不需要运行vidump.sh,因为我们已经知道了组成我们网络的子网。

然而,如果由于忘记或者并不熟悉正在审计的网络部分,那么我们可以使用vidump.sh命令来从网关设备中获取接口或者VLAN列表。脚本会向设备打开一个SSH会话。接着提示输入密码,然后输出命令将被发送到CLI上,并作为文本文件(用于引用)保存。在一个IOS路由器上,使用的是?Vr命令标记,而在一个IOS交换机上使用的是?……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

收集网络清单数据

  建立清单最有效的方法是一次处理一个IP子网。每个网络都有它本身的逻辑布局,但是每个网络都会使用一个或多个子网。这样IP子网就成为了处理中最小的逻辑单位。如果我们审计我们自己的网络,那么我们并不需要运行vidump.sh,因为我们已经知道了组成我们网络的子网。然而,如果由于忘记或者并不熟悉正在审计的网络部分,那么我们可以使用vidump.sh命令来从网关设备中获取接口或者VLAN列表。脚本会向设备打开一个SSH会话。接着提示输入密码,然后输出命令将被发送到CLI上,并作为文本文件(用于引用)保存。在一个IOS路由器上,使用的是?Vr命令标记,而在一个IOS交换机上使用的是?Vv标记。如果对于语法还有些疑问的话,那么可以运行后面跟着?Vh标记的命令。完整的命令语法看起来是这样的: vidump.sh <username> <host> {-v|-i}。以下是一个CLI执行例子:

Trinity# ./vidump.sh amin out-rs01 -v
amin@out-rs01's password:
Vlan179   172.30.179.3
Vlan168   172.30.168.3
Vlan5   172.30.5.3
Vlan11  172.30.11.3
Vlan168   172.30.169.67
Vlan177 172.30.177.3
Vlan172  172.30.172.3
Vlan164  172.30.164.3
Vlan133  172.30.169.133
Vlan165  172.30.165.3
Vlan169  172.30.169.163
The Report Name is: Vlan-list-out-rs01-10-21-04.txt
Trinity#
 
  一旦我们有了一个子网列表,那么可以选择一个网段,并通过dnsdump.sh脚本来收集DNS记录。和vidump一样,这个脚本打开设备的一个SSH会话。在命令执行之前,将提示我们输入密码。默认情况下,命令将把输出转储到CLI上。使用?Vr标记来将数据保存到一个报告文件中。完整的命令语法看起来是这样的:dnsdump.sh< xxx.xxx.xxx> {-r}.。下面的例子扫描了172.30.100子网并将输出保存到一个报告文件上:

Trinity# ./dnsdump.sh 172.30.100 -r
172.30.100.1   gw.outlan.net
172.30.100.100 yp.outlan.net
172.30.100.14  oscar.outlan.net
172.30.100.15  auth.outlan.net
172.30.100.16  mail.outlan.net
172.30.100.17  home.outlan.net
172.30.100.172 foo.outlan.net
172.30.100.18  kermit.outlan.net
172.30.100.19  bigbird.outlan.net
172.30.100.2   rs01.outlan.net
172.30.100.3   rs02.outlan.net
Report 172.30.5-dnsdump-12-05-04 Complete!
Trinity#

  在收集了DNS信息之后,下一步就是查找IP子网上活跃的主机。这可能看来似乎是非常明显的,但是在使用动态DHCP的IP子网上运行IP主机清单查找所能提供有用信息是微乎其微的。它可以提供一个连接的主机的快照,但是数据的有效时期仅限于主机保持连接和/或连接过期之前。通过将交换机的ARP转储数据与DHCP服务器的租赁表关联到指纹主机,就可能可以“破坏审计”主机,但是这是另外一篇文章的主题了。而现在,我们所能够说的是清单收集必须在IP是静态分配(或者通过DHCP分配)的子网上运行。

  我们的目标是对连接到网络上的服务器的网络服务执行一个审计。通过使用activehosts.sh脚本可以建立一个活跃主机列表。activehosts.sh脚本必须以根用户或者相当于根用户的ID在Unix/Linux系统上运行,因为fping必须以根用户权限来运行。在默认情况下,activehosts.sh命令将命令的输出发送到CLI,并且通过在IP网络范围语句之后加上?{r标记来将它存储在一个报告文件中。完整的命令语法看起来是这样的:activehosts.sh (start IP) < xxx.xxx.xxx.xxx> (end IP) <xxx.xxx.xxx.xxx> {-r}>。下面是一个CLI输出例子:

Trinity # ./activehosts.sh 172.30.100.1 172.30.100.254 -r
172.30.100.1 
172.30.100.100
172.30.100.14
172.30.100.15 
172.30.100.16
172.30.100.18 
172.30.100.17
172.30.100.172
172.30.100.18 
172.30.100.19 
172.30.100.2  
172.30.100.3
172.30.100.31
172.30.100.44
The report name is 172.30.100.1-acthost-out-rs01-11-20-04.txt
Trinity #

  在通过使用activehosts.sh收集CMP之后,我们必须生成另外两个的IP主机报告,一个列出活跃的IP主机,而另一个列出活跃的IP主机以其各自的MAC地址。在大多数情况下,“只”从网关设备中获取的IP提供的信息与根据由activehosts.sh生成的报告的信息是重复的。然而,也会有某些情况下主机可能响应非常缓慢或者根本不响应ICMP请求,因为主机已经过滤了或者失效ICMP了。但IP网关ARP表并不会受到这些弊端的影响,因为IP分段上任何在或不在这个网段的传输数据的主机都必须在交换机/路由器的ARP表上有一个有效的MAC条目

  arpextract.sh脚本可以将它的输出定向到CLI或者一个报告文件上。与其它的脚本不同的是,它可以通过提供IP前缀或者跟在报告标记后的VLAN ID,或者去掉整个IP或ARP表,或者仅去掉一个特定IP子网或者VLAN的ARP信息。为了完成我们的主机清单的数据收集,我们必须为目标IP子网同时收集IP和ARP数据。为了生成IP表,我们使用?Vi标记来将输出发送到CLI,或者使用?Vir标记来将输出发送到CLI和一个报告文件中。为了生成ARP表,我们使用?Va标记来将输出发送到CLI,或者使用?Var标记来将输出发送到CLI和一个报告文件中。

  所有输出选项的默认值是生成一个报告来列出ARP表中的每个条目。这个清单可能相当的大,特别是当连接因特网主机的流量通过时,因为路由器/交换机在它转发因特网流量时为每一个因特网IP地址指派网关的MAC地址。为了报告文件更容易管理,我们可以根据IP子网前缀或者跟在报告标记后的VLAN ID来指定搜索。完整命令语法看起来是这样的: arpextract.sh <username> <host> {-a|-ar|-i|-ir} <string>。下面是一个在有效IP主机上执行收集数据的例子:

Trinity # ./arpextract.sh admn outlan-rs01 -ir 172.30.100
admn@outlan-rs01's password:
Connection to outland-rs01 closed by remote host.
Collection Complete.
Formatting Data...
Active IP Host Table for 172.30.100 on outlan-rs01 Completed...
172.30.100.1 
172.30.100.100
172.30.100.14
172.30.100.15 
172.30.100.16
172.30.100.18 
172.30.100.17
172.30.100.172
172.30.100.18 
172.30.100.19 
172.30.100.2  
172.30.100.3
172.30.100.31
172.30.100.44
Report Saved as 172.30.100-IPdump-outlan-rs01-12-05-04.txt
Trinity #

  这是一个使用VLAN ID作为搜索字符串的在相同子网的一个APR表报告的输出:

Trinity # ./arpextract.sh admn outlan-rs01 ?Var Vlan5
admn@outlan-rs01's password:
Connection to outland-rs01 closed by remote host.
Collection Complete.
Formatting Data...
ARP Table for Vlan5 on outlan-rs01 Completed...
172.30.100.1     0000.0c07.ac05 
172.30.100.100   0004.ac5e.4810
172.30.100.14    000b.cd83.53f6 
172.30.100.15    0008.02a1.4d80 
172.30.100.16    0050.8b2c.f25e 
172.30.100.17    0002.a528.b2b3 
172.30.100.172   0008.c7f4.4655 
172.30.100.18    000b.cd50.786a 
172.30.100.19    0008.c72a.c8fb 
172.30.100.2     0001.812b.fe08 
172.30.100.3     0005.5fe7.0800

Report Saved as Vlan5-ARPdump-outlan-rs01-12-05-04.txt Created arpresolv.txt for ARP-Lookup.pl
Trinity#

  OUI翻译报告必须最后运行。这里涉及到两个脚本,ouiresolv.pl和ouilookup.sh。而且,这两个脚本的操作原理都是相同的。它们读取arpresolv.txt的内容。它们解析地址的OUI部分同时通过使用 curl 程序在http://standards.ieee.org/cgi-bin/ouisearch网站进行搜索。ouiresolv.pl生成了下面的CLI输出:

Trinity $ perl ouiresolv.pl
looking up OIDs.
172.30.100.4 -> Nortel Networks
172.30.100.19 -> COMPAQ COMPUTER CORPORATION
172.30.100.2 -> Nortel Networks
172.30.100.15 -> Compaq Computer Corporation
172.30.100.1 -> CISCO SYSTEMS, INC.
172.30.100.18 -> Unknown OUI
172.30.100.14 -> Unknown OUI
172.30.100.172 -> COMPAQ COMPUTER CORPORATION
172.30.100.16 -> COMPAQ COMPUTER CORPORATION
172.30.100.5 -> DITECH CORPORATION
172.30.100.83 -> COMPAQ COMPUTER CORPORATION
172.30.100.85 -> COMPAQ COMPUTER CORPORATION
172.30.100.3 -> Cisco Systems, Inc.
172.30.100.100 -> IBM CORP.
172.30.100.17 -> Compaq Computer Corporation
Trinity $


  ouilookup.sh脚本运行了ouiresolv.pl并格式化了输出,同时将它发送到CLI和存储到名为oui-join.txt的文件上。oui-join.txt文件数据是与其它报告数据合并以便完成网络详细清单报告的数据集中的一种。下面是ouilookup.sh脚本的输出例子:

Trinity: $ ./ouilookup.sh
172.30.100.1     CISCO SYSTEMS,
172.30.100.100   IBM CORP.
172.30.100.14    Unknown OUI
172.30.100.15    Compaq Computer
172.30.100.16    COMPAQ COMPUTER
172.30.100.17    Compaq Computer
172.30.100.172   COMPAQ COMPUTER
172.30.100.18    Unknown OUI
172.30.100.19    COMPAQ COMPUTER
172.30.100.2     Nortel Networks
172.30.100.3     Cisco Systems,
172.30.100.4     Nortel Networks
172.30.100.5     DITECH CORPORATION
172.30.100.83    COMPAQ COMPUTER
172.30.100.85    COMPAQ COMPUTER
Trinity: $


  一旦我们收集了所有的数据,创建该报告就很简单了。在此,我们应该有与下面列出的文件相似的一组文件:

Trinity$ ls
172.30.100-IPdump-fny-rs01-12-05-04.txt Vlan-list-outlan-rs01-12-05-04.txt
172.30.100-dnsdump-12-05-04.txt          Vlan5-ARPdump-outlan-rs01-12-08-04.txt
172.30.100.1-acthost-12-05-04.txt        oui-join.txt
IPdump-fny-rs01-12-07-04
Trinity$

  既然我们已经收集了所有主机验证数据,那么我们准备好了交叉引用数据集,以及建立网络详细清单报告。我们将在接下来的文章中探讨这个主题。

  关于整个审计过程的更多信息,可以参考《为什么需要网络审计服务》。

作者

Michael J. Martin
Michael J. Martin

Michael J. Martin作为网络和Unix信息管理员已经在信息技术领域工作了17多年。他早期在研究和ISP方面进行的设计、实现和支持MIS基础架构的经历,为他当前在大型因特网和安全架构的工作上提供了独特的视角。作为一个网络架构师,他已经为多家公司设计过高速、高可用的LAN/WAN网络,如ANS/AOL、Philips和Edgix Corporation等,它也给许多业务和区域ISP提供网络顾问服务。Michael也撰写了很多关于网络和安全问题的文章。

翻译

曾少宁
曾少宁

TechTarget中国特约技术编辑,某高校计算机科学专业教师和网络实验室负责人,曾任职某网络国际厂商,关注数据中心、开发运维、数据库及软件开发技术。有多本关于思科数据中心和虚拟化技术的译著,如《思科绿色数据中心建设与管理》和《基于IP的能源管理》等。

相关推荐