moloch数据源是交换机的镜像端口,moloch 系统主要涉及三个组件 Capture,elasticsearch 和 Viewer Capture 用来抓取 流量会以pcap将格式存储在硬盘上,并存储相应的关系es中,Viewer提供web界面。
注意以下所有安装和命令都在root用户下做的。
注意以下所有安装和命令都在root用户下做的。
moloch简介
Moloch是一款由 AOL 开源,可大规模捕获IPv4数据包(PCAP)、索引和数据库系统这是一台配置较好的机器。所以我的Capture Machines和Elasticsearch Machines都放在一个上面, 强烈建议将这两个组件分开
根据官方文件,有两件事需要注意: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 有助于提高抓包性能首先,将您的系统环境升级到最新版本(有好有坏,也许软件包不支持最新,下次可能会避免更新程序)我个人版:Linux xxxxxx.centos 3.10.0-862.11.6.el7.x86_64查看系统版本的命令是:rpm -q centos-release结果:centos-release-7-5.1804.4.el7.centos.x86_64检查系统内核的命令是:uname -a更新命令:yum -y update
moloch安装
首先去官网下载最新版本。 https://molo.ch/#downloads 工具 我在这里选择是的Nightly 版本 新版本可能有新功能。
moloch安装命令wget https://files.molo.ch/builds/centos-7/moloch-nightly.x86_64.rpm ##下载moloch
rpm -ivh moloch-nightly.x86_64.rpm ##安装moloch
#安装程序前需要安装三个依赖程序包
yum install -y perl-libwww-perl
yum install -y perl-JSON
#然后才能正常安装此流量抓包工具。rpm -ivh moloch-nightly.x86_64.rpm
pfring 安装
moloch的Capture 默认使用libpcap 我们以后会用pfring 提高抓包性能?rpm -ivh moloch-nightly.x86_64.rpm
pfring 安装
? cd /etc/yum.repos.d/
? yum install -y wget epel-release? wget http://packages.ntop.org/centos/ntop.repo -O /etc/yum.repos.d/ntop.repo? yum erase zeromq3 (Do this once to make sure zeromq3 is not installed)? yum clean all
? yum update? yum install pfring
elasticsearch 安装配置 (请直接参考ELK 官网 ES7.6.2安装)es配置可选择moloch时候安装 也可自行安装 我选择自己安装。Es下载地址:https://www.elastic.co/downloads/elasticsearch我在这里下载的是:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.1.rpm首先是安装elasticsearch,命令是:rpm -ivh elasticsearch-5.6.2.rpm
在这里安装后还需要设置,先进入安装目录,如下图所示:
elasticsearch 进入设置目录
虚拟内存应该设置在这里。如果内存足够大,应该多设置,小的应该少设置。如下:
elasticsearch 内存设置
[root@admin elasticsearch]# vim elasticsearch.yml当硬盘使用空间达到80%时,硬盘经常用完。 es 就开始报警 ,我直接关掉了报警。cluster.routing.allocation.disk.threshold_enabled: falsenetwork.host: 0.0.0.0
编辑配置文件 config/elasticsearch.yml
http.port: 9200
这里还需要修改系统设置,因为ES内存和其他方面太多了,所以为了防止后续问题。
#注意 #之后的文字都是说明,没有#的是需要执行的命令或填写的内容。
第一步:修改 /etc/security/limits.conf 文件,增加配置,退出用户后重新登录生效
* soft nproc 65535
* soft nofile 65535
* hard nofile 65535
#修改/etc/security/limits.d/20-nproc.conf
* soft nproc 65535
root soft nproc unlimited
第三步:还需要修改虚拟内存的大小,修改/etc/sysctl.conf 文件最后添加以下内容 会永久生效
vm.max_map_count=262144
sysctl -p
ulimit -n 65536
第五步:永久增加防火墙端口,让其他机器可以访问
#添加
firewall-cmd --zone=public --add-port=9200/tcp --permanent #(--permanent永久生效,该参数重启后无效)
firewall-cmd --zone=public --add-port=8005/tcp --permanent #(这个是moloch的端口)
#重新载入
firewall-cmd --reload
所有设置完成检查启动状态,若未启动,则启动,查看命令:
● elasticsearch.service - Elasticsearch //注意前
Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: disabled)
Active: active (running) since 二 2018-09-25 15:13:32 CST; 1h 1min ago //注意这里,绿色running 代表启动状态 inactive (dead)代表没启动Docs: http://www.elastic.co
Main PID: 3340 (java)Tasks: 60
CGroup: /system.slice/elasticsearch.service├─3340 /bin/java -Xms1g -Xmx1g -XX: UseConcMarkSweepGC -XX:CMSInit...
└─3425 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x...
9月 25 15:13:32 xxxxxx.centos systemd[1]: Started Elasticsearch.
9月 25 15:13:32 xxxxxx.centos systemd[1]: Starting Elasticsearch...
假如没有启动,启动命令是:
systemctl start elasticsearch.service
然后访问:http://127.0.0.1:9200 看看有没有以下数据。
{
"name" : "WzEfPMg",
"cluster_name" : "shrimp-application",
"cluster_uuid" : "SwD0Y-VGQ_2BIqVuuny6Gg",
"version" :{
"build_flavor" : "default","build_type" : "rpm","build_hash" : "e36acdb",
"build_date" : "2018-09-13T22:18:07.696808Z","build_snapshot" : false,
"lucene_version" : "7.4.0","minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"},
"tagline" : "You Know, for Search"}#如果有这些数据,那么OK了。可以继续。可以继续。moloch设置
首先进入安装后的设置目录。
cd /data/moloch-nightly/bin/然后 运行 ./Configure 如下图所示:
moloch 设置 - 配置
第一
电脑知识