Xây dựng hệ thống phát hiện xâm nhập (IDS/IPS) và SIEM tập trung với Wazuh
Xây dựng hệ thống phát hiện xâm nhập (IDS/IPS) và SIEM tập trung với Wazuh trên VPS 2026
Trong bối cảnh các cuộc tấn công mạng ngày càng tinh vi, việc chỉ trang bị một lớp tường lửa (Firewall) cơ bản là không còn đủ để bảo vệ hạ tầng VPS của doanh nghiệp. Một hệ thống bảo mật hiện đại cần khả năng tự động phát hiện, phân tích log thời gian thực và phản ứng nhanh với các hành vi xâm nhập. Wazuh - nền tảng an ninh mã nguồn mở kết hợp giữa EDR (Endpoint Detection and Response), IDS (Intrusion Detection System) và SIEM (Security Information and Event Management) - chính là "lá chắn" toàn diện nhất hiện nay.
1. Wazuh là gì? Tại sao cần SIEM cho hệ thống VPS?
Wazuh không chỉ đơn thuần là một phần mềm diệt virus. Nó là một hệ thống phân tích dữ liệu bảo mật tập trung. Khi bạn có 10 hay 100 VPS, việc đăng nhập vào từng máy để kiểm tra log là bất khả thi. Wazuh thu thập log từ mọi máy chủ (Endpoints), đẩy về một trung tâm xử lý duy nhất (Wazuh Manager) để phân tích bằng các bộ quy tắc (Ruleset) thông minh.
- HIDS (Host-based IDS): Giám sát các thay đổi trên file hệ thống, phát hiện Rootkit và các tiến trình chạy ngầm bất thường.
- SIEM: Tập hợp log từ SSH, Web Server, Database, Firewall thành một bức tranh toàn cảnh về an ninh hạ tầng.
- Vulnerability Detection: Tự động quét và liệt kê các lỗ hổng phần mềm (CVE) đang tồn tại trên VPS để bạn kịp thời vá lỗi.
// Mô phỏng cấu trúc một cảnh báo bảo mật (Alert) trong hệ thống SIEM Wazuh
interface WazuhAlert {
timestamp: string;
agentName: string;
level: number; // Mức độ nghiêm trọng từ 1-15
ruleDescription: string;
sourceIp: string;
actionTaken: "logged" | "blocked" | "quarantined";
}
const bruteForceAlert: WazuhAlert = {
timestamp: "2026-04-17T10:30:00Z",
agentName: "vps-prod-01",
level: 12,
ruleDescription: "Phát hiện tấn công Brute Force qua SSH",
sourceIp: "1.2.3.4",
actionTaken: "blocked"
};
console.log(`Cảnh báo: ${bruteForceAlert.ruleDescription} từ IP ${bruteForceAlert.sourceIp}`);
2. Kiến trúc triển khai Wazuh tập trung
Để xây dựng hệ thống này hiệu quả, bạn cần một VPS có cấu hình đủ mạnh để làm "Bộ não" (Wazuh Manager) và các máy chủ mục tiêu (Wazuh Agents).
2.1. Thành phần chính
- Wazuh Indexer: Công cụ tìm kiếm và phân tích dữ liệu (dựa trên OpenSearch), lưu trữ hàng tỷ bản ghi log một cách tối ưu.
- Wazuh Server: Chứa các bộ giải mã (Decoders) và bộ quy tắc (Rules) để ra quyết định cảnh báo.
- Wazuh Dashboard: Giao diện trực quan hóa dữ liệu, giúp bạn theo dõi biểu đồ tấn công theo thời gian thực.
2.2. Yêu cầu phần cứng tối thiểu cho Wazuh Manager
| Số lượng Agent | CPU (Cores) | RAM (GB) | Lưu trữ (NVMe) |
|---|---|---|---|
| 1 - 25 Agents | 4 Cores | 8 GB | 50 GB |
| 25 - 100 Agents | 8 Cores | 16 GB | 200 GB+ |
3. Giám sát hành vi xâm nhập và tấn công Brute Force
Một trong những tính năng mạnh mẽ nhất của Wazuh là Active Response. Khi phát hiện một IP đang cố gắng thử mật khẩu SSH quá nhiều lần (Brute Force), Wazuh Manager sẽ ra lệnh cho Agent thực thi một script để chặn IP đó ngay lập tức tại tầng tường lửa của VPS đích.
// Ví dụ logic thực thi phản ứng tự động (Active Response)
interface ActiveResponseConfig {
ruleId: number;
timeoutSeconds: number;
command: string;
}
function triggerBlock(ip: string, config: ActiveResponseConfig): void {
console.log(`Thực thi lệnh: ${config.command} block ${ip} trong ${config.timeoutSeconds}s`);
// Logic gọi API firewall-cmd hoặc iptables
}
const sshBruteForceRule: ActiveResponseConfig = {
ruleId: 5712, // Mã rule mặc định của Wazuh cho SSH brute force
timeoutSeconds: 3600, // Chặn trong 1 giờ
command: "firewall-drop.sh"
};
triggerBlock("1.2.3.4", sshBruteForceRule);
4. Giám sát tính toàn vẹn của dữ liệu (FIM - File Integrity Monitoring)
Làm thế nào bạn biết một Hacker đã xâm nhập và chèn mã độc vào file index.php của bạn? FIM sẽ giải quyết vấn đề này bằng cách tạo ra mã Hash cho các file quan trọng và so sánh chúng liên tục.
Nếu có bất kỳ sự thay đổi nào (thêm, sửa, xóa file), hệ thống SIEM sẽ ghi lại: ai đã sửa, sửa lúc nào, và nội dung nào đã bị thay đổi. Đây là yếu tố then chốt để phát hiện các cuộc tấn công Deface (thay đổi giao diện website).
5. Quản lý Log tập trung từ nhiều VPS
Thay vì lưu log rải rác, Wazuh Agent sẽ đẩy toàn bộ dữ liệu về Manager qua kênh truyền mã hóa AES. Điều này giúp bạn có thể truy vấn lịch sử truy cập của toàn bộ hệ thống chỉ bằng vài cú nhấp chuột trên Dashboard.
// Cấu trúc cấu hình Agent gửi Log về Server
interface AgentLogConfig {
serverIp: string;
protocol: "tcp" | "udp";
port: number;
logPaths: string[];
}
const vpsAgent: AgentLogConfig = {
serverIp: "10.0.0.1", // IP của Wazuh Manager
protocol: "tcp",
port: 1514,
logPaths: [
"/var/log/auth.log",
"/var/log/nginx/access.log",
"/var/log/mysql/error.log"
]
};
console.log(`Đang kết nối agent tới ${vpsAgent.serverIp}:${vpsAgent.port}...`);
6. Nâng cấp bảo mật Compliance (Tuân thủ tiêu chuẩn)
Wazuh cung cấp các bộ quy tắc sẵn có theo tiêu chuẩn quốc tế như PCI DSS (cho thanh toán thẻ), GDPR, hay CIS Benchmark. Hệ thống sẽ tự động chấm điểm bảo mật cho VPS của bạn và đưa ra các khuyến nghị cấu hình lại Kernel, tắt các dịch vụ thừa để giảm thiểu rủi ro bị tấn công (Hardening).
7. Quy trình triển khai SIEM Wazuh thực tế
Để xây dựng hệ thống thành công, bạn nên thực hiện theo các bước sau:
- Khởi tạo VPS trung tâm: Cài đặt Wazuh Indexer và Manager bằng Docker hoặc Script cài đặt tự động.
- Cấu hình HTTPS và SSL: Bảo vệ Dashboard bằng chứng chỉ SSL để tránh bị Hacker đánh chặn thông tin quản trị.
- Cài đặt Agent trên các VPS vệ tinh: Sử dụng lệnh
Wazuh-Agentđể đăng ký máy chủ vào hệ thống SIEM. - Tinh chỉnh Ruleset: Loại bỏ các cảnh báo giả (False Positive) từ các tiến trình hợp lệ của doanh nghiệp.
- Cấu hình cảnh báo qua Telegram/Slack: Đảm bảo đội ngũ kỹ thuật nhận được thông báo ngay lập tức khi có sự cố nghiêm trọng xảy ra.
// Ví dụ gửi thông báo cảnh báo bảo mật về Telegram qua Webhook
async function sendTelegramAlert(alert: WazuhAlert) {
const message = `🚨 Cảnh báo bảo mật cấp độ ${alert.level}!\nMáy chủ: ${alert.agentName}\nNội dung: ${alert.ruleDescription}`;
const botToken = "YOUR_BOT_TOKEN";
const chatId = "YOUR_CHAT_ID";
// Giả lập gửi request
console.log(`Gửi thông báo tới Telegram: ${message}`);
}
sendTelegramAlert(bruteForceAlert);
8. Kết luận: Tầm quan trọng của việc chủ động phòng vệ
Xây dựng hệ thống IDS/IPS và SIEM với Wazuh không chỉ giúp bạn phát hiện các cuộc tấn công mà còn giúp bạn hiểu rõ "sức khỏe" an ninh của hệ thống. Trong kỷ nguyên mà dữ liệu là tài sản quý giá nhất, việc đầu tư vào một hệ thống giám sát tập trung là bước đi thông minh để tối ưu hóa nguồn lực và bảo vệ uy tín của doanh nghiệp.
Hãy nhớ rằng: Bảo mật không phải là một đích đến, mà là một hành trình liên tục. Chúc bạn xây dựng được một hệ thống VPS an toàn và vững chắc!
