收藏 分享(赏)

TCPDUMP详解(重要).doc

上传人:HR专家 文档编号:7547675 上传时间:2019-05-21 格式:DOC 页数:4 大小:20KB
下载 相关 举报
TCPDUMP详解(重要).doc_第1页
第1页 / 共4页
TCPDUMP详解(重要).doc_第2页
第2页 / 共4页
TCPDUMP详解(重要).doc_第3页
第3页 / 共4页
TCPDUMP详解(重要).doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、1TCPDUMP 详解(重要)TcpDump 可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供 and、or、not 等逻辑语句来帮助你去掉无用的信息。TCPDUMP 简介:在传统的网络分析和测试技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一。sniffer 工具首先是为网络管理员和网络程序员进行网络分析而设计的。对于网络管理人员来说,使用嗅探器可以随时掌握网络的实际情况,在网络性能急剧下降的时候,可以通过 sniffer 工具来分析原因,找出造成网络阻塞的来源。对于网络程序员来说,通过 sniffer 工具来调试程序

2、。用过 windows 平台上的 sniffer 工具(例如,netxray 和 sniffer pro 软件)的朋友可能都知道,在共享式的局域网中,采用 sniffer 工具简直可以对网络中的所有流量一览无余!Sniffer 工具实际上就是一个网络上的抓包工具,同时还可以对抓到的包进行分析。由于在共享式的网络中,信息包是会广播到网络中所有主机的网络接口,只不过在没有使用 sniffer 工具之前,主机的网络设备会判断该信息包是否应该接收,这样它就会抛弃不应该接收的信息包,sniffer 工具却使主机的网络设备接收所有到达的信息包,这样就达到了网络监听的效果。Linux 作为网络服务器,特别是

3、作为路由器和网关时,数据的采集和分析是必不可少的。所以,今天我们就来看看 Linux 中强大的网络数据采集分析工具TcpDump。用简单的话来定义 tcpdump,就是:dump the traffice on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。作为互联网上经典的的系统管理员必备工具,tcpdump 以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的东东之一。顾名思义,TcpDump 可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供 and、or、not 等逻辑

4、语句来帮助你去掉无用的信息。tcpdump 提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump 存在于基本的 FreeBSD 系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备 root 权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。普通情况下,直接启动 tcpdump 将监视第一个网络界面上所有流过的数据包。bash-2.02# tcpdumptcpdump: listening on eth011:58:47.873028 b

5、ios-ns bios-ns: udp 5011:58:47.974331 0:10:7b:8:3a:56 1:80:c2:0:0:0 802.1d ui/C len=430000 0000 0080 0000 1007 cf08 0900 00000e80 0000 902b 4695 0980 8701 0014 0002000f 0000 902b 4695 0008 0011:58:48.373134 0:0:e8:5b:6d:85 Broadcast sap e0 ui/C len=972ffff 0060 0004 ffff ffff ffff ffff ffff0452 ffff

6、 ffff 0000 e85b 6d85 4008 00020640 4d41 5354 4552 5f57 4542 0000 00000000 00C首先我们注意一下,从上面的输出结果上可以看出来,基本上 tcpdump 总的的输出格式为:系统时间 来源主机.端口 目标主机.端口 数据包参数TcpDump 的参数化支持tcpdump 支持相当多的不同参数,如使用-i 参数指定 tcpdump 监听的网络界面,这在计算机具有多个网络界面时非常有用,使用-c 参数指定要监听的数据包数量,使用-w 参数指定将监听到的数据包写入文件中保存,等等。然而更复杂的 tcpdump 参数是用于过滤目的,这

7、是因为网络中流量很大,如果不加分辨将所有的数据包都截留下来,数据量太大,反而不容易发现需要的数据包。使用这些参数定义的过滤规则可以截留特定的数据包,以缩小目标,才能更好的分析网络中存在的问题。tcpdump 使用参数指定要监视数据包的类型、地址、端口等,根据具体的网络问题,充分利用这些过滤规则就能达到迅速定位故障的目的。请使用 man tcpdump 查看这些过滤规则的具体用法。显然为了安全起见,不用作网络管理用途的计算机上不应该运行这一类的网络分析软件,为了屏蔽它们,可以屏蔽内核中的 bpfilter 伪设备。一般情况下网络硬件和 TCP/IP 堆栈不支持接收或发送与本计算机无关的数据包,为

8、了接收这些数据包,就必须使用网卡的混杂模式,并绕过标准的 TCP/IP 堆栈才行。在 FreeBSD 下,这就需要内核支持伪设备 bpfilter。因此,在内核中取消 bpfilter 支持,就能屏蔽 tcpdump 之类的网络分析工具。并且当网卡被设置为混杂模式时,系统会在控制台和日志文件中留下记录,提醒管理员留意这台系统是否被用作攻击同网络的其他计算机的跳板。May 15 16:27:20 host1 /kernel: fxp0: promiscuous mode enabled虽然网络分析工具能将网络中传送的数据记录下来,但是网络中的数据流量相当大,如何对这些数据进行分析、分类统计、发现

9、并报告错误却是更关键的问题。网络中的数据包属于不同的协议,而不同协议数据包的格式也不同。因此对捕获的数据进行解码,将包中的信息尽可能的展示出来,对于协议分析工具来讲更为重要。昂贵的商业分析工具的优势就在于它们能支持很多种类的应用层协议,而不仅仅只支持 tcp、udp 等低层协议。从上面 tcpdump 的输出可以看出,tcpdump 对截获的数据并没有进行彻底解码,数据包内的大部分内容是3使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是先使用带-w 参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序进行解码分析。当然也应该定义过滤规则,以避免捕获的数据

10、包填满整个硬盘。TCP 功能:1、数据过滤不带任何参数的 TcpDump 将搜索系统中所有的网络接口,并显示它截获的所有数据,这些数据对我们不一定全都需要,而且数据太多不利于分析。所以,我们应当先想好需要哪些数据,TcpDump 提供以下参数供我们选择数据:-b 在数据-链路层上选择协议,包括 ip、arp、rarp、ipx 都是这一层的。例如:tcpdump -b arp 将只显示网络中的 arp 即地址转换协议信息。-i 选择过滤的网络接口,如果是作为路由器至少有两个网络接口,通过这个选项,就可以只过滤指定的接口上通过的数据。例如:tcpdump -i eth0 只显示通过 eth0 接口

11、上的所有报头。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 则用于网关主机。可能有点复杂,看下面例子就知道了:tc

12、pdump 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

13、arp rarp 和 tcp、udp、icmp 这些选项等都要放到第一个参数的位置,用来过滤数据报的类型。例如:tcpdump ip src4只过滤数据-链路层上的 IP 报头。tcpdump udp and src host 192.168.0.1只过滤源主机 192.168.0.1 的所有 udp 报头。数据显示/输入输出TcpDump 提供了足够的参数来让我们选择如何处理得到的数据,如下所示:-l 可以将数据重定向。如 tcpdump -l tcpcap.txt 将得到的数据存入 tcpcap.txt 文件中。-n 不进行 IP 地址到主机名的转换。如果不使用这一项,当系统中存在某一主机

14、的主机名时,TcpDump 会把 IP 地址转换为主机名显示,就像这样:eth0 ntc9.1165 .telnet,使用-n 后变成了:eth0 192.168.0.9.1165 192.168.0.1.telnet。-nn 不进行端口名称的转换。上面这条信息使用-nn 后就变成了:eth0 ntc9.1165 .23。-N 不打印出默认的域名。还是这条信息-N 后就是:eth0 ntc9.1165 router.telnet。-O 不进行匹配代码的优化。-t 不打印 UNIX 时间戳,也就是不显示时间。-tt 打印原始的、未格式化过的时间。-v 详细的输出,也就比普通的多了个 TTL 和服务类型

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报