EQVPS

วิธีตั้งค่าไฟร์วอลล์ UFW บน VPS

ตั้งค่าไฟร์วอลล์ที่เรียบง่ายและได้ผลด้วย UFW: อนุญาต SSH ก่อนเป็นอันดับแรก (เพื่อไม่ให้ตัวเองถูกล็อกออก) เปิดเฉพาะพอร์ตที่จำเป็น แล้วเปิดใช้งาน ได้ไฟร์วอลล์แบบ default-deny ที่สะอาดด้วยคำสั่งเพียงไม่กี่บรรทัด

ไฟร์วอลล์คือตัวตัดสินว่าพอร์ตไหนบนเซิร์ฟเวอร์ของคุณจะรับการเชื่อมต่อจากภายนอก ทุกอย่างที่คุณไม่ได้เปิดไว้อย่างชัดเจนควรถูกปิดกั้น นั่นคือหลักการ default-deny ซึ่งจะลดพื้นผิวการโจมตีลงเหลือแค่บริการที่คุณใช้งานจริงเท่านั้น UFW ทำให้เรื่องนี้ง่ายขึ้นมาก สิ่งเดียวที่ต้องทำให้ถูกต้องคือลำดับขั้นตอน: อนุญาต SSH ก่อน ที่จะเปิดไฟร์วอลล์ ไม่เช่นนั้นคุณจะล็อกตัวเองออกจากเซิร์ฟเวอร์

1. ติดตั้ง UFW (ปกติมักติดตั้งมาให้อยู่แล้ว)

sudo apt update && sudo apt install -y ufw

2. อนุญาต SSH ก่อนเป็นอันดับแรก — ก่อนทำอย่างอื่น

นี่คือขั้นตอนที่ป้องกันการถูกล็อกออก ต้องทำก่อน enable:

sudo ufw allow OpenSSH
# หรือหากคุณใช้พอร์ต SSH แบบกำหนดเอง:
# sudo ufw allow 22/tcp

3. เปิดเฉพาะพอร์ตที่คุณต้องการ

sudo ufw allow 80/tcp     # HTTP หากคุณให้บริการเว็บไซต์
sudo ufw allow 443/tcp    # HTTPS
# เพิ่มพอร์ตเฉพาะแอปเมื่อจำเป็นเท่านั้น เช่น:
# sudo ufw allow 51820/udp   # WireGuard VPN

4. ตั้งนโยบายเริ่มต้นแล้วเปิดใช้งาน

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable           # จะถามยืนยันก่อน

5. ตรวจสอบ

sudo ufw status verbose

คุณควรเห็น SSH และพอร์ตที่คุณเลือกไว้ถูกอนุญาต ส่วนที่เหลือถูกปิดกั้นทั้งหมด ตรวจสอบสิ่งนี้ทุกครั้งหลังทำการเปลี่ยนแปลง

งานที่พบบ่อย

sudo ufw allow 3000/tcp        # เปิดพอร์ต
sudo ufw delete allow 3000/tcp # ปิดพอร์ตนั้นอีกครั้ง
sudo ufw status numbered       # แสดงรายการกฎพร้อมหมายเลข
sudo ufw delete 2              # ลบกฎหมายเลข 2
sudo ufw disable               # ปิดไฟร์วอลล์

ข้อควรระวังที่ต้องพูดตรงๆ

ขั้นตอนถัดไป

ไฟร์วอลล์บวกกับ SSH key คือส่วนใหญ่ของการเสริมความแข็งแกร่งให้เซิร์ฟเวอร์แล้ว ทำต่อให้ครบด้วย เช็กลิสต์ความปลอดภัยสำหรับ VPS ใหม่ กำลังจะเปิดพอร์ต 443 สำหรับเว็บแอปอยู่ใช่ไหม? ดู วิธีตั้งค่า nginx reverse proxy พร้อม HTTPS

คำถามที่พบบ่อย

UFW คืออะไร?

UFW (Uncomplicated Firewall) คือส่วนหน้าที่ใช้งานง่ายสำหรับไฟร์วอลล์ netfilter ของ Linux ซึ่งเป็นมาตรฐานบน Ubuntu และ Debian แทนที่จะเขียนกฎ iptables แบบดิบๆ คุณเพียงแค่บอกว่า 'อนุญาต 443' แล้ว UFW จะจัดการที่เหลือให้ นี่คือวิธีที่เร็วที่สุดในการได้ไฟร์วอลล์แบบ default-deny ที่สมเหตุสมผล

ทำไมต้องอนุญาต SSH ก่อนเปิดใช้งาน UFW?

เพราะทันทีที่คุณเปิดใช้งานไฟร์วอลล์แบบ default-deny พอร์ตใดก็ตามที่ไม่ได้ถูกอนุญาตอย่างชัดเจนจะถูกปิดกั้น รวมถึงพอร์ต 22 ด้วย หากคุณเปิดใช้งาน UFW โดยไม่ได้อนุญาต SSH ก่อน การเชื่อมต่อปัจจุบันของคุณจะยังอยู่รอด แต่การล็อกอินครั้งถัดไปจะถูกปฏิเสธ และคุณจะถูกล็อกออก ให้รัน 'ufw allow OpenSSH' (หรือ 'ufw allow 22/tcp') ก่อน 'ufw enable' เสมอ

ควรเปิดพอร์ตไหนบ้าง?

เปิดเฉพาะพอร์ตที่คุณใช้งานจริงเท่านั้น SSH (22) สำหรับจัดการเครื่อง, 80 และ 443 หากคุณรันเว็บไซต์หรือ reverse proxy และพอร์ตเฉพาะที่แอปของคุณต้องการ ส่วนที่เหลือให้ปิดไว้ทั้งหมด ยิ่งเปิดพอร์ตน้อยเท่าไหร่ พื้นผิวการโจมตีก็ยิ่งเล็กลงเท่านั้น

UFW ป้องกันได้ทุกอย่างหรือไม่?

ไม่ UFW ควบคุมว่าพอร์ตไหนจะรับการเชื่อมต่อ ซึ่งเป็นส่วนสำคัญของงาน แต่มันไม่ได้ตรวจสอบทราฟฟิกที่วิ่งผ่านพอร์ตที่คุณเปิดไว้ ควรใช้ร่วมกับ SSH key, fail2ban สำหรับป้องกัน brute-force และการอัปเดตซอฟต์แวร์อยู่เสมอ ไฟร์วอลล์เป็นเพียงเกราะชั้นหนึ่ง ไม่ใช่กำแพงทั้งหมด

จะตรวจสอบได้อย่างไรว่าตอนนี้เปิดอะไรอยู่บ้าง?

รันคำสั่ง 'sudo ufw status verbose' มันจะแสดงกฎที่ใช้งานอยู่ทั้งหมดและสถานะว่า UFW เปิดใช้งานอยู่หรือไม่ ควรตรวจสอบทุกครั้งหลังทำการเปลี่ยนแปลง เพื่อให้รู้แน่ชัดว่าอะไรเปิดอยู่บ้าง

ความคิดเห็น

ยังไม่มีความคิดเห็น เป็นคนแรกสิ

แสดงความคิดเห็น

ความคิดเห็นจะถูกตรวจสอบก่อนแสดง