版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嗅探器(sniffer)在网络安全领域是一把双刃剑,一方面常被黑客作为网络攻击工具,从而造成密码被盗、敏感数据被窃等安全事件;另一方面又在协助网络管理员监测网络状况、诊断网络故障、排除网络隐患等方面有着不可替代的作用。嗅探器是企业必不可少的网络管理工具。本文以Linux平台下三个常用的网络嗅探器Tcpdump、Ethereal和EtherApe为例,介绍如何借助sniffer来诊断网络故障,从而保障网络高效安全地运行。 简介 嗅探器(sniffer)又称为包嗅探器,是用来截获计算机网络通信数据的软件或硬件。与电话电路不同,计算机网络是共享通信通道的,从而意味着每台计算机都可能接收到发送给其它计
2、算机的信息,捕获在网络中传输的数据信息通常被称为监听(sniffing)。嗅探器常常作为一种收集网络中特定数据的有效方法,是利用计算机的网络接口截获目的地为其它计算机数据报文的一种工具。 嗅探器工作在网络环境中的底层,可以拦截所有正在网络上传送的数据,从而成为网络安全的一个巨大威胁。通过对网络进行嗅探,一些恶意用户能够很容易地窃取到绝密文档和敏感数据,因此嗅探器经常被黑客当作网络攻击的一种基本手段。 任何工具都有弊有利,嗅探器既可以作为黑客获得非法数据的手段,但同时对网络管理员来讲又是致关重要的。通过嗅探器,管理员可以诊断出网络中大量的不可见模糊问题。这些问题通常会涉及到多台计算机之间的异常通
3、信,而且可能会牵涉到多种通信协议。借助嗅探器,管理员还可以很方便地确定出哪些通信量属于某个特定的网络协议、占主要通信量的主机是哪台、各次通讯的目标是哪台主机、报文发送占用多少时间、各主机间报文传递的间隔时间等。这些信息为管理员判断网络问题及优化网络性能,提供了十分宝贵的信息。 作为一种发展比较成熟的技术,嗅探器在协助监测网络数据传输、排除网络故障等方面有着不可替代的作用,倍受网络管理员的青睐。可以通过分析网络流量来确定网络上存在的各种问题,如瓶颈效应或性能下降;也可以用来判断是否有黑客正在攻击网络系统。如果怀疑网络正在遭受攻击,通过嗅探器截获的数据包可以确定正在攻击系统的是什么类型的数据包,以
4、及它们的源头,从而可以及时地做出响应,或者对网络进行相应的调整,以保证网络运行的效率和安全。 网络管理员在检测网络故障及维护网络正常通信的过程中,经常需要借助嗅探器提供的某些功能。一般的嗅探器都提供以下一些功能: 1. 自动从网络中过滤及转换有用的信息; 2. 将截获的数据包转换成易于识别的格式; 3. 对网络环境中的通讯失败进行分析; 4. 探测网络环境下的通讯瓶颈; 5. 检测是否有黑客正在攻击网络系统,以阻止其入侵; 6. 记录网络通信过程。 本文介绍如何在Linux平台下利用嗅探器来截获在网络中传递的数据信息,从而检测出是否存在网络瓶颈,以及可能存在的网络故障。在Linux平台下可用的
5、嗅探器非常多,各自的功能和长处也不尽相同,本文主要以Tcpdump、Ethereal和EtherApe三种嗅探器为例,讲述如何利用各自的优点来对Linux网络的性能和故障进行系统的分析和检测。 Tcpdump Tcpdump是一个命令行方式的网络流量监测工具。它诞生的时间较早,是许多图形化嗅探器的雏形。 Ethereal Ethereal是一个图形化的网络流量监测工具,比命令行方式的Tcpdump友好很多,可以实时地观看捕获过程。 EtherApe EtherApe也是一个图形化的网络流量监测工具。与Ethereal不同,EtherApe可以通过对主机间的连接进行检测,图形化地显示网络活动,因
6、而能更加直观地显示出整个网络所处的状态。 sniffer工作原理 在基于TCP/IP协议的局域网中,当数据由应用层自上而下传递时,首先在网络层形成IP数据包,然后再向下到达数据链路层,由数据链路层将IP数据包分割为数据帧,加上以太网包头后向下发送到物理媒体上。以太网包头中包含着本地主机和目标主机的MAC地址,位于链路层的数据帧是依靠48位的MAC地址而非IP地址来寻址的,网络接口卡的驱动程序不会关心IP数据包的目的IP地址。它所需要的仅仅是数据包中的MAC地址。 当局域网内的主机都通过集线器(HUB)等方式连接时,一般采用的是共享式的连接。这种共享式的连接有一个很明显的特点:发送数据时物理上采
7、用的是广播方式。当一台主机向另一台主机发送数据时,共享式的HUB会将接收到的所有数据向HUB上的每个端口转发。也就是说,当主机根据MAC地址发送数据包时,尽管发送端主机告知目标主机的地址,但并不意味着一个网络内的其它主机不能监听到发送端和接收端之间传递的数据。因此从理论上说,当采用共享式连接时,位于同一网段的每台主机都可以截获在网络中传输的所有数据。 正常情况下,局域网内同一网段的所有网卡虽然都具有访问在物理媒体上传输的所有数据的能力,但通常一个网卡只响应以下两种数据帧: 数据帧的目标MAC地址与网卡自身的MAC地址一致; 数据帧的目标MAC地址为广播地址。 只有当接收到上面两种类型的数据帧时
8、,网卡才会通过CPU产生一个硬件中断,然后再由操作系统负责处理该中断,对帧中所包含的数据做进一步处理。也就是说,虽然网络上所有主机都可以“监听”到所有的数据,但对不属于自己的报文不予响应,只是简单地忽略掉这些数据。 但是,如果网络中的某台主机不愿意忽略掉不属于自己的数据帧,只需将网卡设置为混杂(Promiscuous)模式,对接收到的每一个帧都产生一个硬件中断,以提醒操作系统处理经过该网卡的每一个数据包,这样网卡就可以捕获网络上所有的数据了。如果一台主机的网卡被配置为混杂模式,那么该主机及其相关的软件就构成了一个嗅探器。 嗅探器工作在网络环境中的底层,它会拦截所有正在网络上传送的数据,通过借助
9、相应的软件进行处理。嗅探器可以实时分析这些数据的内容,进而可以帮助网络管理员分析整个网络的状态、性能或故障。正因如此,在检测网络故障时,嗅探器对管理员来说是一种不可或缺的强力工具。 用Tcpdump过滤数据包 对于网络管理人员来说,使用嗅探器可以随时掌握网络的实际情况,在网络性能急剧下降的时候,可以通过嗅探器来分析原因,找出造成网络阻塞的根源。Tcpdump就是Linux平台下一个以命令行方式运行的网络流量监测工具。它能截获网卡上收到的数据包,并能够协助网络管理员对其中的内容进行相应的分析。 嗅探器能够截获指定接口或所有接口的数据包,这取决于如何对嗅探器进行配置。缺省情况下嗅探器一
10、般会显示所有从网络上截获的数据包,但通常会因为数据量过大而使网络管理员理不清头绪。因此,嗅探器一般都提供有相应的机制来对截获的数据包进行过滤,从而只显示符合特定要求的数据包。Tcpdump提供了一整套完善的规则来对截获的数据包进行过滤,由于大多数图形化的嗅探器都使用类似的过滤机制,因此对Linux网络管理员来说,了解如何使用Tcpdump来捕获感兴趣的数据包是一项必须掌握的基本功。 Tcpdump的安装 为例,讲述如何安装Tcpdump,此处使用的操作系统是Red Hat 8.0。 首先下载最新的源码包,并将其解压缩,命令如下: # cp tcpdump-在编译Tcpdump之前,应先确定pc
11、ap库(libpcap)已经安装完毕。这个库是编译Tcpdump时所必需的。如果该库已经安装,就可以执行下面的命令来编译并安装Tcpdump: # cd tcpdump-# ./configure# make# make install Tcpdump的命令行选项 Tcpdump是一个命令行方式的网络嗅探器。它通过使用命令选项来过滤网卡截获的数据包,如果不进行过滤,过多数量的包会使网络管理员很难理清头绪。Tcpdump的命令格式如下: tcpdump -adeflnNOpqRStuvxX -c 数量 -C 文件尺寸 -F 文件名 -i 网络接口 -m 文件名 -r 文件名 -s 长度
12、 -T 类型 -w 文件名 -E algo:secret 表达式 表1 Tcpdump常用命令行选项 a将网络地址和广播地址转变成容易识别的名字-d将已截获的数据包的代码以人容易理解的格式输出;-dd将已截获的数据包的代码以C程序的格式输出;-ddd将已截获的数据包的代码以十进制格式输出;-e输出数据链路层的头部信息;-f将internet地址以数字形式输出;-l将标准输出变为行缓冲方式;-n不将网络地址转换成易识别的主机名,只以数字形式列出主机地址(如IP地址),这样可以避免DNS查询;-t不输出时间戳;-v输出较详细的信息,例如IP包中的TTL和服务类型信息;-vv输出详尽的报
13、文信息;-c在捕获指定个数的数据包后退出;-F从指定的文件中读取过滤规则,忽略命令行中指定的其它过滤规则;-i指定监听的网络接口;-r从指定的文件中读取数据包(该文件一般通过-w选项产生);-w将截获的数据包直接写入指定的文件中,不对其进行分析和输出;-T将截获的数据包直接解释为指定类型的报文,目前支持的类型有cnfp、rpc、rtp、snmp、vat和wb。表1给出了一些常用的Tcpdump命令行选项,使用这些选项可以过滤出真正感兴趣的数据包。 使用Tcpdump的命令行选项可以很方便地过滤出需要的数据包。例如,要过滤掉所有除ARP请求和应答的通信数据,可以输入“tcpdump arp”命令
14、。该命令只对ARP的请求和应答信息进行截获,在Tcpdump的输出信息中,请求是“arp who-has”这样的条目,而应答则是“arp reply”这样的条目,如图1所示。 图1 ARP过滤如果要做更多的处理,比如从指定的网络接口截获5个ARP数据包,并且不将网络地址转换成主机名,则可以用命令“tcpdump arp -i eth0 -c 5 -n”。 Tcpdump的过滤表达式 Tcpdump的过滤表达式是一个正则表达式,Tcpdump利用其作为过滤数据包的条件。如果一个数据包满足表达式的条件,则这个数据据包将会被捕获;如果不指定表达式,则在网络上任何两台主机间的所有数据包都将被截获。过滤
15、表达式的作用就是使Tcpdump只输出网络管理员所需要的数据,如一个指定的网络接口和特定主机间的IP数据包。 Tcpdump的过滤表达式中一般有如下几种类型的关键字: 类型关键字 方向关键字 协议关键字 这类关键字用于指定要截获的数据包所属的协议,包括ether、fddi、tr、ip、ip6、arp、rarp、decnet、tcp和udp等关键字。关键字fddi指明在FDDI(分布式光纤数据接口网络)上的特定网络协议。实际上它是ether的别名。fddi和ether具有类似的源地址和目标地址,所以可以将fddi协议包当作ether的包进行分析和处理。其它几个关键字只是指定了所要截获的协议数据包
16、。如果没有在表达式中指明协议,则Tcpdump会截获所有协议的数据包。 除了上述三种类型的关键字外,Tcpdump的过滤表达式中还可以指定的一些重要关键字包括gateway、broadcast、multicast、less、greater。这些关键字对于监听网络中的广播和多播很有帮助。关于这些关键字的更多信息和用法请参考Tcpdump的man手册。 在Tcpdump的过滤表达式中,各类关键字之间还可以通过布尔运算符来构成组合表达式,以满足实际运用时的需要。布尔运算符包括取非运算符(not或!)、与运算符(and或&&)、或运算符(or或|),使用布尔运算符可以将表达式组合起来构
17、成强大的组合条件,从而能够对Tcpdump的过滤器做进一步细化。 下面给出几个使用Tcpdump过滤数据包的例子,嗅探器提供的过滤表达式对于管理员监测网络运行状况非常重要: 5. 如果怀疑系统正受到拒绝服务(DoS)攻击,网络管理员可以通过截获发往本机的所有ICMP包,来确定目前是否有大量的ping指令流向服务器,此时就可以使用下面的命令: # tcpdump icmp -n -i eth0 Tcpdump的输出结果 在对网络中的数据包进行过滤后,Tcpdump的输出结果中包含网络管理员关心的网络状态信息。由于Tcpdump只是一个命令行方式的嗅探器,因而其输出结果不是很直观,下面以
18、几种典型的输出信息为例,介绍如何对Tcpdump的输出结果进行分析。 1. 数据链路层头信息 使用“tcpdump -e host tiger”命令截获主机“tiger”所有发出和收到的数据包,并在输出结果中包含数据链路层的头部信息。 “tiger”是一台装有Linux的主机,其MAC地址是00:D0:59:BF:DA:06;“mag”是一台装有SCO Unix的工作站,其MAC地址是08:90:B0:2F:AF:46,上述命令的输出结果如下: 20:15:20.735429 eth0 < 08:90:b0:2f:af:46 00:d0:59:bf:da:06 ip 60: mag.36
19、579 > tiger.ftp 0:0(0) ack 25565 win 8970 (DF) 在输出的信息中,“20:15:20”为截获数据包的时间,“735429”是毫秒数,“eth0 <”表示从网络接口eth0接收该数据包(若为“eth0 >”,则表示从网络接口eth0发送数据包)。“08:90:b0:2f:af:46”是主机mag的MAC地址,指明发送该数据包的源主机为“mag”,“00:d0:59:bf:da:06”是主机tiger的MAC地址,指明该数据包发送的目标主机为“tiger”。“ip”表明该数据包是IP数据包,“60”是数据包的长度,“
20、mag.36579 > tiger.ftp”表明该数据包是从主机“mag”的36579端口发往主机“tiger”的FTP(21)端口。“ack 25565”表示对序列号为25565的包进行确认,“win 8970”则指明发送窗口的大小为8760。 2. ARP包的输出信息 若使用“tcpdump arp -c 2”命令截获ARP数据包,得到的输出结果可能是: 20:42:22.713502 eth0 > arp who-has mag tell tiger (00:d0:59:bf:da:06)20:42:22.713907 eth0 < arp reply mag is-a
21、t 08:90:b0:2f:af:46 (00:d0:59:bf:da:06) 在输出的信息中,“20:42:22”为截获数据包的时间;“713502”和“713907”为毫秒数;“eth0 >”表明从主机发出该数据包;“eth0 <”表明从主机接收该数据包。“arp”表明该数据包是ARP请求,“who-has mag tell tiger”表明是主机“tiger”请求主机“mag”的MAC地址,“00:d0:59:bf:da:06”是主机“tiger”的MAC地址。“reply mag is-at”表明主机“mag”响应“tiger”的ARP请求,“08:90:b0:2f:af:46”是主机“mag”的MAC地址。 3. TCP包的输出信息 用Tcpdump截获的TCP包的一般输出格式如下: src > dst: flags data-sequno ack window urgent options&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《高原疾病防治知识》课件
- 2025年分期付款化妆品购买合同
- 2025年PPP项目合作物资保障协议
- 二零二五年海洋工程建设项目施工合同6篇
- 二零二五年度PVC管材绿色制造技术合作合同3篇
- 2025年度新能源发电项目租赁合同3篇
- 2025版学校图书馆古籍保护与展示工程合同3篇
- 二零二五年度航空航天器研发与测试合同4篇
- 2025年度住宅小区物业管理权转让与社区安全防范协议
- 二零二五年度文化创意产业经营授权协议
- 2024年云南省中考数学试题含答案解析
- 国家中医药管理局发布的406种中医优势病种诊疗方案和临床路径目录
- 2024年全国甲卷高考化学试卷(真题+答案)
- 汽车修理厂管理方案
- 人教版小学数学一年级上册小学生口算天天练
- (正式版)JBT 5300-2024 工业用阀门材料 选用指南
- 三年级数学添括号去括号加减简便计算练习400道及答案
- 苏教版五年级上册数学简便计算300题及答案
- 澳洲牛肉行业分析
- 计算机江苏对口单招文化综合理论试卷
- 成人学士学位英语单词(史上全面)
评论
0/150
提交评论