频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

借助sniffer诊断Linux网络故障(一) (1)

来源:开放系统世界 作者: 出处:巧巧读书 2007-10-28 进入讨论组
嗅探器(sniffer)在网络安全领域是一把双刃剑,一方面常被黑客作为网络攻击工具,从而造成密码被盗、敏感数据被窃等安全事件;另一方面又在协助网络管理员监测网络状况、诊断网络故障、排除网络隐患等方面有着不可替代的作用。嗅探器是企业必不可少的网络管理工具
本文以Linux平台下三个常用的网络嗅探器Tcpdump、Ethereal和EtherApe为例,介绍如何借助sniffer来诊断网络故障,从而保障网络高效安全地运行。

简介

嗅探器(sniffer)又称为包嗅探器,是用来截获计算机网络通信数据的软件或硬件。与电话电路不同,计算机网络是共享通信通道的,从而意味着每台计算机都可能接收到发送给其它计算机的信息,捕获在网络中传输的数据信息通常被称为监听(sniffing)。嗅探器常常作为一种收集网络中特定数据的有效方法,是利用计算机的网络接口截获目的地为其它计算机数据报文的一种工具。

嗅探器工作在网络环境中的底层,可以拦截所有正在网络上传送的数据,从而成为网络安全的一个巨大威胁。通过对网络进行嗅探,一些恶意用户能够很容易地窃取到绝密文档和敏感数据,因此嗅探器经常被黑客当作网络攻击的一种基本手段。

任何工具都有弊有利,嗅探器既可以作为黑客获得非法数据的手段,但同时对网络管理员来讲又是致关重要的。通过嗅探器,管理员可以诊断出网络中大量的不可见模糊问题。这些问题通常会涉及到多台计算机之间的异常通信,而且可能会牵涉到多种通信协议。借助嗅探器,管理员还可以很方便地确定出哪些通信量属于某个特定的网络协议、占主要通信量的主机是哪台、各次通讯的目标是哪台主机、报文发送占用多少时间、各主机间报文传递的间隔时间等。这些信息为管理员判断网络问题及优化网络性能,提供了十分宝贵的信息。

作为一种发展比较成熟的技术,嗅探器在协助监测网络数据传输、排除网络故障等方面有着不可替代的作用,倍受网络管理员的青睐。可以通过分析网络流量来确定网络上存在的各种问题,如瓶颈效应或性能下降;也可以用来判断是否有黑客正在攻击网络系统。如果怀疑网络正在遭受攻击,通过嗅探器截获的数据包可以确定正在攻击系统的是什么类型的数据包,以及它们的源头,从而可以及时地做出响应,或者对网络进行相应的调整,以保证网络运行的效率和安全。

网络管理员在检测网络故障及维护网络正常通信的过程中,经常需要借助嗅探器提供的某些功能。一般的嗅探器都提供以下一些功能:

1. 自动从网络中过滤及转换有用的信息;

2. 将截获的数据包转换成易于识别的格式;

3. 对网络环境中的通讯失败进行分析;

4. 探测网络环境下的通讯瓶颈;

5. 检测是否有黑客正在攻击网络系统,以阻止其入侵;

6. 记录网络通信过程。

本文介绍如何在Linux平台下利用嗅探器来截获在网络中传递的数据信息,从而检测出是否存在网络瓶颈,以及可能存在的网络故障。在Linux平台下可用的嗅探器非常多,各自的功能和长处也不尽相同,本文主要以Tcpdump、Ethereal和EtherApe三种嗅探器为例,讲述如何利用各自的优点来对Linux网络的性能和故障进行系统的分析和检测。

◆ Tcpdump

Tcpdump是一个命令行方式的网络流量监测工具。它诞生的时间较早,是许多图形化嗅探器的雏形。

◆ Ethereal

Ethereal是一个图形化的网络流量监测工具,比命令行方式的Tcpdump友好很多,可以实时地观看捕获过程。

◆ EtherApe

EtherApe也是一个图形化的网络流量监测工具。与Ethereal不同,EtherApe可以通过对主机间的连接进行检测,图形化地显示网络活动,因而能更加直观地显示出整个网络所处的状态。

sniffer工作原理

在基于TCP/IP协议局域网中,当数据由应用层自上而下传递时,首先在网络层形成IP数据包,然后再向下到达数据链路层,由数据链路层将IP数据包分割为数据帧,加上以太网包头后向下发送到物理媒体上。以太网包头中包含着本地主机和目标主机的MAC地址,位于链路层的数据帧是依靠48位的MAC地址而非IP地址来寻址的,网络接口卡的驱动程序不会关心IP数据包的目的IP地址。它所需要的仅仅是数据包中的MAC地址。

当局域网内的主机都通过集线器(HUB)等方式连接时,一般采用的是共享式的连接。这种共享式的连接有一个很明显的特点:发送数据时物理上采用的是广播方式。当一台主机向另一台主机发送数据时,共享式的HUB会将接收到的所有数据向HUB上的每个端口转发。也就是说,当主机根据MAC地址发送数据包时,尽管发送端主机告知目标主机的地址,但并不意味着一个网络内的其它主机不能监听到发送端和接收端之间传递的数据。因此从理论上说,当采用共享式连接时,位于同一网段的每台主机都可以截获在网络中传输的所有数据。

正常情况下,局域网内同一网段的所有网卡虽然都具有访问在物理媒体上传输的所有数据的能力,但通常一个网卡只响应以下两种数据帧:

◆ 数据帧的目标MAC地址与网卡自身的MAC地址一致;

◆ 数据帧的目标MAC地址为广播地址

只有当接收到上面两种类型的数据帧时,网卡才会通过CPU产生一个硬件中断,然后再由操作系统负责处理该中断,对帧中所包含的数据做进一步处理。也就是说,虽然网络上所有主机都可以“监听”到所有的数据,但对不属于自己的报文不予响应,只是简单地忽略掉这些数据。

但是,如果网络中的某台主机不愿意忽略掉不属于自己的数据帧,只需将网卡设置为混杂(Promiscuous)模式,对接收到的每一个帧都产生一个硬件中断,以提醒操作系统处理经过该网卡的每一个数据包,这样网卡就可以捕获网络上所有的数据了。如果一台主机的网卡被配置为混杂模式,那么该主机及其相关的软件就构成了一个嗅探器。

嗅探器工作在网络环境中的底层,它会拦截所有正在网络上传送的数据,通过借助相应的软件进行处理。嗅探器可以实时分析这些数据的内容,进而可以帮助网络管理员分析整个网络的状态、性能或故障。正因如此,在检测网络故障时,嗅探器对管理员来说是一种不可或缺的强力工具。 转载保留:http://www.qqread.com/linux/2007/10/h362890.html 更多文章 更多内容请看Sniffer安全技术专题网络管理实用手册Linux频道专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章