快速业务通道

Linux下抓包工具tcpdump应用详解

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-23
nd src host 192.168.0.1

  只过滤源主机192.168.0.1的所有udp报头.

  数据显示/输入输出

  TcpDump提供了足够的参数来让我们选择如何处理得到的数据,如下所示:

  -l 可以将数据重定向.

  如tcpdump -l >tcpcap.txt将得到的数据存入tcpcap.txt文件中.

  -n 不进行IP地址到主机名的转换.

  如果不使用这一项,当系统中存在某一主机的主机名时,TcpDump会把IP地址转换为主机名显示,就像这样:eth0 < ntc9.1165> router.domain.net.telnet,使用-n后变成了:eth0 < 192.168.0.9.1165 > 192.168.0.1.telnet.

  -nn 不进行端口名称的转换.

  上面这条信息使用-nn后就变成了:eth0 < ntc9.1165 > router.domain.net.23.

  -N 不打印出默认的域名.

  还是这条信息-N 后就是:eth0 < ntc9.1165 > router.telnet.

  -O 不进行匹配代码的优化.

  -t 不打印UNIX时间戳,也就是不显示时间.

  -tt 打印原始的、未格式化过的时间.

  -v 详细的输出,也就比普通的多了个TTL和服务类型.

  [expression]的用法:

  expression是tcpdump最为有用的高级用法,可以利用它来匹配一些特殊的包.下面介绍一下expression的用法,主要是如何写出符合要求最为严格expression.如果tcpdump中没有expression,那么tcpdump会把网卡上的所有数据包输出,否则会将被expression匹配的包输出.

Empire CMS,phome.net

  expression 由一个或多个[primitives]组成,而[primitives]由一个或多个[qualitifer]加一个id(name)或数字组成,它们的结构如用正则表达式则可表示为:

  expression = ([qualitifer] (id|number))

  依次看来,expression是一个复杂的条件表达式,其中[qualitifer] (id|number)就是一个比较基本条件,qualitifer就表达一些的名称(项,变量),id或number则表示一个值(或常量).

  qualitifer共有三种,分别是:

  type 表示id name或number涉及到的类型,这些词有host, nest, port ,portrange等等.

  例子:

  host foo 此为一个简单的primitive,host为qualitifer, foo为id name

  net 128.3 net为qualitifer, 128.3为number

  port 20

  等等

  每个privimtive有一个type词,如果表达式中没有,则默认是host.

  dir 指定数据传输的方向,这些词有src, dst, src or dst, src and dst

  例子:

  dst net 128.3 ;此为一个相对复杂的primitive,结构为dir type number,表示目标网络为128.3的条件.

  src or dst port ftp-data 此为比上一个相对简的结构,src or dst表示源或目标,ftp-data为id,表示ftp协议中数据传输端口,故整体表示源或目标端口ftp-data的数据包即匹配.

  如果在一个primitive中没有dir词,此默认为src or dst. 如 host foo则表示源或目标主机为foo的数据包都匹配.

  proto 此种词是用来匹配某种特定协议的,这些词包括:ether, fddi, tr, wlan, ip, ip6, arp, rarp, decnet,tcp和udp.其实这些词经常用来匹配某种协议,是使用率最高的一组词了.

  上面三种qualitifer和id name或number组成一个primitive通常是下面这种方式的:

  proto dir type id(number) ,即primitive=proto dir type (id | number)

  如:

  tcp src port 80

  ip dst host 192.168.1.1

  如果出现type的话,一定会出现id或num

  如果出现dir,那么也会出现type,如果不出现,默认为host

  而proto可单独出现,如 tcpdump ''tcp''

  通过上面介绍的三种qualitifer,我们很快就可以写出一个primitive,下面我就只用一个primitive作为expression匹配数据包.

Empire CMS,phome.net

  (1)匹配ether包

  匹配特定mac地址的数据包.

  

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号