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是看不到原来日志,产生新的数据时才会上传。生产环境需要配置需要细化,以上配置只适用测试。