VPS

วิธีตั้งค่า UFW Firewall บน VPS Linux
เพื่อป้องกันการเข้าถึงที่ไม่พึงประสงค์

📅 30 สิงหาคม 2026 ⏱ อ่าน ~12 นาที 🏷 VPS, Security, Linux
ตั้งค่า UFW Firewall บน VPS Linux เพื่อป้องกัน Brute Force

📋 สารบัญ

  1. UFW คืออะไร และทำไมต้องใช้
  2. ติดตั้ง UFW บน Ubuntu/Debian
  3. ตั้งค่า Default Policy
  4. เปิด-ปิดพอร์ตที่ต้องการ
  5. Whitelist/Blacklist IP Address
  6. Rate Limiting ป้องกัน Brute Force
  7. เปิดใช้งาน UFW
  8. ตรวจสอบสถานะและกฎ
  9. เปิด UFW Logging
  10. ตัวอย่างสำหรับ Web Server จริง
  11. ตารางสรุปคำสั่ง UFW ที่ใช้บ่อย
  12. คำถามที่พบบ่อย (FAQ)
  13. สรุป

หนึ่งในสิ่งแรกที่ควรทำหลังจากได้ VPS Linux มาคือการตั้งค่า Firewall เพื่อควบคุมการเข้า-ออกของ network traffic และป้องกัน port scan, brute force หรือการเจาะระบบ UFW (Uncomplicated Firewall) คือเครื่องมือที่เป็น default บน Ubuntu/Debian ใช้งานง่าย ทรงพลัง และเหมาะสำหรับทั้งมือใหม่และมืออาชีพ

1. UFW คืออะไร และทำไมต้องใช้

UFW ย่อมาจาก Uncomplicated Firewall เป็น frontend สำหรับ iptables ที่ทำให้การจัดการกฎ firewall ง่ายขึ้นมาก มาพร้อมกับ Ubuntu ตั้งแต่เวอร์ชัน 8.04 และ Debian รองรับเต็มรูปแบบ

ทำไมต้องตั้งค่า Firewall บน VPS:

💡 เคล็ดลับ: ก่อนตั้งค่า UFW ให้เปิดพอร์ต SSH ก่อนเสมอ เพราะถ้าลืมจะถูกล็อกออกจาก server ทันที

2. ติดตั้ง UFW บน Ubuntu/Debian

Ubuntu 20.04+ มี UFW ติดตั้งมาพร้อมแล้ว แต่ยังไม่ได้เปิดใช้ สำหรับ Debian อาจต้องติดตั้งเพิ่ม:

# อัพเดต package list
sudo apt update

# ติดตั้ง UFW (Ubuntu มักมีอยู่แล้ว)
sudo apt install ufw -y

# ตรวจสอบเวอร์ชัน
ufw version

ตรวจสอบว่า UFW ถูกติดตั้งแต่ยังไม่เปิดใช้:

sudo ufw status
# Output: Status: inactive

3. ตั้งค่า Default Policy

หลักการสำคัญของ Firewall ที่ดีคือ Deny All, Allow Specific — ปิดทุกอย่างก่อน แล้วค่อยเปิดเฉพาะที่จำเป็น:

# ปฏิเสธ incoming ทั้งหมด (ยกเว้นที่ allow ไว้)
sudo ufw default deny incoming

# อนุญาต outgoing ทั้งหมด (server ส่งออกได้ปกติ)
sudo ufw default allow outgoing

⚠️ คำเตือน: อย่าเปิดใช้ UFW ก่อนที่จะ allow SSH เพราะจะถูกล็อกออกจาก server ทันที

4. เปิด-ปิดพอร์ตที่ต้องการ

เปิดพอร์ต SSH (สำคัญที่สุด — ต้องทำก่อน)

# เปิดพอร์ต 22 (SSH มาตรฐาน)
sudo ufw allow 22/tcp

# หรือใช้ชื่อ service
sudo ufw allow ssh

# ถ้าใช้พอร์ต SSH custom เช่น 2222
sudo ufw allow 2222/tcp

เปิดพอร์ตสำหรับ Web Server

# HTTP
sudo ufw allow 80/tcp

# HTTPS
sudo ufw allow 443/tcp

# หรือ allow ทั้ง HTTP และ HTTPS ด้วย profile
sudo ufw allow 'Nginx Full'
sudo ufw allow 'Apache Full'

เปิดพอร์ต range

# เปิดพอร์ต 8000-8100 สำหรับ TCP
sudo ufw allow 8000:8100/tcp

# FTP Passive Mode ports
sudo ufw allow 20000:21000/tcp

ปิดพอร์ต (Deny)

# ปฏิเสธพอร์ต 3306 (MySQL — ไม่ควรเปิดสู่โลก)
sudo ufw deny 3306/tcp

# ลบกฎที่ตั้งไว้
sudo ufw delete allow 80/tcp

5. Whitelist/Blacklist IP Address

อนุญาตเฉพาะ IP เดียว

# Allow IP เดียวเข้าทุก port
sudo ufw allow from 203.0.113.10

# Allow IP เฉพาะพอร์ต 22
sudo ufw allow from 203.0.113.10 to any port 22

# Allow subnet ทั้ง /24
sudo ufw allow from 203.0.113.0/24 to any port 22

บล็อก IP ที่น่าสงสัย

# บล็อก IP เดียว
sudo ufw deny from 198.51.100.45

# บล็อก subnet ทั้งหมด
sudo ufw deny from 198.51.100.0/24

💡 เคล็ดลับ: สำหรับ production server ที่มี IP office คงที่ ควร whitelist เฉพาะ IP ของทีมสำหรับพอร์ต SSH และ DirectAdmin panel เพื่อความปลอดภัยสูงสุด

6. Rate Limiting ป้องกัน Brute Force

UFW มีคำสั่ง limit ที่จะบล็อก IP โดยอัตโนมัติเมื่อ connect มากกว่า 6 ครั้งในเวลา 30 วินาที:

# เปิด Rate Limiting สำหรับ SSH
sudo ufw limit ssh

# หรือระบุพอร์ตชัดเจน
sudo ufw limit 22/tcp

เมื่อรันคำสั่งนี้ UFW จะ:

7. เปิดใช้งาน UFW

หลังตั้งค่ากฎครบแล้ว ให้เปิดใช้งาน UFW:

# เปิด UFW (จะถามยืนยัน)
sudo ufw enable

# Output จะแสดง:
# Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
# Firewall is active and enabled on system startup

⚠️ ตรวจสอบก่อนกด Y: ให้แน่ใจว่า allow SSH แล้วก่อนกด yes ไม่เช่นนั้นจะถูกล็อกออก session ทันที

ปิด UFW ชั่วคราว

sudo ufw disable

รีโหลด UFW หลังเปลี่ยนกฎ

sudo ufw reload

8. ตรวจสอบสถานะและกฎ

# ดูสถานะเบื้องต้น
sudo ufw status

# ดูกฎพร้อมหมายเลข (ใช้ delete ด้วย number)
sudo ufw status numbered

# ดูรายละเอียดครบ
sudo ufw status verbose

ตัวอย่าง output ของ ufw status numbered:

Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere
[ 3] 443/tcp                    ALLOW IN    Anywhere
[ 4] 22/tcp (v6)                ALLOW IN    Anywhere (v6)
[ 5] 80/tcp (v6)                ALLOW IN    Anywhere (v6)
[ 6] 443/tcp (v6)               ALLOW IN    Anywhere (v6)

ลบกฎด้วยหมายเลข

# ลบกฎหมายเลข 3
sudo ufw delete 3

9. เปิด UFW Logging

Logging ช่วยตรวจสอบว่ามีการพยายาม connect ที่ถูกบล็อกไหม:

# เปิด logging ระดับ low (บล็อก packet เท่านั้น)
sudo ufw logging low

# ระดับ medium (บล็อก + invalid packet)
sudo ufw logging medium

# ดู log แบบ realtime
sudo tail -f /var/log/ufw.log

# ดูเฉพาะที่ถูกบล็อก
sudo grep "BLOCK" /var/log/ufw.log | tail -20

10. ตัวอย่างสำหรับ Web Server จริง

ตัวอย่าง config ที่เหมาะสำหรับ VPS ที่รัน Nginx + DirectAdmin:

# Reset เริ่มใหม่สะอาด
sudo ufw --force reset

# Default: ปฏิเสธทุกอย่าง, อนุญาต outgoing
sudo ufw default deny incoming
sudo ufw default allow outgoing

# SSH พร้อม rate limiting (สำคัญ)
sudo ufw limit 22/tcp

# DirectAdmin panel
sudo ufw allow 2222/tcp

# HTTP / HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# FTP (ถ้าจำเป็น)
sudo ufw allow 21/tcp
sudo ufw allow 20000:21000/tcp

# เปิด logging
sudo ufw logging low

# เปิดใช้งาน
sudo ufw enable

# ตรวจสอบผล
sudo ufw status numbered

💡 สำหรับ AsiaGB VPS: ทุกแผน VPS ไทย และ VPS สิงคโปร์ ของ AsiaGB รันบน Linux Ubuntu/Debian สามารถตั้งค่า UFW ได้ทันทีหลังรับ VPS

11. ตารางสรุปคำสั่ง UFW ที่ใช้บ่อย

คำสั่งหน้าที่
ufw enableเปิดใช้งาน UFW
ufw disableปิดใช้งาน UFW ชั่วคราว
ufw status numberedดูกฎทั้งหมดพร้อมหมายเลข
ufw allow PORT/tcpเปิดพอร์ต TCP
ufw deny PORT/tcpบล็อกพอร์ต TCP
ufw limit sshRate limit พอร์ต SSH
ufw allow from IPWhitelist IP เข้าทุกพอร์ต
ufw deny from IPBlacklist IP ทันที
ufw delete NUMลบกฎหมายเลขที่ NUM
ufw reloadรีโหลดกฎทั้งหมด
ufw resetรีเซ็ตกฎทั้งหมดเป็น default
ufw logging low/medium/highตั้งระดับ logging

12. คำถามที่พบบ่อย (FAQ)

UFW กับ iptables ต่างกันอย่างไร?
UFW เป็น frontend ของ iptables ที่ใช้ง่ายกว่ามาก คำสั่ง UFW สั้นกระชับเข้าใจง่าย ส่วน iptables ให้ control ละเอียดกว่าแต่ syntax ซับซ้อนกว่า ในทางเทคนิคทั้งคู่ทำงานเหมือนกันเพราะ UFW แปลงคำสั่งไปเป็น iptables rules อีกทอดหนึ่ง
UFW รองรับ IPv6 ด้วยไหม?
รองรับ ต้องตรวจสอบว่าในไฟล์ /etc/default/ufw มีค่า IPV6=yes (ค่า default คือ yes แล้ว) กฎที่เพิ่มจะถูก apply ให้ทั้ง IPv4 และ IPv6 โดยอัตโนมัติ สังเกตได้จาก ufw status จะแสดงกฎทั้ง IPv4 และ (v6)
ถ้าเผลอบล็อก SSH ตัวเองจะทำอย่างไร?
ต้องเข้าผ่าน VPS Console หรือ Out-of-Band access จาก control panel ของ VPS provider (เช่น AsiaGB VPS มี console ใน panel) แล้วรัน ufw allow 22 หรือ ufw disable เพื่อเปิดการเข้าถึงคืน วิธีป้องกัน: ทดสอบกฎในหน้าต่าง SSH ที่ 2 ก่อนปิดหน้าต่างเดิม
UFW Rate Limiting ทำงานอย่างไร?
UFW Rate Limiting จะบล็อก IP ที่พยายาม connect มากกว่า 6 ครั้งใน 30 วินาที เป็น built-in protection ขั้นพื้นฐานต่อ brute force attack เหมาะสำหรับพอร์ต SSH เป็นอย่างยิ่ง แต่ถ้าต้องการ protection ที่ละเอียดกว่าควรใช้ Fail2Ban ร่วมด้วย
ควรเปิดพอร์ตอะไรบ้างสำหรับ Web Server?
สำหรับ Web Server ทั่วไปควรเปิด: พอร์ต 22 (SSH), 80 (HTTP), 443 (HTTPS) พอร์ตอื่นนอกจากนี้ควรปิดไว้เสมอ ถ้าใช้ DirectAdmin ให้เพิ่มพอร์ต 2222 สำหรับ DA panel ตามความจำเป็น หลีกเลี่ยงการเปิดพอร์ต database (3306, 5432) สู่โลกอินเทอร์เน็ต
UFW logging มีกี่ระดับ?
UFW มี logging 5 ระดับ: off (ปิด), low (เฉพาะ blocked packets), medium (blocked + invalid), high (ทุก packet), full (รวม packet ที่ allowed) ส่วนใหญ่ใช้ low หรือ medium เพื่อไม่ให้ log ใหญ่เกินไป log อยู่ที่ /var/log/ufw.log

✅ สรุป: ขั้นตอน UFW Firewall สำหรับ VPS ใหม่

  1. ติดตั้ง UFW: sudo apt install ufw
  2. ตั้ง default: sudo ufw default deny incoming + allow outgoing
  3. Allow SSH ก่อน: sudo ufw allow 22/tcp
  4. เปิดพอร์ตที่จำเป็น: 80, 443 และอื่นๆ ตามการใช้งาน
  5. เปิด Rate Limiting SSH: sudo ufw limit ssh
  6. เปิดใช้งาน: sudo ufw enable
  7. ตรวจสอบ: sudo ufw status verbose

การตั้งค่า UFW อย่างถูกต้องตั้งแต่วันแรกที่ได้ VPS จะช่วยป้องกัน port scan, brute force และ unauthorized access ได้อย่างมีประสิทธิภาพ เป็นพื้นฐาน security ที่ทุก VPS ควรมี

พร้อมเริ่มใช้ VPS Linux ที่ปลอดภัย?

AsiaGB VPS ไทยและสิงคโปร์ — Ubuntu/Debian พร้อมใช้งาน, root access เต็ม, Uptime 99%, SSD

ดูแผน VPS ทั้งหมด