สวัสดีครับ! การตั้งค่า Network Segmentation และ Firewall Rules เป็นขั้นตอนที่ฉลาดมากครับ โดยเฉพาะเมื่อคุณมี Services ที่ต้องเปิดสู่ Public (เช่น `lcbp3.np-dms.work`) และ Services ภายใน (เช่น `db.np-dms.work`) สำหรับอุปกรณ์ Omada (ER7206 + OC200) กลยุทธ์หลักคือการใช้ **VLANs (Virtual LANs)** เพื่อแบ่งกลุ่มอุปกรณ์ และใช้ **Firewall ACLs (Access Control Lists)** เพื่อควบคุมการจราจรระหว่างกลุ่มเหล่านั้น นี่คือคำแนะนำตามแนวทาง "Zero Trust" ที่ปรับให้เข้ากับสถาปัตยกรรมของคุณครับ --- ## 1. 🌐 การแบ่งส่วนเครือข่าย (VLAN Segmentation) ใน Omada Controller (OC200) ให้คุณไปที่ `Settings > Wired Networks > LAN` และสร้างเครือข่ายย่อย (VLANs) ดังนี้: * **VLAN 1 (Default): Management** * **IP Range:** 192.168.1.x * **วัตถุประสงค์:** ใช้สำหรับอุปกรณ์ Network (ER7206, OC200, Switches) และ PC ของผู้ดูแลระบบ (Admin) เท่านั้น * **VLAN 10: Servers (DMZ)** * **IP Range:** 192.168.10.x * **วัตถุประสงค์:** นี่คือ VLAN ที่คุณจะเสียบสาย LAN ของ **QNAP NAS** ครับ QNAP จะได้รับ IP ในกลุ่มนี้ (เช่น `192.168.10.100`) * **VLAN 20: Office / Trusted** * **IP Range:** 192.168.20.x * **วัตถุประสงค์:** สำหรับ PC, Notebook, และ Wi-Fi ของพนักงานทั่วไปที่ต้องเข้าใช้งานระบบ (เช่น `lcbp3.np-dms.work`) * **VLAN 30: Guests / Untrusted** * **IP Range:** 192.168.30.x * **วัตถุประสงค์:** สำหรับ Wi-Fi แขก (Guest) ห้ามเข้าถึงเครือข่ายภายในโดยเด็ดขาด **การตั้งค่า Port Switch:** หลังจากสร้าง VLANs แล้ว ให้ไปที่ `Devices` > เลือก Switch ของคุณ > `Ports` > กำหนด Port Profile: * Port ที่เสียบ QNAP NAS: ตั้งค่า Profile เป็น **VLAN 10** * Port ที่เสียบ PC พนักงาน: ตั้งค่า Profile เป็น **VLAN 20** --- ## 2. 🔥 Firewall Rules (ACLs) นี่คือหัวใจสำคัญครับ ไปที่ `Settings > Network Security > ACL (Access Control)` กฎของ Firewall จะทำงานจากบนลงล่าง (ข้อ 1 ทำก่อนข้อ 2) ### A. กฎการห้าม (Deny Rules) - สำคัญที่สุด **กฎข้อ 1: บล็อก Guest (VLAN 30) ไม่ให้ยุ่งกับใคร** * **Name:** Isolate-Guests * **Policy:** Deny * **Source:** `Network` -> `VLAN 30` * **Destination:** `Network` -> `VLAN 1`, `VLAN 10`, `VLAN 20` * *(กฎนี้จะทำให้ Guest ออกอินเทอร์เน็ตได้อย่างเดียว แต่คุยข้าม VLAN ไม่ได้)* **กฎข้อ 2: บล็อก Server (VLAN 10) ไม่ให้โจมตีคนอื่น** * **Name:** Isolate-Servers * **Policy:** Deny * **Source:** `Network` -> `VLAN 10` * **Destination:** `Network` -> `VLAN 20` * *(กฎนี้ป้องกันไม่ให้ Server (QNAP) ที่อาจถูกแฮก เริ่มเชื่อมต่อไปยัง PC ของพนักงาน (VLAN 20) เพื่อแพร่กระจาย Malware)* **กฎข้อ 3: บล็อก Office ไม่ให้เข้าหน้า Admin** * **Name:** Block-Office-to-Management * **Policy:** Deny * **Source:** `Network` -> `VLAN 20` * **Destination:** `Network` -> `VLAN 1` * *(ป้องกันไม่ให้พนักงานทั่วไปเข้าหน้าตั้งค่า Router หรือ Controller)* ### B. กฎการอนุญาต (Allow Rules) **กฎข้อ 4: อนุญาตให้ Office (VLAN 20) ใช้งาน Services ที่จำเป็น** * **Name:** Allow-Office-to-Services * **Policy:** Allow * **Source:** `Network` -> `VLAN 20` * **Destination:** `IP Group` -> (สร้าง Group ชื่อ `QNAP_Services` ชี้ไปที่ `192.168.10.100` (IP ของ QNAP)) * **Port:** `Service` -> (สร้าง Port Group ชื่อ `Web_Services`): * TCP 443 (HTTPS - สำหรับทุก Service เช่น lcbp3, git, pma) * TCP 80 (HTTP - สำหรับ NPM redirect) * TCP 81 (NPM Admin UI) * TCP 2222 (Gitea SSH) * (ไม่จำเป็นต้องเปิด Port 3000, 3003, 5678, 89 เพราะ NPM จัดการให้แล้ว) ### C. กฎสุดท้าย (Default) Omada มักจะมีกฎ "Allow All" อยู่ล่างสุด ให้ปล่อยไว้ หรือถ้าคุณต้องการความปลอดภัยสูงสุด (Zero Trust) ให้เปลี่ยนกฎสุดท้ายเป็น "Deny All" (แต่ต้องมั่นใจว่ากฎ Allow ของคุณครอบคลุมทั้งหมดแล้ว) --- ## 3. 🚪 Port Forwarding (การเปิด Service สู่สาธารณะ) ส่วนนี้ไม่ใช่ Firewall ACL แต่จำเป็นเพื่อให้คนนอกเข้าใช้งานได้ครับ ไปที่ `Settings > Transmission > Port Forwarding` สร้างกฎเพื่อส่งต่อการจราจรจาก WAN (อินเทอร์เน็ต) ไปยัง Nginx Proxy Manager (NPM) ที่อยู่บน QNAP (VLAN 10) * **Name:** Allow-NPM-HTTPS * **External Port:** 443 * **Internal Port:** 443 * **Internal IP:** `192.168.10.100` (IP ของ QNAP) * **Protocol:** TCP * **Name:** Allow-NPM-HTTP (สำหรับ Let's Encrypt) * **External Port:** 80 * **Internal Port:** 80 * **Internal IP:** `192.168.10.100` (IP ของ QNAP) * **Protocol:** TCP ### สรุปผังการเชื่อมต่อ 1. **ผู้ใช้ภายนอก** -> `https://lcbp3.np-dms.work` 2. **ER7206** รับที่ Port 443 3. **Port Forwarding** ส่งต่อไปยัง `192.168.10.100:443` (QNAP NPM) 4. **NPM** (บน QNAP) ส่งต่อไปยัง `backend:3000` หรือ `frontend:3000` ภายใน Docker 5. **ผู้ใช้ภายใน (Office)** -> `https://lcbp3.np-dms.work` 6. **Firewall ACL** (กฎข้อ 4) อนุญาตให้ VLAN 20 คุยกับ `192.168.10.100:443` 7. (ขั้นตอนที่ 3-4 ทำงานเหมือนเดิม) การตั้งค่าตามนี้จะช่วยแยกส่วน Server ของคุณออกจากเครือข่ายพนักงานอย่างชัดเจน ซึ่งปลอดภัยกว่าการวางทุกอย่างไว้ในวง LAN เดียวกันมากครับ