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

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

  在开始网络服务审计之前,必须创建网络详细清单。该清单包括收集所有网络节点的主机身份信息,如IP地址、网络界面硬件(NIC)地址和DNS条目。在大多数环境中,某些信息是现有的,并且往往会有些错误。在大多数情况下,NIC信息和MAC地址将不被记录。

  即使我们已经获得了信息,但是将创建详细清单和验证这些信息作为审计的第一步也是一个不错的做法。这样,我们就可以完全了解网络环境,同时,它还能有助于发现必须清除的不一致性。本文中所涉及的方法是假设我们对正在审计的网络有管理访问权限。所提供的开源脚本在Unix/Linux、Apple OS X和 Windows环境的Cygwin上运行,同时可以在基于……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

  在开始网络服务审计之前,必须创建网络详细清单。该清单包括收集所有网络节点的主机身份信息,如IP地址、网络界面硬件(NIC)地址和DNS条目。在大多数环境中,某些信息是现有的,并且往往会有些错误。在大多数情况下,NIC信息和MAC地址将不被记录。

  即使我们已经获得了信息,但是将创建详细清单和验证这些信息作为审计的第一步也是一个不错的做法。这样,我们就可以完全了解网络环境,同时,它还能有助于发现必须清除的不一致性。本文中所涉及的方法是假设我们对正在审计的网络有管理访问权限。所提供的开源脚本在Unix/Linux、Apple OS X和 Windows环境的Cygwin上运行,同时可以在基于IOS的交换机和支持SSH或者RCMD访问的路由器上运行。

  收集详细清单属性

  在我们开始这个收集过程之前,有必要先阐述一下我们对IP、MAC和DNS信息感兴趣的原因所在。当处理连接到网络用户和管理员的节点时,一般情况下,我们要么使用主机IP地址要么使用DNS来建立通信和交换数据。这些身份验证方法都是友好用户并且易于管理的。它们经常指派一个人名(和号码)来帮助我们实现与这些非人类机器的交互。这两种方案是在70年代后期设计的,当时串行终端设备是计算机交互的主要手段,而原ARPANET主机表还是一个电邮文件。

  这两种方法的动态属性,即分配和实现,使它们可以灵活地同时支持全局和私有操作模式。然而,这种动态的属性也恰恰制造了安全性麻烦。因为指派过程是动态和可转移的,因此,不同的物理主机可以假装指派相同的“网络身份”。大多数基于网络的攻击都是利用了IP和DNS的不可验证性。分布式拒绝服务(DDOS)攻击可以使合法的主机失效,并且允许攻击者伪装被攻击者的IP标识。ID钓鱼邮件可以使用伪URL来将没有戒心的用户重定向到假的网站上,从而获取个人身份和金融帐户信息。

  只有NIC MAC地址是唯一的,因为它们是与主机的NIC相关的,而非主机本身。目前大多数的工作站和服务器都有内置的网络接口,这样, MAC地址就是一种非常理想的用于跟踪和访问控制(通过二层过滤和/或静态DHCP)的网络参数。这并不是说使用MAC地址就是万无一失的;如果攻击者进入了本地网络,他就可能进行ARP/MAC欺骗。同时,如果服务器由于失效而被替代,那么它的MAC信息也将改变。因此,如果没有很好的跟踪方法,跟踪(和控制访问使用)MAC、IP和DNS属性是验证和确保网络连续性的最好的方法之一。

  主机验证信息来源和方法


  首先,打开电子表格、记事本或者任何用于文档化网络节点的工具。我们将把这些信息作为控制数据。从验证的角度来看,一个理想的审计环境是:我们正在验证我们已经确信是已存在的东西。如果这个数据并不是已经存在的,那么第一个审计将作为与以后的审计对比的基线。

  正如我们前面所探讨的,主机详细清单收集三种数据:IP地址、MAC地址和DNS条目。在清单的最后,我们必须有一个清单数据集,它看起来是这样的:

172.30.100.1     0000.0c07.ac05  CISCO SYSTEMS,   gw.outlan.net     
172.30.100.100   0004.ac5e.4810  IBM CORP.        yp.outlan.net         
172.30.100.14    000b.cd83.53f6  Unknown OUI      oscar.outlan.net   
172.30.100.15    0008.02a1.4d80  Compaq Computer  auth.outlan.net   
172.30.100.16    0050.8b2c.f25e  COMPAQ COMPUTER  mail.outlan.net  
172.30.100.17    0002.a528.b2b3  Compaq Computer  home.outlan.net   
172.30.100.172   0008.c7f4.4655  COMPAQ COMPUTER  foo.outlan.net    
172.30.100.18    000b.cd50.786a  Unknown OUI      kermit.outlan.net 
172.30.100.19    0008.c72a.c8fb  COMPAQ COMPUTER  bigbird.outlan.net
172.30.100.2     0001.812b.fe08  Nortel Networks  rs01.outlan.net   
172.30.100.3     0005.5fe7.0800  Cisco Systems,   rs02.outlan.net   

  必须为网络的每个分段创建诸如这样的表。目前,我们已经探讨了4种属性的其中3种。第三个字段中的数据是每个MAC地址的机构的唯一识别符(OUI)。每个以太网MAC地址的前24字节是硬件制造商的OUI,它是由IEEE所指派的。制造商使用OUI以及一个唯一的24字节值来为每个网络接口创建唯一的MAC地址。

  我们知道网络节点的OUI能够协助跟踪和故障修复行为不当的主机。在网络化的前期,NIC是一个添加到计算机的附加组件,它要求跟踪MAC地址并将MAC地址与跟踪主机相关联。目前,大多数的硬件制造商提供一个或多个网卡,因此,在大多数情况下,解析主机MAC OUI也就是识别连接到网络的硬件类型,以及操作系统类型。

  一旦完成了清单,就可以收集和比较后续的清单了,这样,我们就可以很容易地发现变化和错误以便我们调查和改正它们。所有这样的数据都可以在网络上收集到;并不需要访问节点。清单的数据是通过从网络交换机和路由器ARP和接口表、DNS Zone Dump和ICMP PING扫描来收集的。ARP和ICMP扫描能提供有效IP主机的信息。DNS Zone和接口表提供管理域上关于IP网络的信息,以及主机名信息。每个数据源都提供一种信息,同时,它们还提供可以与其它的资源作比较的冗余信息,以便确保正确性和发现不一致性。

  工具

  运行下面的脚本,我们的计算机必须支持Perl、SED、awk、sh、sort、date、diff和grep。同时,我们还将需要下载和编译domainscan和 fping。(Fping是ping的替代,它支持大量扫描和输出选项,因此对于依赖ICMP修复故障的管理员来说,它是一个强大的工具。)脚本作为程序封装使用,它可以提取和格式化清单数据从而使它更容易访问。下面是关于每个脚本的概述,阐述了它们所依赖的程序和它们的功能:

  vidump.sh——这个Bourne Shell脚本使用SSH来获取一组路由器的物理接口或者交换机的VLAN接口。它建立了一组连接到路由器或者交换机的IP网络,从而可以用来确定哪些网络我们必须审计。同时,它还有助于识别哪些设备可以运行ARP Dump。

  arpextract.sh——这个Bourne Shell脚本同样使用SSH来获取IP地址或者基于IOS路由器或者交换机上的IP地址和ARP表。ARP表必须从直接连接到网络分段的设备上获取,这样,我们就可以从中收集到ARP信息(理想状态下是分段的默认网关)。否则,我们所查询的IP地址的ARP终端条目将导致路由器或者交换机使用的物理接口来访问目标主机。

  dnsdump.sh——这是一个Bourne Shell脚本,它调用域扫描来在C类网络上执行DNS查找。它格式化用于与其它工具比较的和数据合并的输出。为了达到更好的效果,使用网络分段的根DNS服务器和次DNS服务器来运行dnsdump.sh和比较结果。如果我们可以公共访问的主机,那么我们将想要将我们的DNS根条目与其它公共的DNS服务器作比较以便确保数据是一致的。

  activehosts.sh——这是另外一个Bourne Shell脚本,它调用fping来对IP地址范围执行ICMP ping扫描。正常情况下,我们将在有255个IP地址或者稍微少些的C类网络上使用它。更大范围的扫描也是可以运行的,但是数据将变得较难管理些。和dnsdump.sh一样,fping命令的输出是经过格式化来与其它的脚本一起使用的。

  ouiresolv.pl——这是一个Perl脚本,它处理48位以太网MAC地址的OUI部分。这个ouiresolv.pl脚本从arpresolv.txt文件上获得输入。这个文件是当运行arpextract.sh带有将输出保存为一个文件的选项来生成一个ARP表Dump时生成的。

  ouilookup.sh——这是一个ouiresolv.pl Perl脚本的Bourne Shell封装脚本。它格式化了ouiresolv.pl输出以便合并来自其它脚本的报告数据。

作者

Michael J. Martin
Michael J. Martin

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

翻译

曾少宁
曾少宁

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

相关推荐