快捷搜索:   nginx

Tcpdump 过滤数据包实例

  笔者维护的一台邮件服务器,发现老是有人上来连接25端口,用了几种软件,如iptraf及wireshark,etherape发现效果均不理想,还是 Tcpdump更直观方便,如 tcp port 25 and host 211.147.1.11 > awstat.txt,即可生成一份详细的连接报告。感觉还是很实用的,下面举出例子说明下它的使用方法。tcpdump语法较繁琐,建议直接以掌握其用法;如果是要给同事演示抓包话,还是wireshark直观的 好。

◆想要截获所有210.27.48.1的收到的和发出的所有的数据包:
tcpdump host 210.27.48.1
◆想要截获主机210.27.48.1和主机210.27.48.2或210.27.48.3的通信,使用命令(在命令行中使用括号时,一定要转义
tcpdump host 210.27.48.1 and \(210.27.48.2 or 210.27.48.3 \)
◆如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:
tcpdump ip host 210.27.48.1 and !210.27.48.2
◆如果想要获取主机210.27.48.1接收或发出的smtp包,使用如下命令:
tcpdump tcp port 25 and host 210.27.48.1
◆如果怀疑系统正受到拒绝服务(Dos)攻击,网络管理员可以通过截获发往本机的所有ICMP包,来确实目前是否有大量的ping指令流向服务器,此时可 用如下指令:
tcpmdump icmp -n -i eth0  

tcpdump 的输出结果介绍
---------------------------------------------
下面我们介绍几种典型的tcpdump命令的输出信息
(1)数据链路层头信息
使用命令#tcpdump --e host ice
ice是一台装有linux的主机,她的MAC地址是0:90:27:58:AF:1A
H219是一台装有SOLARIC的SUN工作站,它的MAC地址是8:0:20:79:5B:46;上一条命令的输出结果如下所示:
21:50:12.847509 eth0 < 8:0:20:79:5b:46 0:90:27:58:af:1a ip 60: h219.33357 > ice. telnet 0:0(0) ack 22535 win 8760 (DF)
分析:21:50:12是显示的时间, 847509是ID号,eth0 <表示从网络接口eth0接受该数据包,eth0 >表示从网络接口设备发送数据包, 8:0:20:79:5b:46是主机H219的MAC地址,它表明是从源地址H219发来的数据包. 0:90:27:58:af:1a 是主机ICE的MAC地址,表示该数据包的目的地址是ICE . ip是表明该数据包是IP数据包,60是数据包的长度, h219.33357 > ice. telnet表明该数据包是从主机H219的33357端口发往主机ICE的TELNET(23)端口. ack 22535表明对序列号是222535的包进行响应. win 8760表明发送窗口的大小是8760.

(2)ARP包的TCPDUMP输出信息
使用命令#tcpdump arp
得到的输出结果是:
22:32:42.802509 eth0 > arp who-has route tell ice (0:90:27:58:af:1a)
22:32:42.802902 eth0 < arp reply route is-at 0:90:27:12:10:66 (0:90:27:58:af:1a)
分析: 22:32:42是时间戳, 802509是ID号, eth0 >表明从主机发出该数据包, arp表明是ARP请求包, who-has route tell ice表明是主机ICE请求主机ROUTE的MAC地址。 0:90:27:58:af:1a是主机ICE的MAC地址。

(3)TCP包的输出信息
用TCPDUMP捕获的TCP包的一般输出信息是:
src > dst: flags data-seqno ack window urgent options
src > dst:表明从源地址到目的地址, flags是TCP包中的标志信息,S 是SYN标志, F (FIN), P (PUSH) , R (RST) "." (没有标记); data-seqno是数据包中的数据的顺序号, ack是下次期望的顺序号, window是接收缓存的窗口大小, urgent表明数据包中是否有紧急指针.Options是选项.

(4)UDP包的输出信息
用TCPDUMP捕获的UDP包的一般输出信息是:
route.port1 > ice.port2: udp lenth
UDP十分简单,上面的输出行表明从主机ROUTE的port1端口发出的一个UDP数据包到主机ICE的port2端口,类型是UDP, 包的长度是lenth

如果想玩玩tcpdump,可直接用如下命令监控本机的21端口,下面是优化后的 命令,蛮好用的tcpdump -vv -x -X -s 1500 'port 21'

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论