Miklix

วิธีการตั้งค่าไฟร์วอลล์บนเซิร์ฟเวอร์ Ubuntu

ที่ตีพิมพ์: 15 กุมภาพันธ์ 2025 เวลา 21 นาฬิกา 35 นาที 22 วินาที UTC
ปรับปรุงล่าสุด : 12 มกราคม 2026 เวลา 8 นาฬิกา 37 นาที 38 วินาที UTC

บทความนี้อธิบายและยกตัวอย่างวิธีการตั้งค่าไฟร์วอลล์บน GNU/Linux โดยใช้ ufw ซึ่งย่อมาจาก Uncomplicated FireWall และชื่อนี้ก็เหมาะสมอย่างยิ่ง เพราะมันเป็นวิธีที่ง่ายมากที่จะช่วยให้คุณมั่นใจได้ว่าคุณไม่ได้เปิดพอร์ตมากเกินความจำเป็น


หน้าเพจนี้ได้รับการแปลจากเครื่องคอมพิวเตอร์จากภาษาอังกฤษ เพื่อให้ทุกคนเข้าถึงได้มากที่สุด น่าเสียดายที่การแปลด้วยเครื่องยังไม่ถือเป็นเทคโนโลยีที่สมบูรณ์แบบ จึงอาจเกิดข้อผิดพลาดได้ หากต้องการ คุณสามารถดูเวอร์ชันภาษาอังกฤษต้นฉบับได้ที่นี่:

How to Set Up a Firewall on Ubuntu Server

ข้อมูลในโพสต์นี้อ้างอิงจาก Ubuntu Server 14.04 x64 อาจใช้ได้หรือไม่ก็ได้กับเวอร์ชันอื่นๆ (อัปเดต: ผมยืนยันได้ว่าข้อมูลในโพสต์นี้ยังคงใช้ได้และทำงานได้ตามปกติใน Ubuntu Server 24.04 อย่างไรก็ตาม ในช่วง 10 ปีที่ผ่านมา ufw ได้พัฒนาให้ "ฉลาดขึ้น" โดยมีโปรไฟล์สำหรับแอปพลิเคชันเซิร์ฟเวอร์ทั่วไป (ตัวอย่างเช่น คุณสามารถเปิดใช้งาน "Nginx แบบเต็ม" แทนที่จะเปิดใช้งานพอร์ต 80 และ 443 แยกกัน) และการปิด/เปิดใช้งานไฟร์วอลล์ทั้งหมดเพื่อให้กฎใหม่มีผลบังคับใช้ก็ไม่จำเป็นอีกต่อไป)

เมื่อผมเริ่มใช้งานเซิร์ฟเวอร์ GNU/Linux (Ubuntu) ครั้งแรก การตั้งค่าไฟร์วอลล์นั้นต้องสร้างและดูแลไฟล์การกำหนดค่า iptables ด้วยตนเอง ซึ่งอาจมีความซับซ้อน แต่เมื่อไม่นานมานี้ ผมได้ค้นพบ ufw ซึ่งย่อมาจาก Uncomplicated Firewall – และมันก็เป็นเช่นนั้นจริงๆ :-)

Ubuntu Server 14.04 ที่ผมติดตั้งนั้นมี ufw ติดตั้งอยู่แล้ว แต่ถ้าเครื่องของคุณไม่มี ก็สามารถติดตั้งได้จากคลังซอฟต์แวร์:

sudo apt-get install ufw

UFW จริงๆ แล้วเป็นเพียงเครื่องมือที่ช่วยลดความซับซ้อนของการตั้งค่า iptables เท่านั้น เบื้องหลังแล้ว การกรองข้อมูลยังคงดำเนินการโดย iptables และไฟร์วอลล์ของเคอร์เนล Linux ดังนั้น ufw จึงไม่ได้มีความปลอดภัยน้อยกว่าหรือมากกว่าระบบเหล่านั้น อย่างไรก็ตาม เนื่องจาก ufw ช่วยให้การตั้งค่าไฟร์วอลล์ทำได้ง่ายขึ้นมาก จึงอาจลดความเสี่ยงจากความผิดพลาดของมนุษย์ และอาจมีความปลอดภัยมากกว่าสำหรับผู้ดูแลระบบที่ไม่มีประสบการณ์

หากเซิร์ฟเวอร์ของคุณตั้งค่าให้ใช้ทั้ง IPv6 และ IPv4 โปรดตรวจสอบให้แน่ใจว่าได้เปิดใช้งานสำหรับ UFW แล้ว แก้ไขไฟล์ /etc/default/ufw และมองหาบรรทัดที่เขียนว่า IPV6=yes ในการติดตั้งของฉัน บรรทัดนี้มีอยู่แล้ว แต่ถ้าไม่มี หรือถ้าเขียนว่า no คุณควรแก้ไข

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

ตัวอย่างเช่น หากคุณใช้ ssh บนพอร์ตมาตรฐาน 22 และกำลังกำหนดค่าเว็บเซิร์ฟเวอร์ที่รองรับทั้งการเชื่อมต่อแบบไม่เข้ารหัส (HTTP บนพอร์ต 80) และแบบเข้ารหัส (HTTPS บนพอร์ต 443) คุณจะต้องใช้คำสั่งต่อไปนี้ในการกำหนดค่า ufw:

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

หากต้องการเพิ่มกฎเกณฑ์เพิ่มเติม ก็สามารถเพิ่มได้ตามตัวอย่างข้างต้น

หากคุณมีที่อยู่ IP แบบคงที่และต้องการเชื่อมต่อผ่าน SSH จากที่เดียวเท่านั้น คุณสามารถจำกัดการเชื่อมต่อ SSH ไปยังที่อยู่ต้นทางเดียวได้ดังนี้:

sudo ufw allow from 192.168.0.1 to any port 22

แน่นอน คุณสามารถป้อนที่อยู่ IP ของคุณเองได้

เมื่อเสร็จแล้ว ให้เปิดใช้งาน ufw โดยป้อนคำสั่ง:

sudo ufw enable

เสร็จเรียบร้อยแล้ว! ไฟร์วอลล์ทำงานอยู่และจะเริ่มต้นทำงานโดยอัตโนมัติเมื่อคุณรีบูตเซิร์ฟเวอร์ :-)

หากคุณทำการเปลี่ยนแปลงการตั้งค่า ufw คุณอาจต้องปิดใช้งานและเปิดใช้งานอีกครั้งเพื่อให้การเปลี่ยนแปลงมีผล ดังนี้:

sudo ufw disable
sudo ufw enable

หากต้องการดูการตั้งค่าปัจจุบัน เพียงป้อน:

sudo ufw status

หากไม่ได้เปิดใช้งาน ufw ระบบจะแสดงข้อความ "ไม่ทำงาน" แต่หากเปิดใช้งานแล้ว ระบบจะแสดงรายการกฎที่กำหนดไว้ในปัจจุบัน

แชร์บนบลูสกายแชร์บนเฟสบุ๊คแชร์บน LinkedInแชร์บน Tumblrแชร์บน Xแชร์บน LinkedInปักหมุดบน Pinterest

มิคเคล คริสเตนเซ่น

เกี่ยวกับผู้เขียน

มิคเคล คริสเตนเซ่น
ไมเคิล คือผู้สร้างและเจ้าของเว็บไซต์ miklix.com เขามีประสบการณ์เป็นโปรแกรมเมอร์/นักพัฒนาซอฟต์แวร์คอมพิวเตอร์มืออาชีพมากว่า 20 ปี และปัจจุบันทำงานเต็มเวลาให้กับบริษัทไอทีขนาดใหญ่แห่งหนึ่งในยุโรป เมื่อไม่ได้เขียนบล็อก เขาจะใช้เวลาว่างไปกับความสนใจ งานอดิเรก และกิจกรรมต่างๆ มากมาย ซึ่งในระดับหนึ่งอาจสะท้อนให้เห็นได้จากหัวข้อต่างๆ มากมายที่กล่าวถึงในเว็บไซต์นี้