UFW (Uncomplicated Firewall)
UFW (Uncomplicated Firewall) เป็นส่วนติดต่อผู้ใช้สำหรับจัดการไฟร์วอลล์ที่เป็นค่าเริ่มต้นบน Ubuntu โดยจะจัดการตัวกรองแพ็กเก็ตของเคอร์เนลผ่านคำสั่งสั้นๆ เช่น ufw allow 22/tcp ซึ่งจะถูกติดตั้งมาให้แต่ไม่ได้เปิดใช้งานโดยค่าเริ่มต้น และนโยบายเริ่มต้นคือปฏิเสธการเชื่อมต่อขาเข้าและอนุญาตการเชื่อมต่อขาออก
1กฎ
ufw allow 443/tcp เป็นการเปิดพอร์ต, ufw deny เป็นการบล็อกพอร์ต และ ufw limit ssh เป็นการอนุญาต SSH แต่บล็อกที่อยู่ที่มีการเชื่อมต่อเข้ามาบ่อยเกินไป ufw allow from 203.0.113.5 to any port 22 เป็นการอนุญาตเฉพาะที่อยู่เดียวเท่านั้น โปรไฟล์แอปพลิเคชัน เช่น 'OpenSSH' สามารถดูรายการได้ด้วย ufw app list
2สถานะและการลบ
ufw status verbose จะแสดงนโยบายและกฎต่างๆ ส่วน ufw status numbered จะแสดงหมายเลขกำกับกฎเพื่อให้สามารถใช้ ufw delete <number> ในการลบกฎออกได้
3Docker และ UFW
Docker จะเขียนกฎ iptables ของตัวเองสำหรับพอร์ตคอนเทนเนอร์ที่เผยแพร่ ซึ่งจะถูกประมวลผลก่อนกฎของ UFW ดังนั้นพอร์ตที่เผยแพร่ด้วย docker run -p จึงอาจเข้าถึงได้แม้ว่า UFW จะไม่ได้อนุญาตก็ตาม
วิธีเปิดใช้งาน UFW โดยไม่ทำให้ตัวเองถูกตัดการเชื่อมต่อ
- อนุญาต SSH ก่อน:
sudo ufw allow OpenSSH - อนุญาตบริการอื่นๆ ที่คุณต้องการ เช่น:
sudo ufw allow 443/tcp - เปิดใช้งานไฟร์วอลล์:
sudo ufw enable - ตรวจสอบผลลัพธ์:
sudo ufw status verbose
ข้อควรระวัง
- การเปิดใช้งาน UFW ผ่าน SSH โดยไม่มีกฎ SSH จะทำให้การเชื่อมต่อของคุณถูกตัด
- พอร์ตที่เผยแพร่โดยคอนเทนเนอร์ Docker สามารถข้ามกฎของ UFW ได้
บทความที่เกี่ยวข้อง
- คีย์ SSHวิธีการทำงานของการยืนยันตัวตนด้วยคีย์ SSH, วิธีสร้างคีย์ด้วย ssh-keygen, การติดตั้งบนเซิร์ฟเวอร์ และการป้องกันคีย์
- systemd units และ systemctlsystemd unit คืออะไร ประเภทของ unit ที่พบบ่อย รวมถึงวิธีการเริ่ม หยุด เปิดใช้งาน และตรวจสอบบริการต่างๆ ด้วย systemctl
- journalctl และ systemd journalวิธีอ่านบันทึกด้วย journalctl ตรวจสอบพื้นที่ที่ journal ใช้งาน และลดขนาดอย่างปลอดภัยด้วยตัวเลือก --vacuum
แหล่งอ้างอิง
- หน้าคู่มือ ufw(8) (Ubuntu) manpages.ubuntu.com
- ไฟร์วอลล์ (เอกสารประกอบ Ubuntu Server) ubuntu.com
ตรวจสอบล่าสุด: