docker composeで「Wazuh Server」を構築する

docker composeで「Wazuh Server」を構築する

docker composerを利用してOSSのセキュリティ監査ツールである「Wazuh Server」を構築するまでの手順を記述してます。

環境

  • OS ubuntu21.04
  • docker 20.10.6
  • docker-compose 1.28.6

事前準備

事前にdockerや必要ツールをインストールしておきます。

curlとgitのインストール

sudo apt install curl git

dockerインストール

curl -sSL https://get.docker.com/ | sh
systemctl start docker
sudo usermod -aG docker ${USER}

docker-composeインストール

sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

インストールが終われば、一旦セッションを抜けます。

vm.max_map_countも設定しておきます。

sudo sysctl -w vm.max_map_count=262144

docker-compos.yml作成

gitから入手可能です。

git clone https://github.com/wazuh/wazuh-docker.git -b v4.1.2 --depth=1

移動します。

cd wazuh-docker

docker-compos.ymlの中は、以下のようになってます。

# Wazuh App Copyright (C) 2021 Wazuh Inc. (License GPLv2)
version: '3.7'

services:
  wazuh:
    image: wazuh/wazuh-odfe:4.1.2
    hostname: wazuh-manager
    restart: always
    ports:
      - "1514:1514"
      - "1515:1515"
      - "514:514/udp"
      - "55000:55000"
    environment:
      - ELASTICSEARCH_URL=https://elasticsearch:9200
      - ELASTIC_USERNAME=admin
      - ELASTIC_PASSWORD=admin
      - FILEBEAT_SSL_VERIFICATION_MODE=none
    volumes:
      - ossec_api_configuration:/var/ossec/api/configuration
      - ossec_etc:/var/ossec/etc
      - ossec_logs:/var/ossec/logs
      - ossec_queue:/var/ossec/queue
      - ossec_var_multigroups:/var/ossec/var/multigroups
      - ossec_integrations:/var/ossec/integrations
      - ossec_active_response:/var/ossec/active-response/bin
      - ossec_agentless:/var/ossec/agentless
      - ossec_wodles:/var/ossec/wodles
      - filebeat_etc:/etc/filebeat
      - filebeat_var:/var/lib/filebeat

  elasticsearch:
    image: amazon/opendistro-for-elasticsearch:1.12.0
    hostname: elasticsearch
    restart: always
    ports:
      - "9200:9200"
    environment:
      - discovery.type=single-node
      - cluster.name=wazuh-cluster
      - network.host=0.0.0.0
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - bootstrap.memory_lock=true
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536

  kibana:
    image: wazuh/wazuh-kibana-odfe:4.1.2
    hostname: kibana
    restart: always
    ports:
      - 443:5601
    environment:
      - ELASTICSEARCH_USERNAME=admin
      - ELASTICSEARCH_PASSWORD=admin
      - SERVER_SSL_ENABLED=true
      - SERVER_SSL_CERTIFICATE=/usr/share/kibana/config/opendistroforelasticsearch.example.org.cert
      - SERVER_SSL_KEY=/usr/share/kibana/config/opendistroforelasticsearch.example.org.key

    depends_on:
      - elasticsearch
    links:
      - elasticsearch:elasticsearch
      - wazuh:wazuh

volumes:
  ossec_api_configuration:
  ossec_etc:
  ossec_logs:
  ossec_queue:
  ossec_var_multigroups:
  ossec_integrations:
  ossec_active_response:
  ossec_agentless:
  ossec_wodles:
  filebeat_etc:
  filebeat_var:

Wazuh Server起動

以下のコマンドを実行して「Wazuh Server」を起動します。

docker-compose up -d

ブラウザから https://プライベートIP or サーバーアドレスにアクセスします。

ログイン画面が表示されます。

admin / admin でログイン可能です。

以下の画面が表示されれば、構築は完了です。