UFW ย่อมาจาก Uncomplicated Firewall ไม่ใช่ Ubuntu firewall ตามที่เข้าใจผิด ชื่อนี้สะท้อนความง่ายในการตั้งค่า ผู้ใช้ส่วนใหญ่ตั้งค่าแค่ 3 ตัวเลือกก็ปลอดภัยพอสมควร ตั้งค่าขั้นสูงก็แค่แก้ไขไฟล์ข้อความ แม้พัฒนาโดย Ubuntu แต่หลายดิสโตรมี UFW ติดตั้งมาอยู่แล้ว (Debian, Arch, Linux Mint, Lubuntu, Xubuntu)
ปัญหาคือผู้ใช้น้อยมากที่เปิดใช้งาน Ubuntu ตั้งค่า UFW default เป็น off หลาย Debian ไม่ติดตั้งแพ็กเกจ default ข่าวดีคือใครก็ตามที่มีประสบการณ์เทอร์มินัลเล็กน้อย ก็แฮร์ดเด่นระบบได้
วิธีที่ 1: เปิด UFW จากพรอมต์คำสั่ง
สมมติติดตั้ง ufw แล้ว (ถ้า error กลางคืน ติดตั้งภายหลังได้) รันคำสั่งเหล่านี้ก่อน:
User ธรรมดา: sudo ufw enable ใส่รหัสผ่านถ้าถูกถาม จะบอกว่า ufw enabled และรันอัตโนมตตอนบูต รัน sudo ufw status เช็ค ควรได้ Status: active แค่บรรทัดเดียว
ถ้าบอกว่า ufw ไม่ได้ติดตั้ง: apt-based (Debian): sudo apt-get install ufw (อาจ sudo apt-get update และ upgrade ก่อน) Arch: sudo pacman -Syu แล้ว sudo pacman -S ufw ทุกดิสโตรต่อได้เหมือนกัน รัน sudo ufw enable ต้องได้ "Status: active"
วิธีที่ 2: ส่งชุดกฎพื้นฐานให้ UFW
Firewall ใช้กฎตรวจสอบ packet ที่ส่งมาถึงคอมพิวเตอร์ ต้องรัน 2 คำสั่งนี้:
sudo ufw default allow outgoing
sudo ufw default deny incoming
อนุญาต outgoing traffic (สำคัญถ้าใช้งานออนไลน์) ไม่นับ outgoing request ว่าอันตราย บล็อก incoming requests (ถูกต้องสำหรับ home/business users ทั่วไป แม้เกมเมอร์ FPS ก็ไม่ต้องการมากกว่านี้) ผู้ส่วนใหญ่หยุดที่นี่ได้ ถ้า sudo ufw status ยัง active หลัง reboot ไม่ต้องตั้งค่าเพิ่ม SSH/advanced networking ต้องอ่านต่อ
วิธีที่ 3: ตัวเลือกการตั้งค่า UFW ขั้นสูง
ส่วนใหญ่ไม่ต้องอ่านต่อ แต่กฎเหล่านี้อาจมีประโยชน์ ตัวอย่าง อนุญาต TCP port 80:
sudo ufw allow 80/tcp
หรือ sudo ufw allow from ###.##.##.##/## พร้อม IP จริงและ subnet หลัง slash เลข 80 ใช้ได้สำหรับ networking sudo ufw allow http/tcp ถูกต้อง อาจต้องการใน server แต่เริ่มเปิดประตูหลายประเภท
ตั้งค่ายอดนิยม: sudo ufw allow 22 เปิด port SSH หรือ sudo ufw allow ssh ใช้ได้เหมือนกัน บางคู่มือบอกเพิ่มทั้งคู่ - ไม่จำเป็น มักเพิ่ม overhead เฉยๆ
ลบกฎในอนาคต: sudo ufw delete ตามด้วยชื่อกฎ ตัวอย่าง: sudo ufw delete allow 80/tcp
รัน sudo ufw status verbose จะเห็นตารางครบถ้วนถ้ามีกฎเพิ่ม ปิด firewall: sudo ufw disable (นادر้าที่ต้องทำ)
บางครั้งเจอ 504 gateway timeout ถ้าใช้ UFW ป้องกัน server การเปลี่ยนลำดับกฎช่วยได้: Allow rules ต้องอยู่ก่อน Deny rules (UFW match กฎแรกก่อน) ลบคู่กฎแล้วเพิ่มกลับ โดยพิมพ์ sudo ufw default allow ก่อน ควรลบบรรทัดซ้ำเพื่อประสิทธิภาพ
รัน sudo ufw verbose ดูลำดับ DENY IN และ ALLOW IN หาก port 80 หรือ 22 มี DENY IN ก่อน แล้วตามด้วย Anywhere อาจบล็อกก่อนผ่านได้ เรียงลำดับใหม่จะแก้ได้ วางคำสั่งลำดับถูกต้องตั้งแต่แรกป้องกันปัญหา
Root prompt (มี #) ไม่ต้อง sudo นำหน้า ถ้า error เรื่องนี้ เช็ค prompt ว่าเป็น # หรือ $ tcsh (prompt %) ใช้ whoami เช็ค user
User ธรรมดา รัน sudo ufw status verbose ได้ข้อมูลน้อย เพราะกฎน้อย ข้อควรระวัง: ufw default มี parameter reject แต่ใช้ง่าย lock ตัวเองออกจาก server หรือทำอะไรแปลกๆ ได้ หากต้องการ sudo ufw allow ssh ต้องวางก่อน default reject/deny
มี GUI tools เช่น Gufw, kmyfirewall (Qt) แต่ CLI ง่ายพอ ไม่ต้อง GUI ต้องการแก้ไข config โดยตรง: cd /etc/ufw แล้ว sudo nano ufw.conf (แก้ไข) หรือ more ufw/less ufw ดูก่อน Developer ใส่คอมเมนต์ไว้ให้ ไม่หลงทาง อาจลบคอมเมนต์ถ้าอยากได้