SIEM/Log Management Cài đặt OpenSearch & OpenSearch Dashboards

I. Yêu cầu và Setup ban đầu
Dựng SIEM engine bằng OpenSearch 2.12.0 trên Docker. Mục tiêu là thu nhập log tập trung cho SOC Lab.
  • Môi trường: Ubuntu 20.04 (VMware)
  • Cấu hình: Ít nhất 4GB RAM ( dưới mức này OpenSearch cực kì dễ treo).
  • Dependency: Docker Engine & Docker Compose.
II. Triển khai & cấu hình chi tiết
1. Hardening hệ điều hành
Trước khi đổ dữ liệu vào, hệ thống cần được tinh chỉnh để tránh tình trạng container (văng) liên tục hoặc sai lệnh thời gian log.

  • Tăng giới hạn ảo: OpenSearch yêu cầu mức mmap lớn để index dữ liệu.
sudo sysctl -w vm.max_map_count=262144
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf

  • Đồng bộ thời gian (NTP): Rất quan trọng trong SOC để điều tra số (Forensics). Đảm bảo máy ảo đã đồng bộ giờ:
sudo apt install ntp -y
timedatectl set-ntp on
  • Hostname & DNS: Đảm bảo /etc/hosts đã định danh đúng IP máy ảo để các dịch vụ trong cụm nhận diện nhau qua DNS nội bộ.
1777480449535.png

Hình 1: Xác nhận thông số Kernel và trạng thái đồng bộ thời gian trên Ubuntu trước khi triển khai.​

2. Triển khai bằng Docker Compose (V2.12)

Điểm gây ức chế nhất ở bản 2.12 là cơ chế Strong Password Policy. Nếu đặt mật khẩu thiếu ký tự đặc biệt hoặc quá ngắn (như admin123), Security Plugin sẽ chặn startup ngay lập tức.
Cấu trúc docker-compose.yml tối ưu:


version: '3'services:
opensearch-node:
image: opensearchproject/opensearch:2.12.0
container_name: opensearch-node
environment:
- cluster.name=uef-soc-cluster
- node.name=os-node1
- discovery.type=single-node
- bootstrap.memory_lock=true
- "OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g"
- OPENSEARCH_INITIAL_ADMIN_PASSWORD=Cyber_Secure_@2026!
ulimits:
memlock: {soft: -1, hard: -1}
nofile: {soft: 65536, hard: 65536}
ports:
- 9200:9200
volumes:
- os-data:/usr/share/opensearch/data
networks:
- soc-net
opensearch-dashboards:
image: opensearchproject/opensearch-dashboards:2.12.0
container_name: opensearch-dashboards
ports:
- 5601:5601
environment:
OPENSEARCH_HOSTS: '["https://opensearch-node:9200"]'
OPENSEARCH_USERNAME: admin
OPENSEARCH_PASSWORD: Cyber_Secure_@2026!
networks:
- soc-net
volumes:
os-data:
networks:
soc-net:
1777479037641.png

Hình 2: Kiểm tra trạng thái thực thi bằng lệnh sudo docker ps. Cả node xử lý dữ liệu và Dashboard đều đã ở trạng thái Up ổn định.​

3. Xác minh Cluster Health
Sau khi chạy sudo docker-compose up -d, cần đợi khoảng 1 phút để hệ thống khởi tạo TLS Certificates nội bộ. Kiểm tra trạng thái Cluster qua API:

curl -XGET https://localhost:9200/_cluster/health?pretty -u 'admin:Cyber_Secure_@2026!' -k

1777479199802.png

Hình 3: Truy vấn trạng thái Cluster qua API nội bộ, xác nhận hệ thống đạt trạng thái Yellow (mức tối ưu cho Single-node).​

  • Chỉ số cần chú ý: Dòng "status" : "yellow".
  • Lưu ý kỹ thuật: Trong môi trường Lab Single-node, trạng thái Yellow là mức cao nhất (vẫn đảm bảo Full tính năng). Hệ thống chỉ lên Green khi có ít nhất 2 Node để phân bổ các bản sao dữ liệu (Replica shards).

4. Cấu hình Security Plugin (RBAC)

Mục tiêu là tuân thủ nguyên tắc Least Privilege (Quyền hạn tối thiểu). Tuyệt đối không dùng account admin để làm việc hằng ngày.
  1. Tạo Analyst User: Truy cập giao diện Dashboards (Port 5601), vào mục Security > Internal Users. Khởi tạo user thong_analyst.
  2. Mapping Roles: Vào mục Roles, tìm role hệ thống là readall.
  • Tại tab Mapped users, gán user thong_analyst vào.
  • Kết quả: User này có thể xem log và biểu đồ nhưng không có quyền can thiệp sâu vào cấu hình Cluster.
1777479782613.png

Hình 4: Kết quả mapping thành công. User thong_analyst đã được gán vào Role readall, sẵn sàng cho các tác vụ giám sát log với quyền hạn tối thiểu.
1777480079559.png

Hình 5: Xác nhận hoàn tất phân quyền. User thong_analyst đã được ánh xạ thành công vào vai trò readall, đảm bảo quyền hạn truy cập an toàn cho nhân viên SOC.

III. Kết luận

Triển khai OpenSearch 2.12 thành công đòi hỏi sự khắt khe ngay từ khâu cấu hình OS và chính sách mật khẩu. Việc nắm vững cách vận hành Security Plugin và cơ chế Mapping Role là bước đệm quan trọng để tích hợp các nguồn dữ liệu từ Wazuh, Winlogbeat sau này.
 
Back
Top