ติดตั้ง Wazuh SIEM ตรวจจับภัยคุกคามบน VPS
Wazuh คือแพลตฟอร์ม SIEM และ HIDS แบบโอเพนซอร์สที่รวมการเฝ้าระวังความปลอดภัยไว้ในที่เดียว — ตรวจจับการบุกรุก, วิเคราะห์ log, ตรวจ file integrity (FIM), ตรวจช่องโหว่ และเช็ก compliance พร้อม dashboard ที่เห็นภาพรวมทั้งหมด เหมาะสำหรับคนที่ดูแล VPS หลายเครื่องและอยากรู้ทันทีเมื่อมีคนพยายามเจาะ ไฟล์สำคัญถูกแก้ หรือมี malware บทความนี้เน้นติดตั้งแบบ all-in-one บน VPS เดียวและเพิ่ม agent
ความต้องการของระบบ
Wazuh server (Indexer + Manager + Dashboard) กิน resource พอควร ควรใช้ VPS แยกสำหรับ monitoring:
- ขั้นต่ำ: 4 vCPU, RAM 8 GB, disk 50 GB (รองรับ ~25 agent)
- แนะนำ: RAM 16 GB ขึ้นไปถ้าเก็บ log นาน/agent เยอะ
- OS: Ubuntu 22.04+, Debian 11+, RHEL/Rocky 8+
ติดตั้ง Wazuh แบบ All-in-One
# ดาวน์โหลดและรัน assisted installer
curl -sO https://packages.wazuh.com/4.x/wazuh-install.sh
sudo bash ./wazuh-install.sh -a
# เมื่อเสร็จ จะแสดง user/password ของ dashboard
# เปิด https://YOUR_VPS_IP (port 443)
# ดูรหัสผ่าน admin ได้จาก:
sudo tar -O -xvf wazuh-install-files.tar wazuh-install-files/wazuh-passwords.txt
เพิ่ม Agent บนเครื่องที่ต้องเฝ้าระวัง
ติดตั้ง agent บน VPS แต่ละตัวที่ต้องการ monitor ให้ส่งข้อมูลกลับมาที่ Wazuh server:
# บนเครื่อง agent (Ubuntu/Debian)
curl -sO https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-agent/wazuh-agent.deb
sudo WAZUH_MANAGER="WAZUH_SERVER_IP" dpkg -i ./wazuh-agent.deb
sudo systemctl daemon-reload
sudo systemctl enable --now wazuh-agent
# ฝั่ง server ตรวจว่า agent เชื่อมต่อแล้ว
sudo /var/ossec/bin/agent_control -l
เปิด File Integrity Monitoring (FIM)
FIM แจ้งเตือนทันทีเมื่อไฟล์สำคัญถูกแก้ — สัญญาณคลาสสิกของการถูกเจาะ แก้ใน /var/ossec/etc/ossec.conf:
<syscheck>
<directories check_all="yes" realtime="yes">/etc,/usr/bin,/usr/sbin</directories>
<directories check_all="yes" realtime="yes">/var/www</directories>
<frequency>43200</frequency>
</syscheck>
# restart agent
sudo systemctl restart wazuh-agent
หลังตั้งระบบเฝ้าระวัง ควรเสริมด้วย FIM และ rule เฉพาะของแอปที่รัน เพื่อให้ Wazuh จับเหตุการณ์ที่เป็นบริบทจริงของเซิร์ฟเวอร์ ไม่ใช่แค่ default rule กลางๆ
ตรวจสอบว่า Wazuh ทำงานถูกต้อง
ยืนยันว่าทุก service ขึ้น, agent ส่ง event และ alert ยิงเมื่อมีเหตุการณ์จริง:
# 1. service หลักทำงานครบ
sudo systemctl status wazuh-manager wazuh-indexer wazuh-dashboard
# 2. agent online (Active) กี่ตัว
sudo /var/ossec/bin/agent_control -l
# 3. ทดสอบ alert: จงใจ login ผิดหลายครั้ง แล้วดู alert
sudo tail -f /var/ossec/logs/alerts/alerts.json | grep -i "authentication"
# 4. ทดสอบ FIM: แก้ไฟล์ใน path ที่ monitor แล้วต้องเห็น event
sudo touch /etc/test-fim && sudo tail -n5 /var/ossec/logs/alerts/alerts.log
filebeat บน server (filebeat test output) — เป็นตัวส่ง alert จาก Manager เข้า Indexer ถ้ามันล่ม dashboard จะว่างเปล่าทั้งที่ agent ส่งข้อมูลปกติแก้ปัญหาที่พบบ่อย
Dashboard เปิดไม่ขึ้น / ขึ้น 503
Indexer ยังไม่พร้อม (กิน RAM สูงตอน start) หรือ RAM ไม่พอ ตรวจ:
sudo systemctl status wazuh-indexer
free -h # ถ้า RAM เต็ม ต้องเพิ่ม RAM หรือลด JVM heap
curl -k -u admin:PASSWORD https://localhost:9200
Agent ขึ้น "Never connected"
firewall บล็อก port 1514/1515 ระหว่าง agent กับ server เปิด port และตรวจ key:
# บน server
sudo ufw allow 1514,1515/tcp
# ลงทะเบียน agent ใหม่ถ้า key ไม่ตรง
sudo /var/ossec/bin/manage_agents
Disk เต็มเร็วจาก index
log เก่าสะสมใน Indexer ตั้ง Index Management Policy (ISM) ให้ลบ index ที่เก่ากว่า N วันอัตโนมัติ ผ่าน Dashboard > Index Management
Alert เยอะเกินจน noise
ปรับ rule level threshold ในการแจ้งเตือน (เช่น แจ้งเฉพาะ level ≥ 10) และ tune rule ที่ false positive บ่อยใน /var/ossec/etc/rules/local_rules.xml
คำถามที่พบบ่อย
Wazuh ต่างจาก Fail2ban อย่างไร?
Fail2ban เน้นบล็อก IP จาก log ที่ระบุแบบเฉพาะจุด ส่วน Wazuh เป็นแพลตฟอร์มเฝ้าระวังครบวงจร — รวม log หลายเครื่อง, FIM, vulnerability scan และ compliance มี dashboard ภาพรวม เหมาะกับการดูแลหลายเซิร์ฟเวอร์ ทั้งสองใช้ร่วมกันได้
รัน Wazuh บน VPS เล็กได้ไหม?
server แบบ all-in-one ต้องการ RAM อย่างน้อย 8 GB ไม่เหมาะกับ VPS 1-2 GB แต่ฝั่ง agent กิน resource น้อยมาก ติดตั้งบน VPS เล็กที่ต้องการ monitor ได้สบาย
เก็บ log ได้นานแค่ไหน?
ขึ้นกับ disk และ ISM policy ที่ตั้ง โดยทั่วไปตั้งเก็บ 30-90 วันสำหรับ hot index แล้วลบหรือ archive ออก ถ้าต้องเก็บนานตาม compliance ควรเผื่อ disk และพิจารณา cold storage แยก