6.7.2 图形化抓包工具Wireshark

Wireshark是世界上最流行的网络分析工具。这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息。与很多其他的网络工具一样,Wireshark也是使用pcap这个网络库来进行封包捕捉的,Wireshark的前身是Ethereal,网络管理员使用Wireshark来检测网络问题,网络安全工程师使用Wireshark来检查资讯安全相关问题,开发者使用Wireshark来为新的通信协定除错,普通使用者使用Wireshark来学习网络协定的相关知识。Wireshark不是入侵侦测软件(Intrusion Detection Software,IDS),对于网络上的异常流量行为,它不会产生警示或任何提示。然而,深入分析Wireshark撷取的封包能够帮助使用者对于网络行为有更清楚的了解。Wireshark不会对网络封包的内容进行修改,它只会反映出目前流通的封包资讯。Wireshark本身也不会将封包送出至网络上。

Wireshark在CentOS 6.4 x86_64下的安装极为方便,首先,准备一台安装了图形化界面的机器(因为Wireshark是基于图形化的工具),然后执行如下命令:

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

yum –

y install wireshark

之后在命令下面用XShell4.0登入,直接输入命令wireshark即可。

下面以一个简单的例子来说明一下,假设客户端是192.168.1.100,用XShell4.0连接到了192.168.1.101的服务器端上,端口为22,那么,如何使用Wireshark来进行抓包工作呢?步骤如下。

1)在服务器端上执行Wireshark,打开此工具,如图6-7所示。

阅读 ‧ 电子书库

图6-7 Wireshark工作界面图

2)选择“Capture”的“options”选项,在“Capture Filter”里面输入抓包规则,命令如下:

host 192.168.1.100 and (host 192.168.1.101 and port 22)

Wireshark语法跟TCPDump非常接近,如图6-8所示。

阅读 ‧ 电子书库

图6-8 编写Wireshark工具抓包规则

3)然后点击“start”,就可以开始抓包了,如图6-9所示。

阅读 ‧ 电子书库

图6-9 Wireshark工具抓包结果

抓包结果由大家自行分析,在实际工作中大家可以根据当前服务器的实际状态来选择采用何种抓包工具,Wireshark是有图形化界面的,TCPDump则是没有图形化界面的,建议以上两种工具都要掌握,因为它们的语法规则基本是类似的。有兴趣的朋友可以直接在规则里输入icmp(这是用来运行ping协议的),然后在另外的机器上ping通服务器端,这样就可以更直观地看到数据的走向了,这点对于以后编写iptables脚本大有帮助。这里跟大家交流一下Wireshark的一个使用经验,如果我们不知道某项服务要用到哪些协议、哪些端口,可用Wireshark抓下包。比如想知道samba到底占用了哪个端口,就可以尝试使用Wireshark,然后得出正确的结论,这样是不是很方便呢?不过,大家写抓包规则时,要排除掉22的干扰,提示一下规则,命令如下:

host 192.168.1.100 and (host 192.168.1.101 and port not 22)

抓包结果如图6-10所示,通过对数据包的分析,可得出如下结论:samba服务占用的端口为445,所以只需要在iptables防火墙上开放445端口即可,命令如下:

iptables -A INPUT -p tcp --dport 445 -j ACCEPT

阅读 ‧ 电子书库

图6-10 Wireshark抓取samba数据包的结果图