美文网首页
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