采用python实现抓包构建故障分析平台

前言:

      同事今天和我说,他现在的任务在做一个头疼的问题,说时尚了点,就是用自动化解脱心碎及放弃的处理故障的杂事,他这边刚入职,貌似是带领一帮小弟解决别人搞不定的问题,但是有些业务部够单纯,把事直接抛给我同事这边。。。 很无敌吧。


      所以那,计划做一个自动化平台,可以去问题端去抓数据包,然后分析数据包,入库,邮件通知,使这些个流程用平台串联起来。 

请大家关注下,原文地址: blog.xiaorui.cc

我这里就说下,我的解决思路和开发思路:

工具:

pcap dpkt saltsatck mysql tornado tcpdump

pcap               是用来抓包 (这个是tcpdump的一个库)

dpkt                 是用来解析数据包的

celery              异步任务

实现两大功能,用户他自己抓包,然后上传到页面上,然后我后端解析后,返回结果。

用户在平台上提交问题服务器的ip,并选定测试类型,我这里会到服务端跑用python的pcap抓包并分析结果,把结果上报到平台。

关于自动抓包分析,以前和同事做过处理dns攻击的,方案流程和第三方的工具和我上述是一样的。

遇到攻击,会分析dns的攻击的特征,然后再黑洞系统注射特征码禁止。

需要注意的是,在抓数据的时候,可能会产生堵塞,尤其是pcap,dpkt这东西,需要在后台自己的玩。这个时候就需要用celery把抓包分析包的任务放在后台执行。 你要是觉得subprocess合理的话,也可以用用subprocess 的pipe的,但是个人觉得也是个办法 ,更简单的方法是用tcpdump -w 写到一个文件里面,然后用dpkt去解析,这样的话,也不用pcap去解析啦。

更多的运维自动化的文章,原文地址 : blog.xiaorui.cc

安装是相当的简单,不管是centos和ubuntu都已经有默认的源了,我这里用的是ubuntu的开发机跑测试:

下面是抓取http数据包的写法,大家可以慢慢取值,慢慢分拆数据。

用wireshark瞅瞅:

我前两天在做lvs操作平台的时候,额外加了一个针对vrrp的分析数据模块,大家可以举一反三在改改!

具体的数据格式,自己插接吧,用pcap得到的序列化数据 。 


通过获取的数据,可以得知对端的vrrp情况,比如tos src dst vrrp主信息 !

嗯,就这样了,平台中最主要的抓包和分解包的动作已经实现,剩下的就要靠他自己了。 要是有新发现,给分享给大家的。



对Golang感兴趣的朋友可以加群: 278517979 !!!
另外如果大家觉得文章对你有些作用! 如果想赏钱,可以用微信扫描下面的二维码, 感谢!
另外再次标注博客原地址  xiaorui.cc

4 Responses

  1. 临风听雪xl 2015年1月20日 / 上午12:19

    请问Python版本多少呢?我在centos上Python2.7下装pcap一直不成功。。

    • 峰云 2015年1月20日 / 下午2:54

      记不清了,当时开发环境是ubuntu,python应该是2.7吧

  2. 无敌大大 2014年11月11日 / 上午7:36

    很实用呀

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">