SIEM/Log Management Hướng dẫn triển khai Wazuh quy mô lớn (Phần 2): Tự động cài đặt qua Ansible & Quản lý cấu hình tập trung

Tiếp nối phần trước về việc triển khai tự động Wazuh Agent trên môi trường Windows bằng GPO, trong bài viết này, chúng ta sẽ tìm hiểu cách sử dụng Ansible để tự động hóa việc cài đặt và cấu hình Wazuh Agent cho hàng loạt máy chủ Linux.

Đồng thời, chúng ta cũng sẽ kết hợp tính năng Agent Group của Wazuh để quản lý cấu hình tập trung cho nhóm máy chủ Linux này.

Phần 1: Chuẩn bị môi trường​

1. Cài đặt Ansible trên máy điều khiển (Control Node)​

Để bắt đầu, chúng ta cần một máy chủ Linux (trong ví dụ là Ubuntu) đóng vai trò làm Ansible Control Node. Mở terminal trên máy này và chạy các lệnh sau để cập nhật hệ thống và cài đặt Ansible cùng sshpass (cần thiết cho việc xác thực mật khẩu qua SSH):

1783611182916.png


Sau khi cài đặt xong, bạn có thể kiểm tra lại phiên bản Ansible để đảm bảo cài đặt thành công:

1783611188579.png


2. Chuẩn bị máy trạm (Target Nodes)​

Mỗi máy chủ Linux cần cài đặt Wazuh Agent (ví dụ: Kali Linux, Ubuntu Server khác) đều cần phải có dịch vụ SSH đang hoạt động và Python3 được cài đặt để Ansible có thể kết nối và thực thi lệnh. Lưu ý: Chạy lệnh sau trên các máy trạm (nếu chưa có):

sudo apt update
sudo apt install -y openssh-server python3
sudo systemctl enable --now ssh

3. Tạo thư mục làm việc và Inventory cho Ansible​

Trên máy Control Node, tạo một thư mục riêng để chứa các cấu hình Ansible cho Wazuh:

1783611193274.png


Tiếp theo, sử dụng trình soạn thảo (ví dụ nano) để tạo file inventory.ini. File này sẽ chứa danh sách các máy trạm và thông tin đăng nhập SSH.

1783611198447.png


Nội dung file inventory.ini ví dụ như sau, khai báo một nhóm [ubuntu_agents] và các biến kết nối:

[ubuntu_agents]
kali ansible_host=192.168.75.134
ubuntu01 ansible_host=192.168.75.147
[ubuntu_agents:vars]
ansible_user=nhuthang
ansible_password=123
ansible_become_password=123
ansible_python_interpreter=/usr/bin/python3
ansible_ssh_common_args='-o StrictHostKeyChecking=no'


Kiểm tra kết nối từ Control Node đến các máy trạm bằng module ping của Ansible bằng lệnh sau:

ansible -i inventory.ini ubuntu_agents -m ping
1783611277951.png

Kết quả trả về SUCCESS và "ping": "pong" chứng tỏ Ansible đã kết nối và điều khiển thành công các máy trạm.


Phần 2: Viết Playbook cài đặt Wazuh Agent​

Thay vì phải đăng nhập vào từng máy gõ lệnh cài đặt, chúng ta sẽ tạo một Playbook tự động hóa toàn bộ quá trình này. Sử dụng trình soạn thảo tạo file Playbook install-wazuh-agent.yml:

1783611358881.png


File install-wazuh-agent.yml: https://github.com/nhuthangl24/PopTech/blob/main/install-wazuh-agent.yml
Phần cấu hình trên nhằm mục đích kiểm tra xem agent đã được đăng ký (enroll) với Wazuh Manager hay chưa bằng cách kiểm tra file client.keys. Nếu chưa có hoặc file rỗng, nó sẽ dừng dịch vụ agent, tiến hành đăng ký agent mới với Manager, và sau đó khởi động lại dịch vụ.

Trong file Playbook này, bạn sẽ khai báo các tác vụ (tasks) như:
  • Cài đặt các gói phụ thuộc (curl, gnupg, apt-transport-https).
  • Thêm GPG key của Wazuh.
  • Thêm Repository của Wazuh.
  • Cài đặt gói wazuh-agent.
  • Cấu hình địa chỉ IP của Wazuh Manager (wazuh_manager_ip).
  • Khởi động dịch vụ Wazuh Agent.
Chạy Playbook bằng lệnh ansible-playbook sau:

ansible-playbook -i inventory.ini install-wazuh-agent.yml

1783611419728.png


Ansible sẽ tự động thực thi lần lượt các tác vụ trên tất cả các máy thuộc nhóm ubuntu_agents. Kết quả báo ok và changed cho thấy quá trình cài đặt đã hoàn tất.

Để chắc chắn, bạn có thể kiểm tra trạng thái dịch vụ Wazuh Agent trên các máy trạm bằng lệnh shell thông qua Ansible:

ansible -i inventory.ini ubuntu_agents -b -m shell -a <span>"systemctl is-active wazuh-agent"

1783611435061.png


Đồng thời kiểm tra xem địa chỉ IP của Wazuh Manager đã được ghi đúng vào file cấu hình ossec.conf trên máy trạm hay chưa bằng lệnh:

ansible -i inventory.ini ubuntu_agents -b -m shell -a <span>"grep '&lt;address&gt;' /var/ossec/etc/ossec.conf"

1783611451457.png

Phần 3: Quản lý cấu hình tập trung cho Linux với Agent Group​

Tương tự như Windows, chúng ta cũng có thể sử dụng Agent Group để đồng bộ cấu hình cho các máy chủ Linux.

1. Tạo Group trên Wazuh Manager​

Trên máy chủ Wazuh Manager, sử dụng công cụ agent_groups để tạo một nhóm mới mang tên linux-server:

sudo /var/ossec/bin/agent_groups -a -g linux-server -q
Kiểm tra lại danh sách các group:

1783611461853.png


Danh sách hiển thị linux-server đã được tạo (sau khi cài Agent, các máy sẽ được gán vào đây, như trong hình là có 2 Agent):

1783611474361.png


2. Quản lý Group trên Dashboard​

Đăng nhập vào giao diện Web của Wazuh, truy cập vào phần quản lý Agent Groups và chọn nhóm linux-server. Bạn sẽ thấy danh sách các máy trạm (ví dụ ubuntu01 và kali) đang hoạt động trong nhóm này.

1783611486708.png


3. Đẩy cấu hình tập trung (Push Configuration)​

Chuyển sang tab Files trong nhóm linux-server. Mặc định file agent.conf chứa cấu hình chung của nhóm.

1783611499838.png


Mở file agent.conf trên máy trạm (ví dụ máy Kali) để xem trước. Ban đầu, phần cấu hình <agent_config> trống trơn.

1783611530521.png


Quay lại giao diện Web Wazuh Manager, bấm vào nút chỉnh sửa (Edit) file agent.conf và thêm cấu hình thu thập Log hệ thống (Syslog và Auth log) của Linux:

1783611541338.png


1783611549461.png

Bấm Save để lưu lại.

Gần như ngay lập tức, Wazuh Manager sẽ "Push" cấu hình này xuống các máy trạm. Mở lại file agent.conf trên máy trạm Kali bằng lệnh cat, bạn sẽ thấy cấu hình đã được đồng bộ thành công!

1783611569585.png


Phần mở rộng: Script Bash tự động thêm Agent mới​

Để tối ưu hóa hơn nữa, chúng ta có thể viết một bash script nhỏ add-agent.sh để vừa tự động thêm thông tin máy chủ mới vào file inventory.ini, vừa tự động gọi Ansible Playbook để cài đặt luôn Wazuh Agent lên đó.

1783611599623.png


File add-agent.sh: https://github.com/nhuthangl24/PopTech/blob/main/add-agent.sh
Để sử dụng script này, trước tiên bạn cần cấp quyền thực thi cho nó bằng lệnh chmod:

chmod +x add-agent.sh
Chỉ cần chạy script kèm theo tên máy (ubuntu02) và địa chỉ IP, hệ thống sẽ tự động làm mọi việc còn lại từ A đến Z:

1783611645078.png


Với sự kết hợp giữa Ansible và tính năng Agent Group của Wazuh, việc triển khai và quản lý cấu hình bảo mật cho hàng trăm, hàng ngàn máy chủ Linux trở nên cực kỳ đơn giản, nhanh chóng và đồng nhất.
 

Đính kèm

  • 1783611336419.png
    1783611336419.png
    26.3 KB · Lượt xem: 0
  • 1783611516548.png
    1783611516548.png
    66.6 KB · Lượt xem: 0
  • 1783611577045.png
    1783611577045.png
    32.3 KB · Lượt xem: 0
Back
Top