Lưu Như Thắng
Intern
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.
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:
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.
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:
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:
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.
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ư:
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:
Đồ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:
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):
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.
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:
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!
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:
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.
Đồ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):
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:
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:
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.
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
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:
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.
ansible-playbook -i inventory.ini install-wazuh-agent.yml
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"
Đồ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 '<address>' /var/ossec/etc/ossec.conf"
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:Kiểm tra lại danh sách các group:sudo /var/ossec/bin/agent_groups -a -g linux-server -q
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):
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.
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.
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.
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:
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!
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 đó.
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:
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:chmod +x add-agent.sh
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
Bài viết liên quan
Được quan tâm
Bài viết mới