无意间发现了款可视化的数据包分析工具CanAnalysis试用之下感觉不错。关键还是开源的免费软件,正好公司领导又有需求要看看网络数据流量的相关数据。于是乎花了几天时间稍微试着搭了个架子。现将如何实现的给大家详细列出来。

 

需求的系统:

 

1.     安装ubuntu 14的操作系统。

2.     配置2network卡,1块用于内部联网使用,另一块配置成混杂模式用来mirror交换机跟防火墙之间的端口为了抓取数据(其中为了mirror这个端口还将vsphere中的一块网卡做了直通,在做直通vsphere物理网卡时候重启虚拟机还发生了几台虚拟机起不来的事故最后一台虚拟机还要重做可谓一波三折内牛满面)。

3.     如果你用来抓取的计算机跟分析用的CapAnalysis机器不是同一台计算机,请自行按需求配置。数据抓取这块我就是用linux自带的tcpdump命令来实现的。如果你是windows的也可以用wireshark,不过linux做定时任务更方便点吧。

 

系统安装。

1.     Ubuntu 14系统的安装,这个你们就自己去装吧。我的真实版本是14的。

2.     升级系统安装完成后我就直接用command升级了一下 sudo apt-get update

3.     开启ssh以便远程登录。 sudo apt-get install openssh-server

4.     CapAnalysis的官方网站有具体的安装和步骤可以参考URLhttp://www.capanalysis.net/ca/how-to-install-capanalysis

5.     但是按照官方的安装教程还是没有成功,我把我自己的安装步骤说明如下:

i)       安装gdebi文件 sudo apt-get install gdebi

ii)     下载capanalysis文件 sudo wget http://sourceforge.net/projects/capanalysis/files/version%201.2.2/capanalysis_1.2.2_amd64.deb

iii)   安装capanalysisdeb文件。 sudo dpkg –i cpanalysis_1.2.2_amd64.deb

iv)   一些未知错误后找到了一条清除的命令  sudo apt-get install –f

6.     安装完成后你应该可以访问你的应用程序的网页信息了我的安装完成后显示如下

7.     我用windowswireshark截取了本机端口的部分数据流量并且导入后分析得到很直观的效果

 

 

不可否认CapAnalysis在数据展示这方面做的的却是很优秀。

 

关于数据采集这块

          我是将我们的接入层交换机(公司小所以就只有一个接入层)跟路由器的链接端口,做端口镜像并且在本地网卡中设置网卡的模式为混杂模式。具体的步骤如下。

·        配置ubuntu系统的第二块网卡

·        直连这个网卡去交换机的镜像端口

·        开启第二网卡的混杂模式

·        配置定时任务每小时的10分运行shell脚本tcpdump数据并且保存到本地

·        tcpdump的脚本。

 

 

 

脚本如下:

ifconfig                        #查看本地网络情况,并未发现第二块网卡

ifconfig –a                   #看到第二块网卡信息,证明第二块网卡并未启动

sudo ip link set dev eth1 up  #启用第二块网卡

sudo ifconfig eth1 –promisc   #启用第二块网卡的混杂模式

sudo ip link set dev eth1 down up #重启第二块网卡让混杂模式生效

 

配置定时计划crontab

sudo crontab –e          #进入系统计划任务配置模式

*6 * * * * /home/sgadmin/pcap.sh 2>&1 >> /tmp/log.tmp  每隔10分钟执行pcap.sh 脚本并将执行结果的日志写入log.tmp文件

 

 

shell脚本用语tcpdump文件

sudo tcpdump -i eth1 -G 300 -W 1 -w /tmp/`date '+%Y%m%d%H'`.pcap

#定时任务中shell脚本内容 用以小时为时间命名文件名

 

脚本配置完后运行结果如下:

 

 

最后你可以通过command命令将pcap文件导入capanalyasis分析器。

capanalysis中定义了几种数据的导入方式 ,各位可以根据自己的实际情况来定义。