Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all articles
Browse latest Browse all 12749

【工具分享】moloch:网络流量回溯分析系统

$
0
0
【工具分享】moloch:网络流量回溯分析系统

2017-10-27 16:34:48

阅读:757次
点赞(0)
收藏
来源: 安全客





【工具分享】moloch:网络流量回溯分析系统

作者:YSRC





【工具分享】moloch:网络流量回溯分析系统

0x01 故事背景

某一天的早上,你怀着愉快的心情来到公司,开始美好的一天工作生活。有个业务后台的同事找到你说 昨天下班后有人反馈说访问他的业务后台有问题,他想分析网络层面的数据包看看,是否能看出什么问题。你微微一笑,作为一个资深网工,抓包这种小事,这不是正是花式秀tcpdump还是tshark的时候么?

突然又觉得那里不对…什么鬼?要抓昨天晚上的数据包,你突然想到的竟然是这货...


【工具分享】moloch:网络流量回溯分析系统

既然没有这么逆天的技能的时光鸡小伙伴 那还是搭建一个流量回溯系统吧


0x02架构简述

流量回溯系统首先要面临几个问题:数据包的存取和协议的分析,当数据量很大的时候检索的速度等…

刚开始的想法是使用tshark 设定数据包大小,让tshark在后台一直抓包。用了一下效果不忍直视。

后来又找了一些其它的解决方案比如:Analyzing Network Packets with Wireshark, Elasticsearch, and Kibana之类的,效果都不是很好

直到有一天,老大介绍了一个系统:moloch。

数据的来源是交换机的镜像端口,moloch 系统主要涉及三个组件 Capture,elasticsearch 和 Viewer。

Capture 用来抓取流量会以pcap的格式存储到硬盘上面,还会存一份对应关系到es中,Viewer提供web界面。

moloch简介

Moloch是一款由AOL开源的,能够大规模的捕获IPv4数据包(PCAP)、索引和数据库系统

环境搭建

存储数据包对机器的性能要求,moloch 提供了评估页面。

Moloch Estimators

硬件环境:我的测试环境是一台Dell Inc. PowerEdge R720/0T0WRN

cpu : Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz

memory: 100G+

disk: 8T

这是一台配置比较好的机器。所以我的Capture Machines和Elasticsearch Machines都放在一台上面,有条件的强烈推荐把这2个组件分离开来。


【工具分享】moloch:网络流量回溯分析系统

根据官方的文档有2个事情注意一下:

1 Moloch is no longer supported on 32 bit machines.

moloch不支持32位系统。

2 Our deployment is on Centos 6 with the elrepo 4.x kernel upgrade for packet performance increases.

内核4.X 有助于抓包性能提升,我的系统环境 centos7 更新到最新的版本。

[root@moloch~]#cat/etc/redhat-releaseCentOSlinuxrelease7.4.1708(Core)

内核版本也更新到4.x。

[root@moloch~]#uname-r4.13.7-1.el7.elrepo.x86_64

moloch 安装

先去官网下载一下安装包Downloads。

我选择是Nightly版本,可以体验新的特性 。


【工具分享】moloch:网络流量回溯分析系统

moloch安装命令

rpm-ivhmoloch-nightly.x86_64.rpm

pfring 安装

moloch的Capture,默认使用libpcap,后面我们会用pfring,提升抓包性能。

cd/etc/yum.repos.d/ wgethttp://packages.ntop.org/centos-stable/ntop.repo-Ontop.repowgethttp://packages.ntop.org/centos-stable/epel-7.repo-Oepel.repoyumerasezeromq3(Dothisoncetomakesurezeromq3isnotinstalled) yumcleanall yumupdate yuminstallpfring

elasticsearch 安装配置

es可以选择在配置moloch时候安装,也可以自己单独安装,我选择自己单独安装。

安装命令

rpm-ivhelasticsearch-5.6.2.rpm #优化es[root@molochelasticsearch]#vimjvm.options#Xmsrepresentstheinitialsizeoftotalheapspace#Xmxrepresentsthemaximumsizeoftotalheapspace-Xms32g-Xmx32g [root@molochelasticsearch]#vimelasticsearch.yml#抓包经常会把硬盘用完,当硬盘使用空间到80%es就开始报警,我直接把报警关掉的。cluster.routing.allocation.disk.threshold_enabled:falsenetwork.host:10.10.7.7 [root@moloch~]#curlhttp://10.10.7.7:9200{"name":"E2BtdPC","cluster_name":"elasticsearch","cluster_uuid":"EiSTiNE-QGaTt9z0V8HPkw","version":{"number":"5.6.2","build_hash":"57e20f3","build_date":"2017-09-23T13:16:45.703Z","build_snapshot":false,"lucene_version":"6.6.1" },"tagline":"YouKnow,forSearch"}

0x03配置优化

配置moloch

#开始使用脚本配置moloch[root@molochdb]#/data/moloch-nightly/bin/ConfigureFoundinterfaces:bond0;em1;em2;em3;em4;lo#选择需要监控的网卡也就是你的镜像流量对应的网卡Semicolon';'seperatedlistofinterfacestomonitor[eth1]em4 InstallElasticsearchserverlocallyfordemo,musthaveatleast3Gofmemory,NOTrecommendedforprod#写上es地址ElasticsearchserverURL[http://localhost:9200]http://10.10.7.7:9200 #输入一个密码 PasswordtoencryptS2Sandotherthings[no-default]输密码 Moloch-Creatingconfigurationfiles Installingsystemdstartfiles,usesystemctl Moloch-Installing/etc/logrotate.d/molochtorotatefilesafter7days Moloch-Installing/etc/security/limits.d/99-moloch.conftomakecoreandmemlockunlimited Moloch-DownloadingGEOfiles#这个地方等待时间有点长,需要去下载下面的文件2017-09-2714:56:46URL:https://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.csv[23062017-09-2714:57:02URL:http://www.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz[2462473/2017-09-2715:13:14URL:http://download.maxmind.com/download/geoip/database/asnum/GeoIPASNumv6.dat.gz[22017-09-2715:13:26URL:http://www.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz[65822017-09-2715:13:35URL:http://geolite.maxmind.com/download/geoip/database/GeoIPv6.dat.gz[1044601/10446#5)Initialize/UpgradeElasticsearchMolochconfiguration[root@molochdb]#/data/moloch/db/db.plhttp://10.10.7.7:9200initItisSTRONGLYrecommendedthatyoustopALLmolochcapturesandviewersbeforeproceeding. Thereis1elasticsearchdatanode,ifyouexpectmorepleasefixfirstbeforeproceeding. ThisisafreshMolochinstall Erasing Creating Finished.Havefun!Finished#6)Addanadminuserifanewinstallorafteraninit[root@molochdb]#/data/moloch/bin/moloch_add_user.shadmin"输密码"tcitops--admin 7)Starteverything [root@molochdb]#systemctlrestartmolochcapture.service[root@molochdb]#systemctlrestartmolochviewer.service8)Lookatlogfilesforerrors /data/moloch/logs/viewer.log /data/moloch/logs/capture.log9)Visithttp://molochhost:8005withyourfavoritebrowser. user:admin password:passwordfromstep#6 不要使用弱口令哦!

moloch 登陆

经过上面的配置,让我们来访问一下moloch。

在浏览器中输入http://10.10.7.7:8005输入账号上面定的密码。

出现如下界面的时候 表示系统已经搭建起来啦。


【工具分享】moloch:网络流量回溯分析系统

0x04数据删除

我现在的环境每天都有好几个T的数据包,es每天也有差不多200个G数据产生,所以当系统搭建起来后第一件事情 强烈推荐大家考虑数据的删除保留问题。

#关于pcap的数据包我是使用moloch来控制删除[root@moloch~]#vim/data/moloch-nightly/etc/config.ini#moloch默认是freeSpaceG=5%,也就是磁盘空间会保留5%freeSpaceG=5% #es使用moloch自带的脚本来控制删除[root@molochdb]#vimdaily.sh#!/bin/sh#ThisscriptisonlyneededforMolochdeploymentsthatmonitorlivetraffic.#Itdropstheoldindexandoptimizesyesterdaysindex.#Itshouldberunonceadayduringnonpeaktime.#CONFIGESHOSTPORT=10.100.10.7:9200 RETAINNUMDAYS=1 /data/moloch-nightly/db/db.pl$ESHOSTPORTexpiredaily$RETAINNUMDAYS #在做个定时任务每天晚上跑一次[root@moloch~]#crontab-e0104***/data/moloch-nightly/db/daily.sh>>/var/log/moloch/daily.log2>&1 网卡优化
#Setringbufsize,seemaxwithethool-geth0ethtool-Geth0rx4096tx4096#Turnofffeature,seeavailablefeatureswithethtool-keth0ethtool-Keth0rxofftxoffgsofftsooffgsooff

High Performance Settings

#MOSTIMPORTANT,usebasicmagicMode,libfilekillsperformancemagicMode=basic#官方说pfring效果更好#pfring/snfmightbebetterpcapReadMethod=tpacketv3#Increaseby1ifstillgettingInputDropstpacketv3NumThreads=2#DefaultspcapWriteMethod=simplepcapWriteSize=2560000#Startwith5packetthreads,increaseby1ifgettingthreaddropspacketThreads=5#SettonumberofpacketsasecondmaxPacketsInQueue=200000

pfring 配置

#什么鬼官方又建议先去尝试tpacketv3不过我还是建议使用pfringWesuggestyoutrytpacketv3firstifavailableonthehost [root@moloch~]#vim/data/moloch-nightly/etc/config.inirootPlugins=reader-pfring.so pcapReadMethod=pfring 查看抓包
#让我们先用命令看看网卡接收流量 [root@moloch~]#dstat-n -net/total- recvsend115M1761k112M1238k109M168k107M1111k110M1695k111M1477k107M2305k 我们在来看看同一时间moloch中抓包数据量,因为都是动态数值,但是结果如此接近,是不是可以说千兆网卡下已经可以做到100% 数据包抓取,不信你去看pfring 官方文档

【工具分享】moloch:网络流量回溯分析系统

0x05功能使用

看到这里的同学都应该是真爱了,下面开始满满都是福利啦。

历史数据分析

你可以写一些search expression自由搭配检索你需要的信息,es作为支持速度就是快。

举个例子:源ip == 10.101.26.60 and 协议是 http 的 信息如下:


【工具分享】moloch:网络流量回溯分析系统

数据包导出

你要是更习惯用wireshark分析,没有问题,moloch导出pcap也是很方便的、

推荐time range : “00:00:01”,bounding:“last packet”。moloch显示的是会话信息,bounding就很好理解了。

还有记得点一下“matching items”我的环境一秒钟 大概导出200M的数据量。

先确定一下时间,然后点一下export pcap。


【工具分享】moloch:网络流量回溯分析系统

然后开始export pcap,就这么简单!


【工具分享】moloch:网络流量回溯分析系统

0x06结束语

流量分析是一个比较复杂的系统工作,moloch在大规模的捕获数据包、索引方面做得相当卓越了。

在数据包的存取问题解决的情况下,随之而来的更多是数据包的分析:tcp的重传,mysql的慢查询,http的响应时间,这些可以从网络层面给业务带来红利的研究,值得大家去深挖研究。

欢迎有兴趣的小伙伴留言一起讨论。



【工具分享】moloch:网络流量回溯分析系统
【工具分享】moloch:网络流量回溯分析系统
本文由 安全客 原创发布,如需转载请注明来源及本文地址。
本文地址:http://bobao.360.cn/learning/detail/4615.html

Viewing all articles
Browse latest Browse all 12749

Latest Images

Trending Articles





Latest Images