Suricata+ELK 8.4.3(docker)可视化

这篇具有很好参考价值的文章主要介绍了Suricata+ELK 8.4.3(docker)可视化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Suricata+ELK 8.4.3(docker)可视化

主机1安装elk

主机2安装suricata+filebeat

主机1、主机2均为Ubuntu18.04

1 安装elk

1.1 准备

准备docker镜像

docker pull logstash:8.4.3
docker pull kibana:8.4.3
docker pull elasticsearch:8.4.3

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

创建文件夹用于docker映射

mkdir -p /data/elk/{es,logstash,kibana}

编辑文件/etc/sysctl.conf,在文件最后一行添加

vm.max_map_count=262144

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

执行命令令配置生效。该配置限制了一个进程可以拥有的虚拟内存区域的数量,如果太小会导致容器无法启动,所以提前进行配置。elasticsearch运行要求该值最小为262144。

sysctl -p

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

1.2 生成elasticsearch密码

创建文件夹/data/elk/es/data

修改文件夹属主和属组为1000。在docker容器中,elasticsearch运行用户为1000;如果系统中已存在uid=1000的用户,可以将文件夹权限给到777。

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

运行elasticsearch,使用-v参数指定文件夹映射关系。

docker run -d --name es -p 9200:9200 -p 9300:9300 -v /data/elk/es/data:/usr/share/elasticsearch/data elasticsearch:8.4.3

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

等容器内服务启动后,使用https访问目标主机的9200端口,发现要求输入用户名跟密码。

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

在8.4.3版本的elasticsearch中,服务首次运行时会生成随机密码和随机enrollment token,如下图所示。

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

但是由于我们使用了-d参数,无法看到回显信息,所以需要对密码进行重置。

进入docker中的/usr/share/elasticsearch/bin目录,默认情况下直接docker exec -it es bash拿到的是elasticsearch用户,且在/usr/share/elasticsearch路径下,所以直接进入bin目录即可。

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

调用elasticsearch-setup-passwords设置内置用户的密码,interactive参数表示在交互式模式下手动指定密码。为了方便此处将所有密码都设置为123456

elasticsearch-setup-passwords interactive

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

使用刚才设置的密码成功访问elasticsearch服务。

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

而刚才生成的密码信息也已经存储到了映射的/data/elk/es/data中。

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

停止并删除刚才创建的elasticsearch容器

1.3 运行elk

写docker-compose.yml文件,创建docker network,指定elasticseach的IP地址为172.16.200.10,kibana的地址为172.16.200.20,logstash的地址为172.16.200.30,指定kibana和logstash的配置文件映射

version: '3'

services:
  elasticsearch:
    container_name: es
    image: elasticsearch:8.4.3
    restart: "always"
    ports:
      - "9200:9200"
    expose:
      - "9300"
    volumes:
      - "/data/elk/es/data:/usr/share/elasticsearch/data"
    environment:
      discovery.type: single-node

    networks:
      elastic:
        ipv4_address: 172.16.200.10

  kibana:
    container_name: kibana
    image: kibana:8.4.3
    restart: "always"
    ports:
      - "5601:5601"
    volumes:
      - "/data/elk/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml"
    networks:
      elastic:
        ipv4_address: 172.16.200.20
    depends_on:
      - elasticsearch

  logstash:
    container_name: logstash
    image: logstash:8.4.3
    restart: "always"
    expose:
      - "5044"
    volumes:
      - "/data/elk/logstash/logstash.yml:/usr/share/logstash/logstash.yml"
    depends_on:
      - elasticsearch
    networks:
      elastic:
        ipv4_address: 172.16.200.30

networks:
  elk:
    driver: bridge
    ipam:
      config:
        - subnet: "172.16.200.0/24"

创建kibana的配置文件/data/elk/kibana/kibana.yml,其中 elasticsearch.hostselasticsearch.password根据实际情况填写,elasticsearch.password处使用之前设置的kibana_system用户的密码,非elastic用户的密码。

server.name: kibana
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://172.16.200.10:9200"]
elasticsearch.username: "kibana_system"
elasticsearch.password: "123456"
xpack.monitoring.ui.container.elasticsearch.enabled: true

创建logstash的配置文件/data/elk/logstash/logstash.yml,修改同理

http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://172.16.200.10:9200" ]
xpack.monitoring.elasticsearch.username: "logstash_system"
xpack.monitoring.elasticsearch.password: "123456"

/data/elk/es/data/elk/kibana/data/elk/logstash的文件属主和属组都修改为1000

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

启动ELK

docker-compose up -d

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

使用http访问9200端口,使用elastic用户的密码进行认证

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

使用http访问5601端口,使用elastic用户的密码进行认证

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

这两个随便点都可以

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

到这里,elk配置暂告一段落

2 安装suricata

在主机2上安装suricata

使用官方文档中的快速安装方法

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

下载suricata规则

suricata-update

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

检查suricata运行状态,为exited

systemctl status suricata

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

修改suricata的配置文件/etc/suricata/suricata.yaml,确认网卡名称与本机相同。

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

重启suricata服务,为running状态

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

在本次安装中,只使用了suricata的默认规则,可以根据实际需求安装其他规则包。

/var/log/suricata/eve.json中可以看到记录的事件

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

3 安装filebeat

参考官方文档

下载deb包

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.4.3-amd64.deb

安装deb包

sudo dpkg -i filebeat-8.4.3-amd64.deb

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

修改配置文件/etc/filebeat/filebeat.yml,直接将原来的filebeat.yml备份,然后重新写一个。filebeat.config.modules是为了联动suricata。由于elasticsearch没有启用TLS,所以不需要配置ssl.ca_trusted_fingerprint

output.elasticsearch:
  hosts: ["http://10.2.4.13:9200"]
  username: "elastic"
  password: "123456"
  # If using Elasticsearch's default certificate
  # ssl.ca_trusted_fingerprint: "<es cert fingerprint>"
setup.kibana:
  host: "http://10.2.4.13:5601"
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

启用filebeat的suricata模块

sudo filebeat modules enable suricata

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

/etc/filebeat/modules.d/suricata.yml文件中enabled的值改为true

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

执行命令将suricata的dashboard添加到kibana中

filebeat setup

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

登录kibana,在Dashboard中看到filebeat添加的模板

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

将filebeat开机自启,并启动filebeat

systemctl enable filebeat
systemctl start filebeat

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

4 最终效果

随便找个工具攻击一下安装suricata的主机,生成数据

打开Dashboard中的任意模板,以Events Overview为例,看到如下效果

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

Alert Overview的效果如下

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

Discover模块也能够看到suricata传过来的事件信息。

modules.d/suricata.yml设置,随便写点,docker,elk,elasticsearch

由于suricata的规则包比较粗略,所以记录了一些不必要的内容,所以后续还是要做suricata规则上的优化。

5 参考链接

https://www.osgeo.cn/suricata/quickstart.html#installation

https://www.elastic.co/guide/en/beats/filebeat/current/setup-repositories.html

https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-installation-configuration.html文章来源地址https://www.toymoban.com/news/detail-824111.html

到了这里,关于Suricata+ELK 8.4.3(docker)可视化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • suricata tenant

    在Suricata代码中,tenant_id是一个用于标识网络流量的租户或实体的字段。它用于区分不同的网络流量来源或所有者。 Tenants are identified by their selector; a selector can be a VLAN, interface/device, or from a pcap file (“direct”). 以下内容来自GPT: tenant_id字段的含义和用法可以根据具体的上下文而

    2024年02月09日
    浏览(23)
  • suricata初体验+wireshark流量分析

    目录 一、suricata介绍 1.下载安装 2.如何使用-攻击模拟 二、wireshark流量分析 1.wireshark过滤器使用  2.wireshark其他使用 通过官网下载suricata,根据官网步骤进行安装。    以上配置完毕后,重启suricata。  进入wazuh匹配文件,需将suricata加入,使wazuh代理可以读取suricata日志文件。

    2024年02月11日
    浏览(31)
  • 【IDS场景模拟】suricata检测HTTPS流量

    针对HTTPS流量来说,毕竟不是攻击流量,而是互联网通信的标配,所以服务器端是可以解密的,解密后变成明文HTTP协议,就可以很好地实现入侵检测了。所以,要处理HTTPS流量,最关键的是,先解密HTTPS数据包,才对其进行入侵检测,通常的解决方案有两种:一是直接在代码层

    2024年04月26日
    浏览(26)
  • 基于Ubuntu坏境下的Suricata坏境搭建

    目录 Suricata环境安装 第一步、在 Ubuntu 端点安装 Suricata 1、加入Suricata源 2、更新安装包 3、下载SuricataSuricata 第二步、下载并提取新兴威胁 Suricata 规则集 1、在tmp文件夹下载 Suricata 规则集 如果发现未安装curl,使用apt安装即可: 2、解压并将安装包移动到/etc/suricata/rules/文件夹

    2024年02月10日
    浏览(26)
  • 在CentOS 7上安装和使用Suricata的详细步骤

    在CentOS 7上安装和使用Suricata的步骤如下: 更新系统: 运行以下命令以确保系统是最新的: 安装依赖项: 运行以下命令以安装Suricata所需的依赖项: 下载Suricata: 运行以下命令以下载Suricata的源代码: 解压源代码: 运行以下命令以解压下载的源代码包: 编译和安装Suricata:

    2024年02月16日
    浏览(26)
  • ELK(Elasticsearch、Kibana、Logstash)以及向ES导入mysql数据库数据或CSV文件数据,创建索引和可视化数据

    地址:Past Releases of Elastic Stack Software | Elastic 在Products和version处分别选择需要下载的产品和版本,E(elasticsearch)L(logstash)K(kibana)三者版本必须相同 将下载好的elk分别解压到相同路径下 本文中elasticsearch=E=ES=es;L=logstash;K=kibana 一般情况下使用默认配置即可,下面对我的

    2024年02月15日
    浏览(53)
  • docker 可视化

    目录 一、Docker常见的几款web工具: 二、什么是Portainer? 三、安装 下载镜像 运行Portainer(单机版) 访问 http://localhost:9000/ 设置管理员密码 一、Docker常见的几款web工具: portainer(常用) docker UI shipyard 二、什么是Portainer? Portainer是Docker的图形化管理工具,提供状态显示面板、应用

    2024年02月05日
    浏览(31)
  • Docker容器可视化

    Docker容器中运行程序,有时候需要显示容器中的图像,或在容器中运行一些图形界面的软件、调用摄像头等,而Docker采用的是命令行的工作模式,Docker容器可以采用文件挂载或者网络通信的方式中的输出图像等方式在宿主屏幕上显示。 系统信息 Deepin20.7 Docker 19.03.8 Docker-comp

    2024年02月08日
    浏览(32)
  • docker可视化工具

    安装Portainer 官方安装说明:https://www.portainer.io/installation/ 登录和使用Portainer 用浏览器访问: http://localhost:9000

    2024年02月11日
    浏览(35)
  • 12. Docker可视化工具

    目录 1、前言 2、Docker UI 2.1、部署Docker UI 2.2、管理容器 3、Portainer 3.1、部署Portainer 3.2、管理容器 3.3、添加远程Docker 4、Shipyard Docker 提供了命令行工具来管理 Docker 的镜像和运行 Docker 的容器。我们也可以使用图形工具来管理 Docker。目前,主流的 Docker 图形工具有 Docker Ul、Po

    2024年02月12日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包