本节书摘来自异步社区《Wireshark网络分析实战》一书中的第1章1.3节开始抓包,作者【以色列】Yoram Orzach,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.3 开始抓包
Wireshark网络分析实战
本节首先将介绍如何启动Wireshark,然后会讲解布放好Wireshark之后,如何对其进行配置,以应对不同的抓包场景。
1.3.1 准备工作
安装过Wireshark之后,需点击桌面→开始→程序菜单或快速启动栏上相应的图标,运行该数据包分析软件。
Wireshark一旦运行,便会弹出图1.6所示的窗口(Wireshark1.10.2运行窗口)。
1.3.2 操作方法
要想让Wireshark软件能抓到数据包,有以下三种途径:点击Capture菜单下的相关菜单项;点击快速启动工具栏里的绿色图标;点击Wireshark主窗口左侧居中的Start区域里的相关选项,如图1.6所示。此外,在抓包之前,还可对Wireshark的某抓包选项进行配置。
如何选择实际用来抓包的网卡
若只是点击图1.7所示Wireshark快速启动工具栏里的绿色图标(正数第三个图标),Wireshark在抓包时,实际使用的网卡将会是该软件默认指定的网卡(如何更改这一默认配置,详见1.3.3节)。要选择Wireshark抓包时实际使用的网卡,请点击快速启动栏里左边第一个图标(List the available capture interfaces图标),Wireshark Capture Interfaces窗口会立刻弹出,如图1.8所示。
要想得知哪块网卡为有效网卡,最佳途径是观察其是否能够收发流量。通过图1.8,可以得知Wireshark感知到的各块网卡正在收、发的数据包的个数(Packets列)及速率(Packets/s列)。
若Wireshark的版本不低于1.10.2,则可以选择一块以上的网卡来同时抓包。如此行事的好处是,只要Wireshark主机配有多块网卡,便可同时监控多个服务器端口、多个路由器(或其他网络设备)端口的流量。图1.9所示为这样的一个应用场景。
如何配置实际用来抓包的网卡
要想对实际用来抓包的网卡做进一步的配置,请点击Capture菜单中的Options菜单项,Wireshark Capture Options窗口会立刻弹出,如图1.10所示。
在图1.10所示的Wireshark Capture Options窗口中,可配置以下参数。
1.在Wireshark Capture Options窗口的上半部分区域,可以点选实际用来抓包的网卡。
2.在Wireshark Capture Options窗口的左中区域有一个Use promiscuous mode on all interfaces复选框。选中时,会让Wireshark主机抓取交换机(端口镜像功能)重定向给自己的所有数据包,哪怕数据包的目的(MAC/IP)地址不是本机地址;否则,Wireshark主机只能抓取到目的(MAC/IP)地址为本机地址的数据包,外加广播及多播数据包。
3.在某些情况下,选中该复选框后,Wireshark将不会从无线网卡抓包。因此,若选用无线网卡抓包,且一无所获时,请取消勾选该复选框。
4.在Use promiscuous mode on all interfaces复选框下有Capture Files字样,其后有个files输入栏,可在栏内输入一个文件名,然后再点选use multiple files复选框。这么一点,Wireshark不但会把所抓数据保存在由其命名的文件内(其系统路径可由用户指定),而且还可根据特定的需求,以多个文件的形式存储。当以多个文件的形式存储时,在同一目录下,Wireshark会自动在原始文件名后添加后缀“ xxxxx 具体时间”来加以区分。若所要抓取的数据较多,Wireshark的这一功能便非常有用。譬如,在网卡收到的流量较高,或需要长期抓取数据的情况下,就可以利用这一多文件存储功能,基于特定的时间间隔(点选第二个next file every复选框)或希望保存的每个抓包文件的大小(点选第一个next file every复选框),让Wireshark另行打开一个新的文件来保存所抓取的数据。
5.在Wireshark Capture Options窗口的左下区域,有Stop Capture Automatically字样。可点选其名下的三个复选框,让Wireshark根据抓包时长、所保存的抓包文件的大小或所抓取的数据包的数量,来决定是否停止抓包任务。
6.在Wireshark Capture Options窗口的右中区域,有Display Options字样。可点选其名下的三个复选框,来配置Wireshark抓包主窗口的显示选项。点选Update list of packets in real time复选框,Wireshark抓包主窗口将会实时显示抓取到的所有数据包;点选Automatically scroll during live capture复选框,Wireshark抓包主窗口会在实时显示数据包时自动滚屏;点选Hide capture info dialog复选框,Wireshark将不再弹出与实际用来抓包的网卡相关联的流量统计窗口。一般而言,无需改变Wireshark软件的上述任何一项默认配置。
7.在Wireshark Capture Options窗口的右下区域,有name resolution字样。可点选其名下的4个复选框,来调整与名字解析有关的配置。点选前三个复选框,就会让Wireshark在显示数据时,解析出与MAC地址、IP地址以及第四层协议端口号相对应的名称(比如,MAC地址所隶属的厂商名、与IP地址相对应的主机名或域名、与TCP/UDP端口号相对应的应用程序名等);点选最后一个复选框Use external network name resolver,Wireshark便会调用由操作系统指明的名字解析程序(比如,DNS解析程序),来解析上述名称。
1.3.3 幕后原理
Wireshark的抓包原理非常简单。把Wireshark主机上的网卡接入有线或无线网络开始抓包时,介于有线(或无线)网卡和抓包引擎之间的软件驱动程序便会参与其中。在Windows和UNIX平台上,这一软件驱动程序分别叫做WinPcap和Libcap驱动程序;对于无线网卡,行使抓包任务的软件驱动程序名为AirPacP驱动程序。
1.3.4 拾遗补缺
若(数据包的收、发)时间是一个重要因素,且还要让Wireshark主机从一块以上的网卡抓包,则Wireshark主机就必须与抓包对象(受监控主机或服务器)同步时间,可利用NTP(网络时间协议)让Wireshark主机/抓包对象与某个中心时钟源同步时间。
当网管人员既需观察Wireshark抓包文件,也需检查抓包对象所生成的日志记录,以求寻得排障线索时,Wireshark主机与抓包对象的系统时钟是否同步将会变得无比重要。比方说,Wireshark抓包文件显示的发生TCP重传的时间点,与受监控服务器(生成的)日志显示的发生应用程序报错的时间点相吻合,则可以判断TCP重传是拜服务器(上运行的应用程序)所赐,与网络无关。
Wireshark软件所采用的时间取自操作系统(Windows、Linux等)的系统时钟。至于不同OS中NTP的配置方法,请参考相关操作系统配置手册。
以下所列为在Microsoft Windows 7操作系统内配置时间同步的方法。
1.单击任务栏最右边的时间区域,会出现时间窗口。
2.在时间窗口中点击“更改日期和时间设置”,会弹出“日期和时间”窗口。
3.在“日期和时间”窗口中,点击“Internet时间”标签,再点击“更改设置”,会弹出“Internet时间设置”窗口。
4.在“Internet时间设置”窗口中,选中“与Internet时间服务器同步”复选框,在“服务器”后的输入栏内输入时间服务器(NTP)的IP地址,再点确定按钮。
注意:
在Microsoft Windows 7及后续版本的操作系统中,默认包含了几个时间服务器(格式为域名)。可选择一个时间服务器,让网络内的所有主机都与其同步时间。
NTP是一种网络协议,网络设备之间可藉此协议同步各自的时间。可把网络设备(路由器、交换机、防火墙)及服务器配置为NTP客户端,令它们与同一台NTP时间服务器(时钟源)对时(同步时间),时间精度要取决于那台时间服务器所处的层级(stratum)或等级(level)。NTP时间服务器所处层级越高,其所提供的时间也就越精确。直连原子时钟并提供NTP对时服务的设备被称为1级时钟源,其精度也最高。
RFC 1059(NTPv1)是定义NTP的第一份标准文档,RFC 1119(NTPv2)则是第二份;目前常用的NTPv3和v4则分别定义于RFC 1305和RFC 5905。
NTP服务器IP地址表可从多处下载,比如http://support.ntp.org/bin/view/Servers/StratumOneTimeServers和http://wpollock.com/AUnix2/NTPstratum1PublicServers.htm。
1.3.5 进阶阅读
可浏览以下站点,来了解与PACP驱动程序有关的信息。
WinPcap:http://www.winpcap.org
LibPcap:http://www.tcpdump.org
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。