资源描述
VASD,产品培训,协议分析工具使用培训,增值业务产品线,北京神州数码思特奇信息技术股份有限公司,2008,年,01,月,16,日,VASD,产品培训,Ethereal,协议分析系统介绍,Ethereal,软件下载与安装手册,Ethereal,使用入门,使用,Ethereal,分析协议数据包,linux,下的网络分析,Tcpdump,的使用,系统介绍,Ethereal,是一个开放源码的网络分析系统,也是是目前最好的开放源码的网络协议分析器,支持,Linux,和,windows,平台。,Ethereal,起初由,Gerald Combs,开发,随后由一个松散的,Etheral,团队组织进行维护开发。它目前所提供的强大的协议分析功能完全可以媲美商业的网络分析系统,网络分析系统首先依赖于一套捕捉网络数据包的函数库。这套函数库工作在在网络分析系统模块的最底层。作用是从网卡取得数据包或者根据过滤规则取出数据包的子集,再转交给上层分析模块。从协议上说,这套函数库将一个数据包从链路层接收,至少将其还原至传输层以上,以供上层分析。,系统介绍,在,Linux,系统中,,1992,年,Lawrence Berkeley Lab,的,Steven,McCanne,和,Van Jacobson,提出了包过滤器的一种的实现,,BPF,(,BSD Packet Filter,)。,Libpcap,是一个基于,BPF,的开放源码的捕包函数库。现有的大部分,Linux,捕包系统都是基于这套函数库或者是在它基础上做一些针对性的改进。,在,window,系统中,意大利人,Fulvio,Risso,和,Loris,Degioanni,提出并实现了,Winpcap,函数库,作者称之为,NPF,。由于,NPF,的主要思想就是来源于,BPF,,它的设计目标就是为,windows,系统提供一个功能强大的开发式数据包捕获平台,希望在,Linux,系统中的网络分析工具经过简单编译以后也可以移植到,windows,中,因此这两种捕包架构是非常现实的。就实现来说提供的函数调用接口也是一致的。,Ethereal,协议分析系统介绍,Ethereal,软件下载与安装手册,Ethereal,使用入门,使用,Ethereal,分析协议数据包,linux,下的网络分析,Tcpdump,的使用,Ethereal,网址,:http:/,www.,ethereal,.com,/,到,Ethereal,的站站后,点击,download,,接着选择要安装的系统平台,如,Windows,或,Linux,,然后点击下载链接即可进行下载,(,例如,Mainsite,或,Mirrorsite),。,Ethereal,的安装非常简单,只要执行,ethereal,-setup-,x.y.z.exe,即可。,勾选,Install,Winpcap,3.1 beta 4,WinPcap,是,libpcap,library,的,Windows,版本。,Ethereal,可透过,WinPcap,来劫取网络上的数据包。,Install,WinPcap,,因此在安装,Ethereal,的过程中也会一并安装,WinPcap,,不需要再另外安装。,Ethereal,的基本操作,欲劫获网络上的数据包,只要指定网卡,(NetworkInterfaceCad),,接着按,Capture,即可。,下图为,Ethera,截取数据包的页面。由上而下分別是功能表栏、工具栏截取数据包的列表以及封包的详细资料,最下面则是封包的內容,这时是以,16,进制及,ASCII,编码的方式来表示。,其中在封包列表这部份,最前面的编号代表收到封包的次序,其次是时间、来源地址、目的地址,最后则是,协议,的名称以及关于此封包的摘要信息。另外,如果觉得截获的的封包数量太多的話,在抓取封包之前,可用,Capture Filter,的功能,选择想要过滤的,协议,即可。,若是想将截获到的数据包列表资料储存起来,可以执行,FileSave,或,Save As,将资料储存起来,存储对话框如下图所示:,Ethereal,协议分析系统介绍,Ethereal,软件下载与安装手册,Ethereal,使用入门,使用,Ethereal,分析协议数据包,linux,下的网络分析,Tcpdump,的使用,启动,ethereal,以后,选择菜单,Capature,-Start,,就,OK,了。当你不想抓的时候,按一下,stop,,抓的包就会显示在面板中,并且已经分析好了。,下面是一个截图:,ethereal,使用,capture,选项,nterface,:,指定在哪个接口(网卡)上抓包。一般情况下都是单网卡,所以使用缺省的就可以了,Limit each packet:,限制每个包的大小,缺省情况不限制。,Capture packets in promiscuous mode:,是否打开混杂模式。如果打开,抓取所有的数据包。一般情况下只需要监听本机收到或者发出的包,因此应该关闭这个选项。,Filter,:过滤器。只抓取满足过滤规则的包(可暂时略过),File,:如果需要将抓到的包写到文件中,在这里输入文件名称。,use ring buffer,:是否使用循环缓冲。缺省情况下不使用,即一直抓包。注意,循环缓冲只有在写文件的时候才有效。如果使用了循环缓冲,还需要设置文件的数目,文件多大时回卷。其他的项选择缺省的就可以了。,ethereal,的抓包过滤器,抓包过滤器用来抓取感兴趣的包,用在抓包过程中。抓包过滤器使用的是,libcap,过滤器语言,在,tcpdump,的手册中有详细的解释,基本结构是:,not primitive,and|or,not primitive.,个人观点,如果你想抓取某些特定的数据包时,可以有以下两种方法,你可以任选一种,个人比较偏好第二种方式:,1,、在抓包的时候,就先定义好抓包过滤器,这样结果就是只抓到你设定好的那些类型的数 据包;,2,、先不管三七二十一,把本机收到或者发出的包一股脑的抓下来,然后使用下节介绍的显 示过滤器,只让,Ethereal,显示那些你想要的那些类型的数据包;,etheral,的显示过滤器,在抓包完成以后,显示过滤器可以用来找到你感兴趣的包,可以根据,1),协议,2),是否存在某个域,3),域值,4),域值之间的比较来查找你感兴趣的包。,举个例子,如果你只想查看使用,tcp,协议的包,在,ethereal,窗口的左下角的,Filter,中输入,tcp,,然后回车,,ethereal,就会只显示,tcp,协议的包。如下图所示:,GDB,使用,值比较表达式可以使用下面的操作符来构造显示过滤器自然语言类,c,表示,:,举例,eq,=,ip.addr,=10.1.10.20,ne,!=,ip.addr,!=10.1.10.20,gt,frame.pkt_len,10,lt,frame.pkt_len,=,frame.pkt_len,=10 le=,frame.pkt_len,Preference 3),单击,Protocols,前面的,+,号,展开,Protocols 4),找到,Q931,,并单击,5),确保,Desegment,.TCP segments,是选中的(即方框被按下去),6),单击,TCP 7),确保,Allow.TCP streams,是选中的,8),确保没有选中,Check.TCP checksum,和,Use.sequence numbers 9),单击,TPKT 10),确保,Desegment,.TCP segments,是选中的,11),点击,Save,,然后点击,Apply,,然后点击,OK,你也完全可以不断地重新安装新版本,winpcap,和,ethreal,,这样就可以不需在旧的,ethreal,的版本中安装新的插件来支持新的协议插件。这也是懒人的一种做法,Ethereal,协议分析系统介绍,Ethereal,软件下载与安装手册,Ethereal,使用入门,使用,Ethereal,分析协议数据包,linux,下的网络分析,Tcpdump,的使用,Ethereal,分析,数据包,Ethereal,和其它的图形化嗅探器使用基本类似的界面,整个窗口被分成三个部分:最上面为数据包列表,用来显示截获的每个数据包的总结性信息;中间为,协议,树,用来显示选定的数据包所属的,协议,信息;最下边是以十六进制形式表示的数据包内容,用来显示数据包在物理层上传输时的最终形式。,使用,Ethereal,可以很方便地对截获的数据包进行,分析,,包括该数据包的源地址、目的地址、所属,协议,等。,图,4,是在,Ethereal,中对一个,HTTP,数据包进行,分析,时的情形。,在图,3,最上边的数据包列表中,显示了被截获的数据包的基本信息。从图中可以看出,当前选中数据包的源地址是,10.1.197.162,,目的地址为,61.135.150.65,,该数据包所属的,协议,是超文本传输,协议,(HTTP),。更详细的信息表明该数据包中含有一个,HTTP,的,GET,命令,要求下载,starrtlog.js,文件到客户端的,Web,浏览器。,图,4,中间是,协议,树,通过,协议,树可以得到被截获的数据包的更多信息,如主机的,MAC,地址,(,Ethernet,II),、,IP,地址,(InternetProtocol),、,TCP,端口号,(TransmissionControlProtocol),,以及,HTTP,协议,的具体内容,(Hypertext,Trnasfer,Protocol),。通过扩展,协议,树中的相应节点,可以得到该数据包中携带的更详尽的信息。,图,4,最下边是以十六制显示的数据包的具体内容,这是被截获的数据包在物理媒体上传输时的最终形式,当在,协议,树中选中某行时,与其对应的十六进制代码同样会被选中,这样就可以很方便地对各种,协议,的数据包进行,分析,。,Ethereal,提供的图形化用户界面非常友好,,管理,员可以很方便地查看到每个数据包的详细信息,,协议,树及其对应的十六进制表示对,分析,每个数据包的目的很有帮助,综合使用,Ethereal,和,Tcpdump,能够基本满足网络,管理,员在,Linux,系统上的所有嗅探要示。,Ethereal,协议分析系统介绍,Ethereal,软件下载与安装手册,Ethereal,使用入门,使用,Ethereal,分析协议数据包,linux,下的网络分析,Tcpdump,的使用,网络数据采集分析工具,TcpDump,的安装,在,linux,下,tcpdump,的安装十分简单,一般由两种安装方式。一种是以,rpm,包的形式来进行安装。另外一种是以源程序的形式安装。,tcpdump,采用命令行方式,它的命令格式为:,tcpdump,-,adeflnNOpqStvx,-c,数量,-F,文件名,-i,网络接口,-r,文件名,-s,snaplen,-T,类型,-w,文件名,表达式,(1).,tcpdump,的选项介绍,-a,将网络地址和广播地址转变成名字;,-d,将匹配信息包的代码以人们能够理解的汇编格式给出;,-,dd,将匹配信息包的代码以,c,语言程序段的格式给出;,-,ddd,将匹配信息包的代码以十进制的形式给出;,-e,在输出行打印出数据链路层的头部信息;,-f,将外部的,Internet,地址以数字的形式打印出来;,-l,使标准输出变为缓冲行形式;,-n,不把网络地址转换成名字;,-t,在输出的每一行不打印时间戳;,-v,输出一个稍微详细的信息,例如在,ip,包中可以包括,ttl,和服务类型的信息;,-vv,输出详细的报文信息;,-c,在收到指定的包的数目后,,tcpdump,就会停止;,-F,从指定的文件中读取表达式,忽略其它的表达式;,-i,指定监听的网络接口;,-r,从指定的文件中读取包,(,这些包一般通过,-w,选项产生,),;,-w,直接将包写入文件中,并不分析和打印出来
展开阅读全文