SIEM/Log Management Triển khai và cấu hình Wazuh cluster cho hệ thống SIEM ( Wazuh + Vector + Opensearch )

Mục lục
I. Giới thiệu
1. Wazuh
2. Wazuh Cluster
3. Mục đích triển khai
II. Các bước triển khai
III. Cấu hình thêm (Optional)
IV. Kết luận

I. Giới thiệu
1. Wazuh
Wazuh:
Wazuh là nền tảng giám sát bảo mật và quản lý sự kiện mã nguồn mở, cung cấp HIDS để phát hiện xâm nhập, giám sát thay đổi file, thu thập và phân tích log tập trung, quét lỗ hổng phần mềm và hệ điều hành, hỗ trợ tuân thủ các tiêu chuẩn bảo mật như PCI DSS, HIPAA, GDPR, đồng thời tích hợp dễ dàng với Elasticsearch/OpenSearch và dashboard để trực quan hóa dữ liệu.
2. Wazuh cluster

1764417351406.png

Chức năng chính:
  • Wazuh Cluster cho phép đồng bộ trạng thái agent, rule và policy giữa các node, cân bằng tải log từ agent, chịu lỗi khi một node gặp sự cố, bảo mật giao tiếp bằng TLS và mở rộng linh hoạt mà không gián đoạn hoạt động

Cấu trúc tổng quan:
  • Cluster gồm một master node chịu trách nhiệm điều phối đồng bộ trạng thái và nhiều worker node xử lý agent, nhận dữ liệu từ master, trong khi agent kết nối đến bất kỳ node nào khả dụng để gửi log và nhận rule

Hoạt động cơ bản:
  • Agent kết nối node worker khả dụng trong danh sách, master đồng bộ trạng thái đến các worker, agent gửi log đến node worker và dữ liệu được chuyển tiếp sang Elasticsearch/OpenSearch, khi một node offline agent tự động kết nối node khác, và node mới tham gia sẽ đồng bộ trạng thái từ master

3. Mục tiêu triển khai
  • Triển khai cluster để đảm bảo High Availability (HA) cho hệ thống giám sát bảo mật.
  • Cấu hình tập trung giúp quản lý dễ dàng và ổn định hơn
II. Các bước triển khai
Cài đặt wazuh theo các bước trên document chính thức của wazuh
apt-get install gnupg apt-transport-https
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
apt-get -y install wazuh-manager

1764417510172.png


Tiến hành dùng lệnh

openssl rand -hex 16
1764417485891.png

Giải thích:
  • Tạo một khóa duy nhất có độ dài 32 ký tự, và phải giống nhau trên tất cả các node trong cụm (cluster)
Máy Master
Tiến hành vào /var/ossec/etc/ossec.conf để cấu hình cluster
1764417518884.png

  • <name>: Tên được gán cho cụm (cluster). Đây là tên định danh cho toàn bộ cluster.
  • <node_name>: Tên của node hiện tại. Mỗi node trong cluster cần có tên riêng.
  • <key>: Một khóa duy nhất dài 32 ký tự, phải giống nhau trên tất cả các node trong cluster. Khóa bạn vừa tạo
  • <node_type>: Loại node, có thể là master (quản lý đồng bộ) hoặc worker (xử lý log từ agent).
  • <port>: Cổng mà node sử dụng để giao tiếp trong cluster.
  • <bind_addr>: Địa chỉ IP mà node lắng nghe kết nối. Có thể dùng 0.0.0.0 để lắng nghe tất cả các IP.
  • <node>: Địa chỉ của master node bên trong khối <nodes>;. Phải được khai báo trên tất cả các node, kể cả master node. Địa chỉ có thể là IP hoặc DNS.
  • <hidden>: Bật/tắt việc hiển thị thông tin về cluster khi có alert được tạo ra.
  • <disabled>: Chỉ định node có được kích hoạt trong cluster hay không

Sử dụng lệnh
/var/ossec/bin/cluster_control -l
Kiểm tra cluster đã hoạt động chưa
1764417535968.png


Máy worker
Tiến hành vào /var/ossec/etc/ossec.conf để cấu hình
1764417553591.png

  • <name>: Tên được gán cho cụm (cluster). Đây là tên định danh cho toàn bộ cluster.
  • <node_name>: Tên của node hiện tại. Mỗi node trong cluster cần có tên riêng.
  • <key>: Một khóa duy nhất dài 32 ký tự, phải giống nhau trên tất cả các node trong cluster. Khóa bạn vừa tạo
  • <node_type>: Loại node, có thể là master (quản lý đồng bộ) hoặc worker (xử lý log từ agent).
  • <port>: Cổng mà node sử dụng để giao tiếp trong cluster.
  • <bind_addr>: Địa chỉ IP mà node lắng nghe kết nối. Có thể dùng 0.0.0.0 để lắng nghe tất cả các IP.
  • <node>: Địa chỉ của master node bên trong khối <nodes>;. Phải được khai báo trên tất cả các node, kể cả master node. Địa chỉ có thể là IP hoặc DNS.
  • <hidden>: Bật/tắt việc hiển thị thông tin về cluster khi có alert được tạo ra.
  • <disabled>: Chỉ định node có được kích hoạt trong cluster hay không
Sau khi cấu hình tiến hành restart service
Trở về máy master, tiến hành dùng lệnh kiểm tra và thấy worker đã được đăng kí

1764417575420.png

Tiến hành tạo 1 group trên master
1764417582768.png

Trên máy Worker kiêm tra và thấy worker đã nhận được group mà master tạo
1764417591609.png


III. Cấu hình thêm (Optional)
Do yêu cầu không cần lưu trữ log trên wazuh, các log được lưu trữ trên các node data opensearch
=> Tắt các hoạt động lưu log và rotation trên wazuh
Tiến hành vào phần /var/ossec/etc/internal_options.conf
1764418387408.png

monitord.rotate_log=0 nghĩa là hệ thống không xoay vòng log hằng ngày, nên toàn bộ dữ liệu log (như ossec.log hoặc ossec.json) sẽ được ghi liên tục vào cùng một file mà không tạo file mới mỗi ngày. Điều này có thể khiến log trở nên rất lớn theo thời gian và khó quản lý
monitord.keep_log_days=1 quy định rằng nếu tính năng xoay log được bật, hệ thống sẽ chỉ giữ lại log cũ trong 1 ngày rồi tự động xóa để tiết kiệm dung lượng lưu trữ. Tuy nhiên, do xoay log đang bị tắt (rotate_log=0), nên tùy chọn này không có hiệu lực trong cấu hình hiện tại
Sau đó qua máy worker kiểm tra và thấy config đã được apply
1764419653319.png
 
Back
Top