[CLI]tcpdump过滤小结

来源:互联网 发布:ubuntu安装非自由软件 编辑:程序博客网 时间:2024/05/16 17:15
##tcp过滤速查# tcpdump -i dev [src|dst] [[host x.x.x.x] [port xx] [net x.x.x.x] [tcp|udp|icmp]]

1. 常用在过滤表达式

  • 过滤主机 [ether] [src|dst] host x.x.x.x
  • 过滤端口 [src|dst] port xx
  • 网络过滤 [src|dst] net x.x.x.x
  • 协议过滤 [arp|ip|tcp|udp|icmp]
  • 内容过滤 proto[offset:len]
    过滤表达式可以用逻辑运算符连接,默认使用and连接。

2. 内容过滤

  • proto[offset:len]表示获取proto协议报文offset开始的len字节内容;
  • proto可以是ether,fddi,tr,wlan,ppp,slip,link,ip,arp,rarp,tcp,udp,icmp,ip6,radio;
  • offset,表示偏移位置,默认为起始0;
  • len,表示读取的字节数,默认为1;
  • 可用于proto[offset:len]的比较操作符包括:>,<,>=,<=,=,!=;
    • 设置了ip头部选项 ip[0] & 0x0f > 5
    • 设置DF标志 ip[6] = 64
    • 匹配小 TTL ip[8] < 5
    • 总的ip报文的长度大于 X 字节的包 ip[2:2] > X
    • 源端口大于 1024 的 TCP 数据包 tcp[0:2] > 1024
    • TCP flag,tcp[13]可以使用tcpflags来表示,tcp-fin, tcp-syn, tcp-rst, tcp-push, tcp-push, tcp-ack, tcp-urg也免去了计算实际值的麻烦;
      • SYN报文,tcp[13] = 2
      • SYN, ACK报文, tcp[13] = 18
      • SYN 或者 SYN-ACK报文,tcp[13] & 2 = 2
      • PSH-ACK报文,tcp[13] = 24
      • 包含 FIN 标记报文,tcp[13] & 1 = 1
      • RST报文,tcp[13] & 4 = 4

3.具体报文格式

tcpip

REFERENCE

  • 大棚linux http://roclinux.cn/?p=2511
  • 《cpdump 高级过滤技巧》