Linux下抓包工具tcpdump应用详解
包,以缩小目标,才能更好的分析网络中存在的问题.tcpdump使用参数指定要监视数据包的类型、地址、端口等,根据具体的网络问题,充分利用这些过滤规则就能达到迅速定位故障的目的.请使用man tcpdump查看这些过滤规则的具体用法.
显然为了安全起见,不用作网络管理用途的计算机上不应该运行这一类的网络分析软件,为了屏蔽它们,可以屏蔽内核中的bpfilter伪设备.一般情况下网络硬件和TCP/IP堆栈不支持接收或发送与本计算机无关的数据包,为了接收这些数据包,就使用网卡的混杂模式,并绕过标准的TCP/IP堆栈才行.在FreeBSD下,这就需要内核支持伪设备bpfilter.因此,在内核中取消bpfilter支持,就能屏蔽tcpdump之类的网络分析工具.
并且当网卡被设置为混杂模式时,系统会在控制台和日志文件中留下记录,提醒管理员留意这台系统是否被用作攻击同网络的其他计算机的跳板. May 15 16:27:20 host1 /kernel: fxp0: promiscuous mode enabled 虽然网络分析工具能将网络中传送的数据记录下来,但是网络中的数据流量相当大,如何对这些数据进行分析、分类统计、发现并报告错误却是更关键的问题.网络中的数据包属于不同的协议,而不同协议数据包的格式也不同.因此对捕获的数据进行解码,将包中的信息尽可能的展示出来,对于协议分析工具来讲更为重要.昂贵的商业分析工具的优势就在于它们能支持很多种类的应用层协议,而不仅仅只支持tcp、udp等低层协议. 从上面tcpdump的输出可以看出,tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的.显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序进行解码分析.当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘. TCP功能 数据过滤 不带任何参数的TcpDump将搜索系统中所有的网络接口,并显示它截获的所有数据,这些数据对我们不一定全都需要,数据太多不利于分析.,我们应当先想好需要哪些数据,TcpDump提供以下参数供我们选择数据: -b 在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的. 例如:tcpdump -b arp 将只显示网络中的arp即地址转换协议信息. -i 选择过滤的网络接口,如果是作为路由器至少有两个网络接口,通过这个选项,就可以只过滤指定的接口上通过的数据.例如: tcpdump -i eth0 只显示通过eth0接口上的所有报头. src、dst、port、host、net、ether、gateway这几个选项又分别包含src、dst 、port、host、net、ehost等附加选项.他们用来分辨数据包的来源和去向,src host 192.168.0.1指定源主机IP地址是192.168.0.1,dst net 192.168.0.0/24指定目标是网络192.168.0.0.以此类推,host是与其指定主机相关无论它是源还是目的,net是与其指定网络相关的,ether后面跟的不是IP地址而是物理地址,而gateway则用于网关主机.可能有点复杂,看下面例子就知道了:
tcpdump src host 192.168.0.1 and dst net 192.168.0.0/24 过滤的是源主机为192.168.0.1与目的网络为192.168.0.0的报头. tcpdump ether src 00:50:04:BA:9B and dst……
过滤源主机物理地址为XXX的报头(为什么ether src后面没有host或者net?物理地址当然不可能有网络喽). Tcpdump src host 192.168.0.1 and dst port not telnet 过滤源主机192.168.0.1和目的端口不是telnet的报头. ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型. 例如: tcpdump ip src…… 只过滤数据-链路层上的IP报头. tcpdump udp a |
||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |