美文网首页
Moloch网络回溯分析系统

Moloch网络回溯分析系统

作者: 猪蹄胖 | 来源:发表于2018-10-13 21:46 被阅读0次

Moloch 是一个由AOL开源的,能够大规模的捕获IPv4数据包(PCAP)、索引和数据库系统,由以下三个部分组成:

  • capture :绑定interface运行的单线程C语言应用
  • viewer :运行在capture主机上的node.js web应用
  • elasticsearch : moloch的数据检索驱动

Moloch git地址 git主页上README有较为详细的安装说明,以下是参照官方说明,我的安装记录,本章只为了快速搭建Moloch,都是使用RPM包安装。


系统要求和环境搭建

  • 存储数据包对机器的性能要求moloch提供了评估页面 Moloch Estimators
  • 本次安装,找了一台陈旧的机器,4G 1333内存,i3CPU,150 interl SSD,一块500GB HDD,这个配置相对简陋,并且我把所有组件都安装在了一台机器上面,如果有条件的话,请把Capture MachinesElasticsearch Machines组件分开来安装,由于elasticsearch相当吃内存,2G内存的机器基本带不起来。
image.png
  • Linux 系统(官方支持Centos、ubuntu、OS x)
  • JDK (elasticsearch依赖,推荐8u65)
  • python(nodejs 运行依赖,一般系统都自带v2.7满足需求)
  • nodejs(当前的moloch版本支持node)
  • Moloch is no longer supported on 32 bit machines
  • 内核4.X有助于抓包性能提升

安装elasticsearch

  • ES可以选择在moloch安装时安装,也可以单独安装,我这边选择单独安装,从elasticsearch官网下载rpm包,下载地址,最新的elasticsearch版本是v6.2.0,由于moloch支持较低版本,下载ealsticsearch-5.6.6版本的RPM包
  • 下载JDK
yum install -y wget curl perl-JSON  perl-libwww-perl libyaml-devel   ##依赖组件
wget http://iso.epoint.com.cn/JDK/jdk-8u65-linux-x64.rpm ##下载jdk
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.6.rpm  ##下载elasticsearch
rpm -ivh jdk-8u65-linux-x64.rpm  ##安装jdk
rpm -ivh elasticsearch-5.6.6.rpm  ##安装elasticsearch
systemctl daemon-reload  ##重载修改过的配置文件
systemctl enable elasticsearch.service ##开机启动elasticsearch
systemctl start  elasticsearch.service  ##启动elasticsearch

安装Moloch

先去官网下载安装包Downloads,我下载的是Nightly版本,获取最新特性

下载地址
wget https://files.molo.ch/builds/centos-7/moloch-nightly.x86_64.rpm ##下载moloch
rpm -ivh moloch-nightly.x86_64.rpm ##安装moloch

配置Moloch

/data/moloch/bin/Configure  ##moloch基本配置
Found interfaces: lo;ens160
Semicolon ';' seperated list of interfaces to monitor [eth1] ens160 ##选择监听网卡,多个网卡用;隔开
Install Elasticsearch server locally for demo, must have at least 3G of memory, NOT recommended for production use (yes or no) [no] no  ##本机寻找elasticsearch
Elasticsearch server URL [http://localhost:9200] http://localhost:9200 ##本机的elasticsearch的URL
Password to encrypt S2S and other things [no-default] moloch  ##配置密码
Moloch - Creating configuration files
Not overwriting /data/moloch-nightly/etc/config.ini, delete and run again if update required (usually not), or edit by hand
Installing systemd start files, use systemctl
Moloch - Downloading GEO files
2018-02-07 19:29:06 URL:http://www.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz [2513493/2513493] -> "GeoIPASNum.dat.gz" [1]
2018-02-07 19:29:16 URL:http://download.maxmind.com/download/geoip/database/asnum/GeoIPASNumv6.dat.gz [2896577/2896577] -> "GeoIPASNumv6.dat.gz" [1]
2018-02-07 19:29:22 URL:http://www.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz [700469/700469] -> "GeoIP.dat.gz" [1]
2018-02-07 19:29:28 URL:http://geolite.maxmind.com/download/geoip/database/GeoIPv6.dat.gz [1110013/1110013] -> "GeoIPv6.dat.gz" [1]

初始化、升级 Elasticsearch Moloch配置

/data/moloch-nightly/db/db.pl  http://localhost:9200  init    ##第一次安装初始化、或者想删除所有数据
/data/moloch-nightly/db/db.pl  http://localhost:9200 upgrade  ##升级moloch 数据包

添加admin账户

/data/moloch-nightly/bin/moloch_add_user.sh admin "Admin User" moloch --admin  ##新增admin账户,密码是moloch

开启所有服务

systemctl enable molochcapture.service ##开机启动Capture
systemctl start molochcapture.service  ##启动Capture
systemctl enable molochviewer.service  ##开机启动Viewer
systemctl start molochviewer.service   ##启动Viewer

日志查看

tail -f /data/moloch-nightly/log/capture.log
tail -f /data/moloch-nightly/log/viewer.log

数据清理

ES的数据增长根据流量大小决定,如果不定期清理ES数据,总有一天空间会写满,所以要定期清理ES数据

cd /data/moloch-nightly/db
vim daily.sh
#ES服务端口
ESHOSTPORT=127.0.0.1:9200
#保留ES日志七天
RETAINNUMDAYS=7
crontab -e 
0 1 * * *  sh /data/moloch-nightly/db/daily.sh >> /var/log/moloch/daily.log 2>&1

登入Moloch系统

访问http://molochhost:8005
user : admin
password : moloch

moloch

FAQ

  • Capture服务抓取的数据包文件存储在/data/moloch-nightly/raw/ 目录下,如果流量大的化可以mount大一点的硬盘
  • Elasticsearch由于是通过rpm包默认安装,数据文件存在路径/var/lib/elasticsearch/nodes/0/indices,可以修改elasticsearch.yml配置文件path to data,path to logs,重启服务生效
  • 镜像网卡开启混杂模式 ifconfig eth0 promisc
  • freeSpaceG = 5%存放PCAP文件的空间重复使用的临界空间值
  • 插入手动添加的PCAP文件 ${moloch_dir}/bin/moloch-capture -c [config_file] -r [pcap_file]
  • 无法启动molochcapture.service, ERROR - pcap open failed - Couldn't open file: '/data/moloch-nightly/raw/localhost-180207-00000038.pcap' with Permission denied (13). 原因是用户问题,chown nobody:root raw/ ,设置nobody用户就可以了
  • path.data path.logs设置了指定路径后,无法启动elasticsearch服务,原因是指定的路径权限是root,需要修改成elasticsearch用户和组

相关文章

网友评论

      本文标题:Moloch网络回溯分析系统

      本文链接:https://www.haomeiwen.com/subject/amjaaftx.html