对于网络、系统管理或安全技术人员来说,在对网络进行管理和维护的过程中,总会遇到这样或那样的问题。例如,网络传输性能为什么突然降低?为什么网页打不开,但QQ却能上线?为什么某些主机突然掉线?诸如此类的网络问题一个又一个地不断出现,都需要我们快速有效地去解决,以便能够尽量减少由于网络问题对正常业务造成的影响。因此,我们就需要一引起工具来帮助我们快速有效地找出造成上述这些问题的原因。
网络嗅探器就是这样的一种网络工具,通过对所有的网络数据包,或者对进出某台工作站的数据包进行分析,就可以迅速地找到各种网络问题的原因所在,因而也就深受广大网络管理员和安全技术人员的喜爱。
可是,我们也应该知道是通过地址表来决定将数据包转发到哪个端口的。原则上来讲,简单通过物理方式将网络嗅探器接入到交换机端口,然后将嗅探器的卡设为混杂模式,依然只能捕捉到进出网络嗅探器本身的数据包。这也就是说,在交换机构建的网络环境中,网络嗅探器不使用特殊的方式是不能分析其它主机或整个局域网中的数据包的。但是,现在的企业都是通过交换机来构建局域网,那么,如果我们要想在这样的网络环境中使用网络嗅探器来解决网络问题,就必需考虑如何将网络嗅探器接入到目标位置,才能让网络嗅探器捕捉到网络中某台主机或整个网段的网络流量。
就目前来说,对于在交换机构建的网络环境中使用网络嗅探器,可以通过利用可网管交换机的端口汇聚功能、通过接入集成器或Cable TAP接线盒及选择具有特殊功能的网络嗅探软件这3种方法来进行。这3种可行的方式分别针对不同的交换机应用环境来使用的,本文下面就针对目前主流的几种交换机网络环境,来详细说明这3种接入方式的具体应用。
通过可网管交换机端口汇聚功能来达到目的
现在一些可网管式交换机,一般都有一种叫做端口汇聚(port spanning)的功能,并且带有一个可以用来实现这种功能的端口。使用交换机的端口镜像功能时,就允许我们将交换机中其它端口上的流量镜像到这个特殊的端口当中。这样,只要将网络嗅探器连接到这个端口上,然后将嗅探器的网络接口卡设为混杂模式,就可以嗅探到所有由交换转发的数据包。
要想使用交换机的端口汇聚功能,在使用前必需对交换机进行相应的设置。设置的方法得根据交换机可以使用的配置功能来进行,有些交换机可以通过终端方式来进行,也可以通过WEB方式更加直观地设置交换机的端口汇聚功能,还可以通过远程登录的方式进行设置。为了保障交换机的安全,最好使用本地登录方式的终端管理模式和本地WEB管理模式。图1.1就是通过端口汇聚功能接入网络嗅探器的拓扑图。
图1.1 通过端口汇聚方式接入网络嗅探器的拓扑图
现在,在一些中小型的企业当中,由于网络规模不大,或者为了节省IT成本,只使用了一些非网管的交换机来构建局域网。对于非网管型的交换机,我们就不可能再使用端口汇聚功能来接入网络嗅探器了。那么,对于这种交换机构建的网络环境,我们又该使用什么样的方法来达到嗅探网络中的所有网流数量,或者只嗅探进出某台工作站之中的网络流量的目的呢?
就目前来说,在这样的交换机网络环境中可以使用下面所示的两种方法来实现:
第一种方法就是通过在交换机上再接入一个小型(HUB),然后将嗅探
器和被嗅探的所有主机都连接到这个集线器中。这样,就使被嗅探的网络变成了共享式的以太网,在这个重新构建的共享式局域网中的所有数据包,将会以广播的方式发送到集线器的所有端口。如此一来,只需要将网络嗅探器的以太网网卡置于混杂模式,就可以嗅探到这个共享式局域网中传输的所有数据包。
但是,使用这种方式有它一定的局限性的。一方面,将一个关键的网络段连接到集线器上,由于所有的工作站都是共享集线器的带宽的,接入的工作站过多就会影响到它们的网络性能。另一方面,如果在构建局域网时没有考虑到网络嗅探器的使用,也就不可能在一开始就连入了集线器。因而在局域网运行过程中再将集线器接入到交换机上时,就不得不中断网络,以及将它从交换机中退出时,也会中断一次网络。因此,这种接入网络嗅探器的方式只有当出现了某种严重的网络问题,需要用网络嗅探器来分析解决时才能使用。图2.1就是通过集线器连入网络嗅探器的拓扑图。
图2.1 通过集线器的方式连入网络嗅探器的拓扑图
第二种方法就是通过在交换机上接入一个Cable TAP接线盒,然后将网络嗅探
器和所有需要被管理的工作站或连接到Cable TAP接线盒上,由于它也是一种共享式网络连接设备,因而也就可以嗅探到使用它构建的整个局域网中传输的所有数据包了。
只不过Cable TAP接线盒的收发方式是独立进行的,因而它的带宽可以与交换机相似,但在使用时应用两根网线来分别连接它的收与发接口到交换机的独立端口中。Cable TAP可以作为一种固定的设备,永久地连入到网络结构当中而不影响网络的传输性能,因而可以在一开始的时候就可以将它加入到网络结构当中,以便在后续的网络管理过程中可以使用它。
现在,已经有很多网络生产商生产Cable TAP接线盒,主要目的也是为了跟一些网络协议分析设备一起使用,以便网络分析设备可以监控和分析整个交换机网络环境中所有网络流量。例如福禄克网络公司就生产这样的在线式TAP连接设备。图2.2就是通过Cable TAP接线盒方式连入网络嗅探器的拓扑图。
图2.2 通过Cable TAP接线盒方式连入网络嗅探器的拓扑图
使用Cable TAP接线盒解决了了使用时的网络传输性能的问题,但是,却没有使用集线器这种方式的灵活。在一个允许中断正常业务的网络问题解决过程中,可以使用集线器随意在需要分析网络流量的位置进行网络嗅探工作,然后在解决网络问题之后,重新恢复网络的原有结构。
如果在一个非网管的网络环境中,坚决不可以中断企业业务及改变网络原有结构的方式来使用网络嗅探器,或者就算允许使用集线器,但是在使用时手上没有这样的网络设备。此时,我们又该如何将网络嗅探器接入到目标交换机网络,达到嗅探进出某台工作站或整个中所有网络流量的目的呢?在这种情形之下,我们就可以选择一些具有特殊功能的网络嗅探器来完成任务。
现在,有一些网络嗅探器软件具有在交换机网络环境中嗅探数据包功能,例如DSniff和Ettercap。使用这样的网络嗅探器软件就能够在不需要特殊设备的情况下,就可以得到局域网中进出某台主机的所有数据包。
实际上,这些可以在交换机网络环境中使用的网络嗅探软件,都是使用一些网络攻击手段来达到在交换网络环境中得到数据包的目的。下面就是这些软件可能会使用到的攻击方式:
1、交换机地址表溢出(Switch Flooding)
交换机通过维护一张地址表来将数据包正确地转发到指定的端口。当使用大量的假冒MAC地址填满交换机的地址空间时,交换机就会像一台普通的HUB一样,将所有多出来的通信广播到整个局域网当中的所有计算机当中。这样一来,当我们先通过网络嗅探器使用一些无用的MAC地址将交换机的MAC地址表填满后,就可以让交换机将所有数据包以广播的方式转发到整个局域网。此时,只需要将网络嗅探器的以太网网卡设为混杂模式,就可以嗅探到整个交换机网络环境中的所有数据包了。Dsniff软件包中的macof 就是用来实施交换机MAC地址表溢出攻击的。
现在,这个问题在许多大型交换机当中已经不存在了。这些交换使用了一种方式来限制其MAC地址表会被填满,并且使用了一种方式,当其MAC地址表容量到某种程度后就会关闭广播通信功能,或者关闭某些端口。
2、重定向(ARP Redirects)
当一台计算需要另一台计算机的MAC地址时,它就会向对方发送一个ARP地址请求。每台计算机都会维护一张包含与它会话过的所有计算机的MAC地址的ARP表。只是,这些ARP表会在某段时间刷新一次,将一些超时的ARP项删除。在交换机环境中也是被广播,这是由于这个ARP协议包中没有具体接收对象的MAC地址。当局域网中的某台工作站发送出一个ARP请求时,同一网段中的所有计算机都可以接收到,然后每台计算按ARP中提供的IP地址查找自己的ARP地址表,如果找到相对应的,就给那台主机发送一个确认的ARP协议,此数据包中包含它的MAC地址。
因此,网络嗅探器就可以利用交换机的这个特性,使用ARP协议欺骗交换机达到可以嗅探某台工作站或所有网络流量的目的。例如,网络嗅探器通过发送一个定制的ARP协议包,在其中申请它是事个网段的,当所有计算机收到这个ARP包时,就会更新它们的ARP表,这样,所有的计算机都会将数据包发送到这台嗅探器。如此一来,为了不影响正常的网络业务,所有的网络流量都会通过网络嗅探器再次转发,这就要求网络嗅探器的网络性能要能保证数据包的正常转发。
有时,我们也可以只针对某台计算机进行ARP地址欺骗,告诉这台计算机网络嗅探器就是路由器,以此让这台计算机将数据包发给网络嗅探器进行转发。这样也就可以嗅探到交换机环境中任何一台想要嗅探的计算机发送出来的数据包了。但是,要注意的是ARP欺骗应该在同一个子网中进行,不然会收到错误的信息。
3、ICMP重定向(ICMP Redirect)
在一些网络环境中,有时候连接到同一台交换机上的所有计算机虽然在物理上处于同一个网段,但是,它们在逻辑上却是处于不同的网段,也就是我们所说的存在不同的子网。例如,192.168.0 .0/24这个网段,就可以分为192.168.1.0/24,182.168.2.0/24…等子网。而且,还可以通过子网掩码来将同一个子网再划分为几个逻辑网段。
这样,就算在同一交换机网络环境中,一个子网中的计算机A要想与另一个子网中的计算机B进行会话,也得通过路由器来进行。当路由器在收到这样的数据包时,它心里明白这两台计算机接在同一台交换机中,它就会发送一个ICMP重定向数据包给计算机A,让它知道它可以直接将数据包发送到B。利用这种方式就可以发送一个伪装的ICMP数据给计算机A,让它将数据包发送到网络嗅探器了。
4、ICMP路由公告(ICMP Router Advertisements)
ICMP路由公告用来告诉计算机哪台路由器可以使用。我们就可以先通过这种方式宣告网络嗅探器就是路由器,这样,所有的计算机就会将其数据包发送给网络嗅探器,然后再由它进行重新转发。
5、MAC地址欺骗(MAC Address Spoofing)
网络嗅探器软件还可以通过MAC地址欺骗方式来冒充不同的计算机。网络嗅探器将包含欺骗的MAC地址的数据包发给交换机,这样就可以欺骗交换机认为它就是这个数据包的真正源地址,然后交换机就会将这个MAC地址保存到其地址表中,接着就会将所有发给真实MAC地址计算机的数据包全部转发给网络嗅探器。
但是,这种方式的前提就是要真正接收数据包的计算机不能运行,如果不这样的话,真实的计算机也会发送相关的包给交换机,交换机又会将其MAC地址表从新刷新。
在系统中,要进行MAC地址欺骗是很容易的,可以通过下列的方式来进行:
Ifdown eth0
Ifconfig eth0 hw ether 00:00:ff:ee:09:00:00
Ifup eth0
这样,就用一个欺骗的MAC地址绑定到了这块网卡当中,然后通过下列命令来通告网络中的所有计算机,让它们刷新其ARP地址表:
Ping –t 192.168.1.255
这样所有的计算机都会收到这个广播Ping命令,然后将它们的ARP地址表刷新,这个ARP地址表中的MAC地址与IP地址的对应就是网络嗅探器的IP地址。这样一来,网络嗅探器就可以得到所有发送给受害计算机的数据包了。
但是有些交换机有一种应对MAC地址欺骗攻击的方式,就是将连接到某个端口上的计算机的MAC地址与具体的端口号绑定。还有一些交换机能够自动锁定第一次到达某个端口上的MAC地址,然后通过一种具体的方式来平衡管理进行具体的物理访问控制。对于这样的交换机必需在解除这些保护功能后才能实施MAC地址欺骗攻击方式的网络嗅探。
实际上,上述这几种网络攻击方式也是攻击者经常用来攻击某个目标网络的手段,因而我们在使用时应当得到了企业领导的许可,并且在不影响正常业务的情况下才能进行。
总的来说,通过本文所述的这3种主要方法,在交换机网络环境中应用网络嗅探器来分析网络故障还是非常用效的。实际上,如果我们只想了解局域网中某台计算机上的网络连接情况,完全可以直接在此计算机系统上安装相应的网络嗅探器的方式来解决。本文的目的只想让大家对在交换机环境中如何接入网络嗅探器有一个全面的了解。只有了解了在交换机网络结构中接入网络嗅探器的方式,我们才能知道在具体的交换机网络中如何去应用它来解决各种网络问题。