ตั้งค่า Firewall Proxmox – 7 พฤษภาคม 2569





คู่มือการตั้งค่า Firewall บน Proxmox VE อย่างมืออาชีพ

คู่มือการตั้งค่า Firewall บน Proxmox VE: ปกป้องเซิร์ฟเวอร์และ Virtual Machine อย่างมืออาชีพ

ในยุคที่การโจมตีทางไซเบอร์มีความซับซ้อนมากขึ้น การดูแลความปลอดภัยให้กับระบบ Virtualization อย่าง Proxmox VE จึงเป็นสิ่งที่ไม่สามารถละเลยได้ Firewall ของ Proxmox นั้นมีความพิเศษตรงที่เป็นระบบแบบ Distributed Firewall ซึ่งทำงานอยู่บนระดับของ Netfilter (iptables/nftables) ของตัว Host เอง ทำให้สามารถควบคุมการรับส่งข้อมูลได้ทั้งในระดับ Datacenter, Cluster, Host ไปจนถึงระดับ Virtual Machine (VM) และ Container (CT)

บทความนี้จะพาคุณไปทำความเข้าใจโครงสร้างและวิธีการตั้งค่า Firewall ใน Proxmox แบบ Step-by-Step ตั้งแต่การเปิดใช้งานพื้นฐาน ไปจนถึงการกำหนดกฎ (Rules) ที่ซับซ้อน เพื่อให้มั่นใจว่าโครงสร้างพื้นฐานไอทีของคุณจะรอดพ้นจากการเข้าถึงที่ไม่ได้รับอนุญาต โดยเราจะเน้นการปฏิบัติจริงพร้อมตัวอย่างคำสั่งที่นำไปใช้งานได้ทันที

1. ทำความเข้าใจโครงสร้างลำดับชั้นของ Proxmox Firewall

ตั้งค่า Firewall Proxmox

Photo by Tima Miroshnichenko on Pexels

ก่อนจะเริ่มลงมือกดปุ่มตั้งค่า สิ่งสำคัญที่สุดคือการเข้าใจ “ลำดับชั้น” (Hierarchy) ของ Firewall ใน Proxmox ซึ่งแบ่งออกเป็น 3 ระดับหลัก คือ Datacenter, Node และ Guest (VM/CT) การทำงานจะเป็นแบบสืบทอดคุณสมบัติ หากคุณปิด Firewall ที่ระดับ Datacenter แม้จะเปิดที่ระดับ VM ไว้ Firewall ก็จะไม่ทำงาน ดังนั้นการตั้งค่าต้องเริ่มจากบนลงล่างเสมอ

กฎของ Firewall ใน Proxmox จะถูกประมวลผลตามลำดับ หากมีการขัดแย้งกัน กฎในระดับที่เจาะจงกว่า (เช่น ระดับ VM) มักจะมีความสำคัญสูงในการจัดการ Traffic เฉพาะตัว แต่นโยบายหลัก (Default Policy) จะถูกคุมโดยระดับ Datacenter เป็นหลัก การเข้าใจส่วนนี้จะช่วยป้องกันปัญหา “Lockout” หรือการที่แอดมินเผลอตัดการเชื่อมต่อของตัวเองจนเข้าหน้า GUI ไม่ได้

การเปิดใช้งาน Firewall ในระดับ Datacenter

ขั้นตอนแรกคือการเปิดสวิตช์หลักที่ระดับ Datacenter โดยไปที่เมนู Datacenter > Firewall > Options จากนั้นเลือก Enable Firewall เป็น ‘Yes’ ในขั้นตอนนี้ Proxmox จะยังไม่บล็อกอะไรจนกว่าเราจะกำหนด Default Policy แต่ขอแนะนำให้ตรวจสอบว่าพอร์ต 8006 (GUI) และ 22 (SSH) ถูกอนุญาตไว้ในระบบ Macro หรือ Security Group แล้วเพื่อความปลอดภัย

2. การกำหนดค่าพื้นฐานและ Security Groups เพื่อความเป็นระเบียบ

การเขียนกฎ Firewall ทีละข้อสำหรับทุก VM เป็นเรื่องที่เสียเวลาและจัดการยาก Proxmox จึงมีฟีเจอร์ “Security Groups” ซึ่งเปรียบเสมือนชุดของกฎสำเร็จรูปที่คุณสามารถสร้างไว้ครั้งเดียว แล้วนำไปใช้กับ VM หลายๆ ตัวพร้อมกันได้ เช่น กลุ่ม ‘Web_Server’ ที่อนุญาตพอร์ต 80 และ 443 หรือกลุ่ม ‘Database’ ที่อนุญาตพอร์ต 3306 จากวงแลนภายในเท่านั้น

นอกจาก Security Groups แล้ว Proxmox ยังมี “IP Sets” ที่ช่วยให้เราจัดกลุ่มของ IP Address หรือ Network Range เข้าด้วยกัน ตัวอย่างเช่น การสร้าง IP Set ชื่อ ‘Admin_IPs’ เพื่อรวมไอพีของฝ่ายไอทีทั้งหมด เมื่อต้องการเปลี่ยนไอพีที่อนุญาตให้เข้าถึงระบบจัดการ เราก็แก้ไขแค่ที่ IP Set ที่เดียว กฎทุกข้อที่อ้างอิงกลุ่มนี้จะถูกอัปเดตโดยอัตโนมัติ

ตัวอย่างการสร้าง Security Group ผ่าน Command Line

แม้ว่าเราจะตั้งค่าผ่านหน้าเว็บได้ แต่การใช้ CLI ผ่านทาง pve-firewall ก็เป็นวิธีที่รวดเร็วสำหรับแอดมินสาย Hardcore ต่อไปนี้คือตัวอย่างการสร้าง Security Group และการเพิ่มกฎการอนุญาตพอร์ต HTTP/HTTPS

# สร้าง Security Group ชื่อ webserver
pve-firewall group create webserver --comment "Allow Web Traffic"

# เพิ่มกฎอนุญาตพอร์ต 80 (HTTP) และ 443 (HTTPS) เข้าไปในกลุ่ม
pve-firewall group add webserver in -p tcp --dport 80 -action accept
pve-firewall group add webserver in -p tcp --dport 443 -action accept

# ตรวจสอบสถานะของ Firewall
pve-firewall status

3. การตั้งค่า Firewall ในระดับ Node และการป้องกัน Host

เมื่อเราคุมภาพรวมของ Datacenter ได้แล้ว ลำดับถัดมาคือระดับ Node หรือตัวเครื่องเซิร์ฟเวอร์จริง (Physical Host) การตั้งค่าในระดับนี้มีความสำคัญมาก เพราะหาก Node ถูกเจาะ ระบบ Virtual Machine ทั้งหมดที่รันอยู่บนนั้นก็จะตกอยู่ในอันตรายทันที เราควรกำหนดนโยบาย Input ให้เป็น ‘Drop’ และ Output เป็น ‘Accept’ (หรือ Drop หากต้องการความเข้มงวดสูงสุด)

สิ่งที่ควรระวังคือการอนุญาต Traffic ที่จำเป็นสำหรับการทำ Cluster หากคุณมีหลาย Node (Proxmox Cluster) คุณต้องมั่นใจว่าพอร์ต Corosync (5404-5405 UDP) และพอร์ตสำหรับการทำ Migration ถูกเปิดไว้ มิเช่นนั้น Node จะมองไม่เห็นกันและเกิดสถานะ Quorum lost ซึ่งจะทำให้ระบบล่มได้

การตั้งค่า Options ที่สำคัญในระดับ Node

ในเมนู Node > Firewall > Options ให้ตรวจสอบค่าเหล่านี้:

  • Enable Firewall: Yes
  • Log level in/out: nolog (หรือ info หากต้องการตรวจสอบ Log ในช่วงแรก)
  • NDP/Router Advertisement: เปิดไว้หากใช้ IPv6
  • Allow Invalid: No (เพื่อป้องกัน Packet ที่ผิดรูปแบบ)

4. การจัดการ Firewall สำหรับ Virtual Machines และ Containers

นี่คือจุดที่ Proxmox Firewall แสดงประสิทธิภาพได้ดีที่สุด คุณสามารถกำหนดกฎแยกย่อยให้แต่ละ VM ได้อย่างอิสระ แม้ว่า VM เหล่านั้นจะอยู่ใน Bridge เดียวกันก็ตาม (Micro-segmentation) โดยปกติแล้ว Traffic ระหว่าง VM ใน Bridge เดียวกันจะไม่ผ่าน Firewall ภายนอก แต่ด้วย Proxmox Firewall ที่ทำงานที่ระดับ Interface ของ VM (tap interface) ทำให้เราบล็อกการสื่อสารระหว่าง VM ได้

การเปิดใช้งานที่ระดับ VM ต้องทำสองที่ คือ 1. ในเมนู Firewall ของ VM นั้นๆ และ 2. ในส่วนของ Network Device ของ VM (ต้องติ๊กถูกที่ช่อง Firewall ใน Hardware > Network Device) หากลืมติ๊กที่ตัวการ์ดแลนจำลอง กฎที่เขียนไว้ในหน้า Firewall จะไม่มีผลใดๆ ทั้งสิ้น

ตัวอย่างการเขียนกฎด้วยไฟล์ Config (Advanced)

สำหรับผู้ที่ต้องการ Backup หรือ Deploy กฎ Firewall จำนวนมาก คุณสามารถแก้ไขไฟล์คอนฟิกโดยตรงได้ที่ /etc/pve/firewall/<VMID>.fw ดังตัวอย่างด้านล่างนี้

[OPTIONS]
enable: 1
policy_in: DROP
policy_out: ACCEPT

[RULES]
IN SSH(ACCEPT) -log nolog
IN HTTP(ACCEPT) -log info
IN GROUP webserver
# บล็อก IP เฉพาะเจาะจง
IN DROP -source 192.168.1.50 -log notice -comment "Block Malicious IP"

5. การตรวจสอบ Log และการทำ Troubleshooting

ปัญหาที่พบบ่อยที่สุดหลังเปิด Firewall คือ “บริการเข้าใช้งานไม่ได้” การตรวจสอบ Log จึงเป็นทักษะที่จำเป็น Proxmox จัดเก็บ Log ของ Firewall ไว้ที่ระบบไฟล์ของ Host ซึ่งคุณสามารถดูผ่านหน้า GUI ได้ที่เมนู Firewall > Log ของแต่ละระดับ หรือจะดูผ่านคำสั่งใน Terminal ก็ได้เพื่อความละเอียดที่มากขึ้น

หากคุณพบว่าระบบทำงานผิดปกติ ขั้นตอนแรกคือการเปลี่ยน Default Policy เป็น ‘Accept’ ชั่วคราวเพื่อเช็คว่าเป็นที่ Firewall หรือไม่ หากเปลี่ยนแล้วใช้งานได้ แสดงว่ากฎที่คุณเขียนมีบางอย่างผิดพลาด หรือคุณอาจจะลืมอนุญาตพอร์ตที่จำเป็น (เช่น DNS พอร์ต 53 หรือ DHCP) สำหรับการทำงานของแอปพลิเคชัน

สรุปประเด็นสำคัญในการตั้งค่า Proxmox Firewall

  • ต้องเปิดใช้งาน (Enable) ทั้งในระดับ Datacenter, Node และ VM กฎจึงจะมีผลสมบูรณ์
  • อย่าลืมติ๊กถูกช่อง Firewall ในเมนู Hardware > Network Device ของแต่ละ VM
  • ใช้ Security Groups และ IP Sets เพื่อลดความซ้ำซ้อนและง่ายต่อการจัดการในระยะยาว
  • ระมัดระวังการตั้งค่ากฎใน Node ที่เป็น Cluster เพราะอาจส่งผลต่อการสื่อสารระหว่างเครื่อง (Corosync)
  • ตรวจสอบ Log สม่ำเสมอเพื่อเฝ้าระวังการบุกรุกและแก้ไขปัญหาการเชื่อมต่อ

สรุป

การตั้งค่า Firewall ใน Proxmox VE เป็นกระบวนการที่ต้องทำอย่างระมัดระวังและเป็นระบบ เริ่มจากการวางโครงสร้างที่ระดับ Datacenter ไปจนถึงการคุมเข้มในระดับ VM แม้ว่าในช่วงแรกอาจจะดูซับซ้อน แต่ด้วยฟีเจอร์อย่าง Security Groups และ Macro จะช่วยให้การบริหารจัดการง่ายขึ้นมาก การสละเวลาตั้งค่า Firewall ให้ถูกต้องตั้งแต่วันแรก จะช่วยลดความเสี่ยงจากการถูกโจมตีและช่วยให้ระบบ Virtualization ของคุณมีความเสถียรและปลอดภัยในระดับมาตรฐานสากล


Leave a Reply

Your email address will not be published. Required fields are marked *