Cài đặt và cấu hình hệ thống WAZUH

  1. Kiến trúc
  2. WAZUH INDEXER
    1. Certificates creation
    2. Node installation
    3. Cluster initialization
  3. WAZUH MANAGER
    1. Wazuh server node installation
  4. WAZUH DASHBOARD

intro

Do đặc thù công việc nên từ một người làm Pentest tôi phải chuyển sang làm SOC và đảm nhiệm việc xây dựng hệ thống SIEM. Mặc dù thời điểm hiện tại có rất nhiều sản phẩm thương mại đã hoàn thiện, chỉ chờ doanh nghiệp mua về và vận hành thôi. Tuy nhiên chi phí cho các sản phẩm này là một trở ngại đối với các doanh nghiệp vừa và nhỏ (nó đắt :laughing:).

Vậy nên vừa để có thêm kiến thức và để tiết kiệm chi phí, tôi sẽ tự xây dựng hệ thống SIEM dựa trên open source. Một trong những open source mạnh mẽ nhất (hoặc là do tôi nghĩ thế) là WAZUH

Wazuh là một nền tảng bảo mật mã nguồn mở và miễn phí, hợp nhất các khả năng của XDR và ​​SIEM, không chỉ cho phép các công ty phát hiện các mối đe dọa tinh vi mà còn có thể giúp ngăn ngừa vi phạm và rò rỉ dữ liệu xảy ra.

Hiện tại thì tôi đang triển khai nó trên môi trường thực tế, vậy nên chắc chắn là nó hoạt động.

Kiến trúc

kiến trúc

Đọc thêm về cấu trúc tại đây hoặc là đây

Hiện tại thì WAZUH đang ở phiên bản 4.4 vậy nên tất cả cài đặt và cấu hình trong bài này cũng sẽ ở phiên bản 4.4, trong trường hợp có các cập nhật mới, chỉ cần thay đổi tên phiên bản (nếu) xuất hiện trong các link cài đặt.

WAZUH INDEXER

Để không gặp các lỗi trong quá trình cài đặt, phải sử dụng quyền root

Certificates creation

Tải tool tạo cert và file config của wazuh về

curl -sO https://packages.wazuh.com/4.4/wazuh-certs-tool.sh
curl -sO https://packages.wazuh.com/4.4/config.yml

Vào config.yml

nano config.yml

Thay đổi các giá trị “name” và “ip” thành tên là ip của server (Trường hợp tách wazuh-indexer và wazuh-manager thành 2 máy chủ vật lý thì phải đặt đúng ip của từng máy chủ).

nodes:
  # Wazuh indexer nodes
  indexer:
    - name: dc-indexer
      ip: 10.10.24.1
    #- name: node-2
    #  ip: <indexer-node-ip>
    #- name: node-3
    #  ip: <indexer-node-ip>

  # Wazuh server nodes
  # If there is more than one Wazuh server
  # node, each one must have a node_type
  server:
    - name: dc-manager
      ip: 10.10.24.1
    #  node_type: master
    #- name: wazuh-2
    #  ip: <wazuh-manager-ip>
    #  node_type: worker
    #- name: wazuh-3
    #  ip: <wazuh-manager-ip>
    #  node_type: worker

  # Wazuh dashboard nodes
  dashboard:
    - name: dc-dashboard
      ip: 10.10.24.1

Chạy wazuh-certs-tool.sh để tạo cert

bash ./wazuh-certs-tool.sh -A
tar -cvf ./wazuh-certificates.tar -C ./wazuh-certificates/ .

Node installation

Cài đặt các gói còn thiếu

apt-get install debconf adduser procps
apt-get install gnupg apt-transport-https

Tạo wazuh repository

curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/wazuh.gpg --import && chmod 644 /usr/share/keyrings/wazuh.gpg
echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" | tee -a /etc/apt/sources.list.d/wazuh.list
apt-get update

Cài đặt wazuh-indexer

apt-get -y install wazuh-indexer

Cấu hình các thông số trong opensearch

nano /etc/wazuh-indexer/opensearch.yml
network.host: 10.10.24.1
node.name: dc-indexer
cluster.initial_master_nodes:
- "dc-indexer"
.
discovery.seed_hosts:		# bỏ dấu “#” ở đầu dòng 
  - "10.10.24.1"			# bỏ dấu “#” ở đầu dòng
.
path.logs: /var/log/wazuh-indexer
bootstrap.memory_lock: true
.
plugins.security.nodes_dn:
- "CN=dc-indexer,OU=Wazuh,O=Wazuh,L=California,C=US"
#- "CN=node-2,OU=Wazuh,O=Wazuh,L=California,C=US"

Tạo cert. Đặt tên node name giống tên node name cấu hình trong file opensearch.yml

NODE_NAME=dc-indexer
mkdir /etc/wazuh-indexer/certs
tar -xf ./wazuh-certificates.tar -C /etc/wazuh-indexer/certs/ ./$NODE_NAME.pem ./$NODE_NAME-key.pem ./admin.pem ./admin-key.pem ./root-ca.pem
mv -n /etc/wazuh-indexer/certs/$NODE_NAME.pem /etc/wazuh-indexer/certs/indexer.pem
mv -n /etc/wazuh-indexer/certs/$NODE_NAME-key.pem /etc/wazuh-indexer/certs/indexer-key.pem
chmod 500 /etc/wazuh-indexer/certs
chmod 400 /etc/wazuh-indexer/certs/*
chown -R wazuh-indexer:wazuh-indexer /etc/wazuh-indexer/certs

Chỉnh sửa giới hạn tài nguyên hệ thống

nano /usr/lib/systemd/system/wazuh-indexer.service
[Service]
LimitMEMLOCK=infinity	# Thêm dòng này 

Tăng kích thước không gian heap

nano /etc/wazuh-indexer/jvm.options

Tài liệu Wazuh khuyến cáo không gian heap sử dụng tối thiểu bằng nửa tổng dung lượng RAM hiện có. Ví dụ RAM của tôi hiện có là 8Gb thì tôi sẽ sửa 1 thành 4

# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space

-Xms4g
-Xmx4g

Bật và chạy dịch vụ

systemctl daemon-reload
systemctl enable wazuh-indexer
systemctl start wazuh-indexer

Cluster initialization

Chạy file /usr/share/wazuh-indexer/bin/indexer-security-init.sh trên các node để tải lên thông tin các cert đã tạo

/usr/share/wazuh-indexer/bin/indexer-security-init.sh

Kiểm tra tất cả các cài đặt đã thành công và dịch vụ không có lỗi (Lưu ý: tắt proxy trước khi thực hiện lệnh curl)

curl -k -u admin:admin https://10.10.24.1:9200

Kết quả giống bên dưới là thành công

{
  "name" : "dc-indexer",
  "cluster_name" : "wazuh-cluster",
  "cluster_uuid" : "bMz0BKdlRVui5jF-mlt6yg",
  "version" : {
    "number" : "7.10.2",
    "build_type" : "rpm",
    "build_hash" : "f2f809ea280ffba217451da894a5899f1cec02ab",
    "build_date" : "2022-12-12T22:17:42.341124910Z",
    "build_snapshot" : false,
    "lucene_version" : "8.10.1",
    "minimum_wire_compatibility_version" : "7.10.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "The OpenSearch Project: https://opensearch.org/"
}

WAZUH MANAGER

Wazuh server node installation

  • Cài đặt wazuh-manager
apt-get -y install wazuh-manager

Chạy wazuh-manager

systemctl daemon-reload
systemctl enable wazuh-manager
systemctl start wazuh-manager

Kiểm tra trạng thái wazuh-manager

systemctl status wazuh-manager
  • Cài đặt filebeat
apt-get -y install filebeat

Tải file cấu hình filebeat

curl -so /etc/filebeat/filebeat.yml https://packages.wazuh.com/4.4/tpl/wazuh/filebeat/filebeat.yml

Sửa cấu hình filebeat với hosts là ip của indexer node

nano /etc/filebeat/filebeat.yml
hosts: ["10.10.24.1:9200"]

Tạo keystore

filebeat keystore create
echo admin | filebeat keystore add username --stdin --force
echo admin | filebeat keystore add password --stdin --force

Tải template cho indexer

curl -so /etc/filebeat/wazuh-template.json https://raw.githubusercontent.com/wazuh/wazuh/4.4/extensions/elasticsearch/7.x/wazuh-template.json
chmod go+r /etc/filebeat/wazuh-template.json

Cài đặt các module của wazuh cho filebeat

curl -s https://packages.wazuh.com/4.x/filebeat/wazuh-filebeat-0.2.tar.gz | tar -xvz -C /usr/share/filebeat/module

Tạo cert cho filebeat, đặt tên NODE_NAME giống với tên của server trong file config.yml

NODE_NAME=dc-manager
mkdir /etc/filebeat/certs
tar -xf ./wazuh-certificates.tar -C /etc/filebeat/certs/ ./$NODE_NAME.pem ./$NODE_NAME-key.pem ./root-ca.pem
mv -n /etc/filebeat/certs/$NODE_NAME.pem /etc/filebeat/certs/filebeat.pem
mv -n /etc/filebeat/certs/$NODE_NAME-key.pem /etc/filebeat/certs/filebeat-key.pem
chmod 500 /etc/filebeat/certs
chmod 400 /etc/filebeat/certs/*
chown -R root:root /etc/filebeat/certs

Chạy filebeat

systemctl daemon-reload
systemctl enable filebeat
systemctl start filebeat

Kiểm tra trạng thái filebeat

filebeat test output

Kết quả giống bên dưới là thành công

elasticsearch: https://10.10.24.1:9200...
  parse url... OK
  connection...
    parse host... OK
    dns lookup... OK
    addresses: 127.0.0.1
    dial up... OK
  TLS...
    security: server's certificate chain verification is enabled
    handshake... OK
    TLS version: TLSv1.3
    dial up... OK
  talk to server... OK
  version: 7.10.2

WAZUH DASHBOARD

Tải các package còn thiếu

apt-get install debhelper tar curl libcap2-bin

Tải wazuh-dashboard

apt-get -y install wazuh-dashboard

Sửa cấu hình dashboard

nano /etc/wazuh-dashboard/opensearch_dashboards.yml
server.host: 10.10.24.1
server.port: 443
opensearch.hosts: https://10.10.24.1:9200

Tạo cert cho dashboard, đặt tên NODE_NAME giống với tên của dashboard trong file config.yml

NODE_NAME=dc-dashboard
mkdir /etc/wazuh-dashboard/certs
tar -xf ./wazuh-certificates.tar -C /etc/wazuh-dashboard/certs/ ./$NODE_NAME.pem ./$NODE_NAME-key.pem ./root-ca.pem
mv -n /etc/wazuh-dashboard/certs/$NODE_NAME.pem /etc/wazuh-dashboard/certs/dashboard.pem
mv -n /etc/wazuh-dashboard/certs/$NODE_NAME-key.pem /etc/wazuh-dashboard/certs/dashboard-key.pem
chmod 500 /etc/wazuh-dashboard/certs
chmod 400 /etc/wazuh-dashboard/certs/*
chown -R wazuh-dashboard:wazuh-dashboard /etc/wazuh-dashboard/certs

Chạy dashboard

systemctl daemon-reload
systemctl enable wazuh-dashboard
systemctl start wazuh-dashboard

Truy cập vào dashboard trên web theo địa chỉ https://10.10.24.1 với username và password mặc định admin:admin

Đổi password mặc định của tài khoản admin

curl -so wazuh-passwords-tool.sh https://packages.wazuh.com/4.4/wazuh-passwords-tool.sh
bash wazuh-passwords-tool.sh -u admin -p <mật khẩu>

Lưu ý: Nếu hệ thống có proxy (internet gateway) thì phải đặt proxy trước khi cài đặt

  • Set proxy cho apt để tải các package trên trang chủ Ubuntu

nano /etc/apt/apt.conf

Acquire::https::Proxy "http://ip:port";

Acquire::http::Proxy "http://ip:port";

Lưu file và login lại vào account

  • Set proxy cho server

nano /etc/environment

Thêm vào file các dòng sau:

HTTP_PROXY="http://ip:port"

HTTPS_PROXY="http://ip:port"

NO_PROXY="10.10.24.1,localhost,127.0.0.1,::1"

Lưu file và login lại vào account


© 2024. All rights reserved.