BunkerWeb Web Application Firewall (WAF)
บน Ubuntu Server 24.04 LTS
Installation and Configuration Guide
เอกสารฉบับร่างสำหรับการติดตั้งและตั้งค่าระบบรักษาความปลอดภัย Web Application ด้วย BunkerWeb
เวอร์ชันระบบปฏิบัติการ: Ubuntu Server 24.04 LTS
ระบบ WAF: BunkerWeb
แนวทางติดตั้ง: Linux Native Installation
ซอฟต์แวร์ป้องกัน: ModSecurity และ OWASP Core Rule Set (CRS)
1. วัตถุประสงค์
- เพื่อติดตั้งระบบ Web Application Firewall (WAF) บน Ubuntu Server 24.04 LTS
- เพื่อป้องกันการโจมตี Web Application จากภัยคุกคามทางไซเบอร์
- เพื่อกำหนดให้ BunkerWeb ทำหน้าที่เป็น Reverse Proxy ก่อนส่ง Traffic ไปยัง Web Server
- เพื่อเปิดใช้งานระบบตรวจจับและป้องกัน SQL Injection, Cross-Site Scripting (XSS) และ Web Attack รูปแบบต่าง ๆ
- เพื่อเพิ่มความปลอดภัยให้กับระบบ Web Application ขององค์กร
2. ภาพรวมการทำงานของระบบ
BunkerWeb ทำหน้าที่เป็นด่านรักษาความปลอดภัยระหว่างผู้ใช้งาน Internet กับ Web Application โดยตรวจสอบ HTTP/HTTPS Traffic ก่อนส่งต่อไปยังระบบปลายทาง
Architecture
Internet → Firewall → BunkerWeb WAF → Internal Web Server → Database
หน้าที่ของแต่ละส่วน
- Internet: ผู้ใช้งานจากภายนอก
- Firewall: ควบคุมการเข้าถึง Port ของระบบ
- BunkerWeb: ตรวจสอบและกรอง HTTP/HTTPS Traffic
- Web Server: ให้บริการ Web Application
- Database: จัดเก็บข้อมูลของระบบ
3. คุณสมบัติของระบบ
BunkerWeb รองรับความสามารถด้านความปลอดภัยดังนี้
- SQL Injection Protection
- Cross-Site Scripting (XSS) Protection
- OWASP Core Rule Set (CRS)
- HTTP Security Headers
- IP Access Control
- Rate Limiting
- Bot Protection
- Reverse Proxy
- HTTPS / SSL Certificate
- Request Filtering
- Security Logging
หมายเหตุ: การเปิดใช้งานแต่ละความสามารถขึ้นอยู่กับการกำหนดค่าและเวอร์ชันของระบบ
4. ความต้องการของระบบ (System Requirements)
| รายการ | ข้อกำหนด |
|---|---|
| Operating System | Ubuntu Server 24.04 LTS |
| CPU | 2 vCPU ขึ้นไป |
| RAM | 8 GB ขึ้นไปสำหรับระบบทดสอบ |
| Disk | 40 GB ขึ้นไป |
| Network | Static IP Address |
| Architecture | AMD64 หรือ ARM64 |
| Software | BunkerWeb และ NGINX |
สำหรับระบบ Production ที่มีหลายเว็บไซต์หรือมี Traffic สูง แนะนำเริ่มต้นที่ 4 vCPU และ RAM 16 GB ขึ้นไป และปรับตามปริมาณ Traffic จริง
5. การเตรียมระบบ Ubuntu Server
เข้าสู่ระบบ Ubuntu Server ด้วยบัญชีที่มีสิทธิ์ sudo
ตรวจสอบเวอร์ชันระบบปฏิบัติการ
lsb_release -a
อัปเดต Package
sudo apt update
sudo apt upgrade -y
ติดตั้งเครื่องมือพื้นฐาน
sudo apt install -y curl wget gnupg \
ca-certificates lsb-release \
vim unzip net-tools
ตรวจสอบ IP Address
ip addr
ตรวจสอบสถานะ Firewall
sudo ufw status
6. การติดตั้ง BunkerWeb WAF
BunkerWeb มี Installation Script อย่างเป็นทางการ รองรับ Ubuntu 24.04 LTS โดยสามารถติดตั้ง NGINX และส่วนประกอบที่จำเป็นได้อัตโนมัติ
6.1 ดาวน์โหลด Installation Script
curl -fsSL -O https://github.com/bunkerity/bunkerweb/releases/download/v1.6.17/install-bunkerweb.sh
ดาวน์โหลดไฟล์ Checksum
curl -fsSL -O https://github.com/bunkerity/bunkerweb/releases/download/v1.6.17/install-bunkerweb.sh.sha256
6.2 ตรวจสอบความถูกต้องของไฟล์
sha256sum -c install-bunkerweb.sh.sha256
หากผลลัพธ์แสดง OK จึงดำเนินการต่อ
6.3 เริ่มติดตั้ง
chmod +x install-bunkerweb.sh
sudo ./install-bunkerweb.sh
เลือก Installation Profile เป็น Full Stack สำหรับการติดตั้งระบบแบบครบชุดบนเครื่องเดียว
กำหนดค่าตามขั้นตอนของ Installer เช่น
- Installation Profile
- Web UI / Setup Wizard
- Database
- CrowdSec Integration (ถ้าต้องการ)
- Redis/Valkey Integration (ถ้าต้องการ)
- Administrator Account
ข้อควรระวัง: ควรตรวจสอบเวอร์ชันล่าสุดและ Checksum จากเว็บไซต์ทางการก่อนติดตั้งจริง
7. การตรวจสอบสถานะระบบ
ตรวจสอบ Service ที่ติดตั้ง
systemctl status bunkerweb
ตรวจสอบ Scheduler
systemctl status bunkerweb-scheduler
ตรวจสอบ Service ทั้งหมด
systemctl list-units --type=service | grep bunkerweb
ตรวจสอบ Port ที่เปิดใช้งาน
sudo ss -tulpn
ตรวจสอบ Log
sudo journalctl -u bunkerweb -n 100
8. การตั้งค่า Firewall
กำหนด Port ที่จำเป็นสำหรับการให้บริการ
| Port | Protocol | วัตถุประสงค์ |
|---|---|---|
| 22 | TCP | SSH Administration |
| 80 | TCP | HTTP |
| 443 | TCP | HTTPS |
ตัวอย่างคำสั่ง UFW
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
ข้อควรระวัง: ควรจำกัด SSH ให้เข้าถึงได้เฉพาะ IP ผู้ดูแลระบบ และไม่ควรเปิด Port ภายในของ Management API หรือ Database ออกสู่ Internet
9. การเข้าใช้งาน BunkerWeb Web UI
เปิด Web Browser และเข้าใช้งาน
https://your-domain/setup
หรือ URL/IP ที่กำหนดไว้ในระบบ
ดำเนินการตาม Setup Wizard
- สร้าง Administrator Account
- กำหนด Username และ Password
- กำหนด Domain สำหรับ Web UI
- ตั้งค่า HTTPS
- กำหนด Certificate
- ตรวจสอบค่าการตั้งค่าก่อนกด Setup
หลังจากตั้งค่าเสร็จสิ้น สามารถเข้าใช้งาน Web UI ด้วยบัญชี Administrator ที่สร้างไว้
10. การเพิ่ม Web Application เข้า BunkerWeb
เข้าเมนู Services และเลือก Create New Service
กำหนดค่าตัวอย่างดังนี้
| Parameter | ตัวอย่าง |
|---|---|
| SERVER_NAME | www.example.com |
| Reverse Proxy Host | 192.168.1.100 |
| Reverse Proxy Port | 8080 |
| HTTPS | Enabled |
| WAF | Enabled |
| ModSecurity | Enabled |
| OWASP CRS | Enabled |
หมายเหตุ: ค่า Reverse Proxy Host และ Port เป็นตัวอย่าง ต้องเปลี่ยนเป็น IP และ Port จริงของ Web Application
กำหนดให้ BunkerWeb รับ Request จาก Internet และส่งต่อไปยัง Web Application ภายในองค์กร
11. การเปิดใช้งาน WAF
กำหนดค่าความปลอดภัยใน Service Configuration
รายการที่แนะนำให้ตรวจสอบ
- เปิดใช้งาน ModSecurity
- เปิดใช้งาน OWASP Core Rule Set
- เปิดใช้งาน Security Headers
- กำหนด Request Size Limit
- กำหนด Rate Limiting
- กำหนด IP Access Control
- เปิดใช้งาน Security Logging
สำหรับการใช้งานจริง แนะนำให้เริ่มต้นด้วยโหมด Detection/Logging ตามความสามารถของแต่ละ Rule ก่อนปรับเป็น Blocking เพื่อป้องกัน False Positive ที่อาจกระทบการใช้งานเว็บไซต์
12. การทดสอบระบบ WAF
ดำเนินการทดสอบหลังจากตั้งค่า BunkerWeb เสร็จสิ้น
| ลำดับ | รายการทดสอบ | ผลที่ต้องการ |
|---|---|---|
| 1 | เข้าเว็บไซต์ผ่าน HTTPS | เว็บไซต์ใช้งานได้ |
| 2 | ตรวจสอบ SSL Certificate | Certificate ถูกต้อง |
| 3 | ตรวจสอบ Reverse Proxy | ส่ง Request ไป Backend ได้ |
| 4 | ตรวจสอบ SQL Injection Detection | WAF ตรวจจับ Request ที่เข้าข่ายโจมตี |
| 5 | ตรวจสอบ XSS Detection | WAF ตรวจจับ Request ที่เข้าข่าย XSS |
| 6 | ตรวจสอบ Security Logs | มีบันทึกเหตุการณ์ |
| 7 | ตรวจสอบ Rate Limiting | จำกัด Request ตาม Policy |
| 8 | ตรวจสอบการใช้งานปกติ | ไม่เกิด False Positive |
การทดสอบ Security Rule ควรดำเนินการในระบบทดสอบหรือ Staging ที่ได้รับอนุญาตก่อน และไม่ควรใช้ Payload โจมตีระบบจริงโดยไม่มีแผนควบคุมผลกระทบ
13. การตรวจสอบ Log และการบำรุงรักษา
ตรวจสอบ Log ของ BunkerWeb
sudo journalctl -u bunkerweb -f
ตรวจสอบ Log ของ Scheduler
sudo journalctl -u bunkerweb-scheduler -f
แนวทางการดูแลระบบ
- ตรวจสอบ Log อย่างสม่ำเสมอ
- สำรองข้อมูล Configuration
- สำรองข้อมูล Database
- ตรวจสอบพื้นที่ Disk
- ตรวจสอบ CPU และ RAM
- อัปเดต Security Patch
- ตรวจสอบ False Positive
- ทบทวน OWASP CRS Rules ตามความเหมาะสม
14. แนวทางการรักษาความปลอดภัยสำหรับ Production
- ใช้ HTTPS สำหรับทุกเว็บไซต์
- จำกัดสิทธิ์การเข้าถึง Web UI
- ไม่เปิดเผย Management API สู่ Internet
- ใช้ Strong Password และ MFA หากรองรับ
- สำรอง Configuration และ Database
- กำหนด Monitoring และ Alert
- จำกัดการเข้าถึง Backend ให้รับ Traffic จาก BunkerWeb เท่านั้น
- ทดสอบ Configuration ก่อนใช้งานจริง
- วางแผน Rollback เมื่อเกิดปัญหา
- อัปเดตระบบตาม Security Advisory ของผู้พัฒนา
15. สรุปผลการดำเนินงาน
เมื่อดำเนินการติดตั้งและตั้งค่าเรียบร้อยแล้ว ระบบ BunkerWeb จะทำหน้าที่เป็น Web Application Firewall สำหรับตรวจสอบและควบคุม HTTP/HTTPS Traffic ก่อนส่งต่อไปยัง Web Application ภายในองค์กร
ช่วยลดความเสี่ยงจาก Web Application Attacks และเพิ่มความสามารถในการตรวจสอบเหตุการณ์ด้านความปลอดภัยผ่านระบบ Logging
ผลลัพธ์ที่คาดหวัง
- Ubuntu Server 24.04 LTS พร้อมใช้งาน
- ติดตั้ง BunkerWeb สำเร็จ
- Web UI สามารถเข้าใช้งานได้
- Reverse Proxy ทำงานได้
- เปิดใช้งาน ModSecurity และ OWASP CRS
- สามารถตรวจจับและบันทึกเหตุการณ์ Web Attack ได้
- Web Application สามารถให้บริการผ่าน HTTPS ได้
16. เอกสารอ้างอิง
- BunkerWeb Official Documentation
https://docs.bunkerweb.io/latest/ - BunkerWeb Linux Integration
https://docs.bunkerweb.io/latest/integrations/ - BunkerWeb Quickstart Guide
https://docs.bunkerweb.io/latest/quickstart-guide/ - OWASP Core Rule Set
https://coreruleset.org/ - Ubuntu Server Documentation
https://ubuntu.com/server/docs
หมายเหตุ: เอกสารนี้เป็นคู่มือร่างสำหรับการติดตั้งเบื้องต้น ต้องปรับ IP Address, Domain, Backend และนโยบายความปลอดภัยให้ตรงกับสภาพแวดล้อมจริงก่อนนำไปใช้งาน
ไม่มีความคิดเห็น:
แสดงความคิดเห็น