elk + suricata 实验环境详细安装教程

1、安装运行suricata,需要科学上网

sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get update
sudo apt-get install suricata

修改suricata配置 /etc/suricata/suricata.yaml

suricata -c /etc/suricata/suricata.yaml -i ens33

 2、安装elk(6.2.3)平台

docker pull sebp/elk:623

启动elk容器并挂载suricata日志目录,如果报虚拟内存错误([1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]),设置下交换内存:

root@ubuntu:~# echo "vm.max_map_count = 655360" >> /etc/sysctl.conf
root@ubuntu:~# sysctl -p
vm.max_map_count = 655360
docker run -it -m 4G -v /var/log/suricata:/mnt -p 5601:5601 -p 9200:9200 -p 5044:5044 sebp/elk:623

5601: Logstash

9200: Elasticsearch

5044: Kibana

访问http://ip:5601/ 出现图形界面则是安装成功:

3、关联elk和suricata

root@ubuntu:~# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                              NAMES
abf64c1b1c77        sebp/elk:623        "/usr/local/bin/star…"   2 hours ago         Up 2 hours          0.0.0.0:5044->5044/tcp, 0.0.0.0:5601->5601/tcp, 0.0.0.0:9200->9200/tcp, 9300/tcp   ecstatic_kare
root@ubuntu:~# docker exec -it abf64c1b1c77 bash
root@abf64c1b1c77:/# vim /etc/logstash/conf.d/logstash.conf
input {
  file {
    path => ["/mnt/eve.json"]
    codec => json
  }
}

filter {

}

output {
  elasticsearch {
    hosts => "127.0.0.1:9200"
index => "suricata-%{+YYYY.MM.dd}"
    user => "user"
    password => "password
"
  }
}

进入到容器结束uid为logstash进程,使用命令自己启动logstash:

root@abf64c1b1c77:/# /opt/logstash/bin/logstash -f /etc/logstash/conf.d/logstash.conf

下载下面三个json文件,导入第一个json的时候最好先访问下Sample Suricata Alert Dashboard 新导入的面板,好像是个bug第二次没有访问直接一起导入三个json的时候会出现错误。

https://aka.ms/networkwatchersuricatadashboard
https://aka.ms/networkwatchersuricatavisualization
https://aka.ms/networkwatchersuricatasavedsearch

导入第2、3个json时注意:

导入完成后访问Dashboard界面,选择Sample Suricata Alert Dashboard

参考:

  http://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz

  https://blog.csdn.net/xiaomaiaidandan/article/details/81194371

  实验环境搭建完毕,文中一些步骤可以使用其它方式代替。Logstash用来传输日志,Elasticsearch分析日志,Kibana展示界面,其中下载的三个json本质是增加自己写的一些filter来过滤数据。Logstash是实时传输日志的,不会将原有的日志上传,所以suricata没有产生攻击日志的时候Kibana是看不到原来日志,产生新的数据时才会上传。生产环境需要配置需要细化,以上配置只适用测试。

posted @ 2019-01-08 18:59  破冰Lab-Cookun  阅读(2784)  评论(2编辑  收藏  举报