ถ้าคุณเป็น sysadmin คุณคงเคยมีช่วงเวลาที่อยากได้ระบบความปลอดภัยที่ทรงพลัง ตั้งค่าง่าย และบริหารจัดการได้สะดวก โดยไม่ต้องดำดิ่งลงไปใน กฎ iptables. UFW หรือ ไฟร์วอลล์ที่ไม่ซับซ้อน เป็นเครื่องมือความปลอดภัยของเครือข่ายที่ตอบโจทย์นี้ได้ดี ด้วยอินเทอร์เฟซที่เข้าใจง่าย UFW ช่วยให้คุณควบคุมการตั้งค่า firewall ของเซิร์ฟเวอร์ได้ด้วยคำสั่งที่ไม่ซับซ้อน
ใน UFW tutorial นี้ เราจะพาคุณไปรู้จักกับ UFW ตั้งแต่การติดตั้งจนถึงการตั้งค่าขั้นสูง ครอบคลุมทั้งการเปิดและปิดใช้งาน UFW การทำความเข้าใจ syntax และตัวอย่างการใช้งานจริงในสถานการณ์ต่าง ๆ เมื่ออ่านจบ คุณจะเข้าใจวิธีใช้ UFW เพื่อป้องกันเซิร์ฟเวอร์ได้อย่างมั่นใจ
ติดตั้ง UFW
แม้จะยังไม่คุ้นเคยกับการจัดการ firewall คุณก็ติดตั้ง UFW ได้ไม่ยาก เพราะขั้นตอนการติดตั้งตรงไปตรงมา ทำตาม UFW tutorial ด้านล่างนี้เพื่อเริ่มใช้งานบนเซิร์ฟเวอร์ของคุณ
ขั้นตอนที่ 1: อัปเดต Package List
ก่อนติดตั้งซอฟต์แวร์ใหม่ใด ๆ ควรอัปเดต package list ก่อนเสมอ
sudo apt update
ขั้นตอนที่ 2: ติดตั้ง UFW
ติดตั้ง UFW ได้ด้วยคำสั่งเดียว:
sudo apt install ufw
ขั้นตอนที่ 3: ตรวจสอบการติดตั้ง
เมื่อติดตั้งเสร็จแล้ว ตรวจสอบว่าการติดตั้งสำเร็จหรือไม่ได้โดยดูเวอร์ชันของ UFW ด้วยคำสั่ง:
ufw version
ขั้นตอนที่ 4: การตั้งค่าเบื้องต้น
ก่อนเปิดใช้งาน UFW ควรตั้งค่าเบื้องต้นให้เรียบร้อยก่อน เพื่อให้แน่ใจว่า UFW ทำงานตามที่คาดไว้เมื่อเปิดใช้งานจริง หนึ่งในขั้นตอนที่สำคัญที่สุดคือการกำหนด default policy ซึ่งโดยค่าเริ่มต้น UFW จะบล็อก connection ขาเข้าทั้งหมด และอนุญาต connection ขาออกทั้งหมด ใช้คำสั่งต่อไปนี้เพื่อตรวจสอบหรือตั้งค่า default เหล่านี้:
sudo ufw default deny incoming
sudo ufw default allow outgoing
ขั้นตอนที่ 5: เปิดใช้งาน UFW
การเปิดใช้งาน UFW จะเป็นการเปิด firewall พร้อมกับกฎและ default policy ที่คุณกำหนดไว้ ใช้คำสั่งต่อไปนี้:
sudo ufw enable
ขั้นตอนที่ 6: ตรวจสอบสถานะของ UFW
ดูสถานะของ UFW และกฎที่ใช้งานอยู่ในปัจจุบันได้ด้วยคำสั่งนี้:
sudo ufw status
เมื่อทำตาม UFW tutorial นี้ครบถ้วนแล้ว คุณจะติดตั้งและเปิดใช้งาน UFW บนเซิร์ฟเวอร์ได้สำเร็จ การตั้งค่าเริ่มต้นนี้ทำให้การปรับแต่งในขั้นต่อไปทำได้ง่ายขึ้น UFW มีความยืดหยุ่นสูงและรองรับการเพิ่มกฎเฉพาะเพื่ออนุญาตหรือบล็อก traffic ตามที่ต้องการ
คำสั่งและ Syntax พื้นฐานของ UFW
UFW ถูกออกแบบมาให้ใช้งานง่าย จึงมีคำสั่งที่ตรงไปตรงมาและ syntax ที่ชัดเจน ช่วยให้การจัดการ firewall ไม่ยุ่งยาก การเข้าใจคำสั่งพื้นฐานและ syntax เหล่านี้จะช่วยให้คุณตั้งค่าและดูแล firewall ของเซิร์ฟเวอร์ได้อย่างมีประสิทธิภาพ ในหัวข้อก่อนหน้าของ UFW tutorial นี้ เราได้พูดถึงการเปิดใช้งาน UFW ไปแล้ว มาดูคำสั่งสำหรับปิดใช้งาน UFW กันต่อ
ปิดการใช้งาน UFW
หากต้องการปิดใช้งาน UFW เพื่อแก้ปัญหาหรือบำรุงรักษาระบบ ใช้คำสั่งนี้:
sudo ufw disable
ตรวจสอบสถานะของ UFW
การตรวจสอบสถานะของ UFW อยู่สม่ำเสมอช่วยให้คุณทราบว่ากฎใดกำลังทำงานอยู่ และยืนยันได้ว่า firewall ทำงานตรงตามที่ต้องการ ตรวจสอบสถานะด้วยคำสั่งนี้:
sudo ufw status
เพิ่ม verbose option ต่อท้ายคำสั่งนี้เพื่อดูรายละเอียดสถานะของ UFW เพิ่มเติม
sudo ufw status verbose
อนุญาตการจราจร
หนึ่งในฟังก์ชันหลักของ UFW คือการอนุญาตหรือบล็อกทราฟฟิกตามข้อกำหนดด้านความปลอดภัยของคุณ หากต้องการอนุญาตทราฟฟิกผ่านพอร์ตที่ระบุ ให้ใช้คำสั่ง allow ตามด้วยหมายเลขพอร์ตและโปรโตคอล (tcp/udp) ตัวอย่างเช่น:
sudo ufw allow 22/tcp
คำสั่งนี้อนุญาตการเชื่อมต่อ SSH ขาเข้าบนพอร์ต 22 โดยใช้โปรโตคอล TCP
ปฏิเสธการเข้าถึง
ในทำนองเดียวกัน หากต้องการบล็อกทราฟฟิก ให้ใช้คำสั่ง deny
sudo ufw deny 23/tcp
คำสั่งนี้บล็อกการเชื่อมต่อ Telnet ขาเข้าบนพอร์ต 23 โดยใช้โปรโตคอล TCP
การอนุญาตทราฟฟิกตาม IP Address
UFW ยังรองรับการอนุญาตหรือบล็อกทราฟฟิกจาก IP address ที่ระบุได้ด้วย วิธีนี้ช่วยให้คุณกำหนดกฎความปลอดภัยได้ละเอียดขึ้น ตัวอย่างเช่น:
sudo ufw allow from 192.168.1.10
การบล็อกทราฟฟิกตาม IP Address
การบล็อกทราฟฟิกตาม IP address ทำได้ตรงไปตรงมาเช่นเดียวกับคำสั่งก่อนหน้า ตัวอย่างการใช้งาน:
sudo ufw deny from 10.0.0.0/8
การจัดการกฎ UFW
ในการทำงานกับ UFW คุณอาจต้องเพิ่ม แก้ไข หรือลบกฎต่าง ๆ มาดูกันว่าคำสั่ง UFW ใดที่ใช้ทำสิ่งเหล่านี้ได้บ้าง เริ่มต้นที่การเพิ่มกฎใหม่ก่อน คุณสามารถใช้คำสั่ง allow หรือ deny ที่อธิบายไปแล้วได้เลย แต่การลบกฎนั้นมีขั้นตอนมากกว่านั้นเล็กน้อย คุณต้องแสดงรายการกฎแบบมีหมายเลขก่อน เพื่อระบุว่าต้องการลบกฎข้อใด ใช้คำสั่งต่อไปนี้เพื่อแสดงรายการกฎพร้อมหมายเลข:
sudo ufw status numbered
จากนั้นลบกฎโดยระบุหมายเลขของกฎนั้น:
sudo ufw delete 1
กำลังโหลด UFW ใหม่
ทุกครั้งที่มีการเปลี่ยนแปลงกฎ UFW ควรโหลด firewall ใหม่เสมอ คำสั่ง UFW ต่อไปนี้จะโหลด UFW ใหม่ให้คุณ:
sudo ufw reload
คำสั่งนี้นำกฎทั้งหมดกลับมาใช้ใหม่โดยไม่จำเป็นต้องปิดและเปิด firewall อีกครั้ง
รีเซ็ตการตั้งค่า UFW
UFW มีคำสั่งสำหรับรีเซ็ตค่าและลบกฎทั้งหมดที่มีอยู่ด้วย แต่ควรทราบว่าหากรีเซ็ต UFW ระบบจะปิดใช้งาน UFW และลบกฎทุกข้อออก คำสั่ง UFW ต่อไปนี้จะรีเซ็ต UFW:
sudo ufw reset
การเรียนรู้คำสั่ง UFW พื้นฐานเหล่านี้และทำความเข้าใจ syntax ของแต่ละคำสั่งเป็นสิ่งจำเป็นสำหรับการจัดการ firewall อย่างมีประสิทธิภาพ ในหัวข้อถัดไป เราจะเจาะลึกการตั้งค่าขั้นสูงและ use case ต่าง ๆ ที่จะช่วยเสริมความปลอดภัยให้เซิร์ฟเวอร์ของคุณยิ่งขึ้น
การใช้ UFW ร่วมกับเครื่องมือความปลอดภัยอื่น
UFW เป็นเครื่องมือที่ดีสำหรับการจัดการ firewall แต่คุณยังสามารถใช้ร่วมกับเครื่องมือความปลอดภัยอื่น ๆ เพื่อให้ได้ประสิทธิภาพสูงสุด หนึ่งในนั้นคือ fail2banซึ่งช่วยป้องกันการโจมตีแบบ brute force โดยตรวจสอบ log และบล็อก IP address ที่มีพฤติกรรมน่าสงสัย วิธีการผสานการทำงาน UFW กับ fail2ban เพื่อเพิ่มความปลอดภัยมีดังนี้
fail2ban เป็นเครื่องมือด้านความปลอดภัยที่สแกน log file เพื่อหารูปแบบการเข้าสู่ระบบที่ล้มเหลวซ้ำ ๆ หรือกิจกรรมที่น่าสงสัยอื่น ๆ เมื่อพบรูปแบบดังกล่าว ระบบจะอัปเดตกฎ firewall โดยอัตโนมัติเพื่อบล็อก IP address นั้น การใช้ UFW ร่วมกับ Fail2ban มีประโยชน์มากในการรับมือกับการโจมตีแบบ brute-force login ที่เกิดซ้ำ
การติดตั้ง fail2ban
หากต้องการติดตั้ง fail2ban ให้รันคำสั่งต่อไปนี้บนเซิร์ฟเวอร์ของคุณ:
sudo apt-get install fail2ban
การตั้งค่า fail2ban ให้ทำงานร่วมกับ UFW
ต่อไปจะอธิบายวิธีตั้งค่า fail2ban ให้ทำงานร่วมกับ UFW
ขั้นตอนที่ 1: สร้างไฟล์การตั้งค่า Local Jail
ไฟล์การตั้งค่าเริ่มต้นของ fail2ban อยู่ที่ /etc/fail2ban/jail.confอย่างไรก็ตาม แนะนำให้สร้างไฟล์สำเนาในเครื่องเพื่อป้องกันการเขียนทับการตั้งค่าของคุณเมื่อ fail2ban ได้รับการอัปเดต คุณสามารถคัดลอกไฟล์คอนฟิกได้ด้วยคำสั่งนี้:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
ขั้นตอนที่ 2: แก้ไขการตั้งค่า Jail
เปิด jail.local ไฟล์ในโปรแกรมแก้ไขข้อความที่คุณต้องการด้วยคำสั่งต่อไปนี้:
sudo nano /etc/fail2ban/jail.local
ในไฟล์นี้ ให้ค้นหาส่วน [DEFAULT] และตั้งค่า ระยะเวลา禁止, ค้นหาเวลา และ maxretry ต่อไปนี้คือรายการความหมายของแต่ละพารามิเตอร์:
- เวลาห้ามแต่ง: กำหนดระยะเวลาที่ IP จะถูกแบน
- Findtime: กำหนดช่วงเวลาที่นับการพยายามเข้าสู่ระบบที่ล้มเหลว
- Maxretry: กำหนดจำนวนครั้งที่ยอมให้ล้มเหลวก่อนที่จะถูกแบน
ตัวอย่างเช่น คุณสามารถตั้งค่าพารามิเตอร์เหล่านี้ได้ดังนี้:
[DEFAULT] bantime = 600 findtime = 600 maxretry = 5
ขั้นตอนที่ 3: เปิดใช้งาน UFW ในการตั้งค่า Jail
ค้นหา [sshd] ส่วน (หรือบริการอื่นที่คุณต้องการป้องกัน) ในไฟล์ jail.local ตรวจสอบให้แน่ใจว่า enabled ถูกตั้งเป็น true และระบุให้ใช้ UFW สำหรับการแบน:
[sshd] enabled = true banaction = ufw port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 5
การตั้งค่านี้จำเป็นเพื่อให้ fail2ban ตรวจสอบบริการ SSH และอัปเดตกฎ UFW เพื่อแบน IP ที่มีพฤติกรรมอันตราย
การเริ่มต้นและเปิดใช้งาน fail2ban
หลังจากตั้งค่า fail2ban แล้ว ให้เริ่มบริการและตั้งให้ทำงานอัตโนมัติเมื่อบูตเครื่อง:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
จากนั้นตรวจสอบสถานะของ fail2ban เพื่อให้แน่ใจว่าทำงานได้ถูกต้อง:
sudo systemctl status fail2ban
ประโยชน์ของการใช้ UFW ร่วมกับ fail2ban
การรวม fail2ban เข้ากับ UFW ช่วยให้คุณมี การป้องกันแบบหลายชั้นUFW ช่วยจัดการกฎ Firewall ได้ตรงไปตรงมา ส่วน fail2ban เพิ่มการป้องกันแบบไดนามิกด้วยการแบน IP ที่แสดงพฤติกรรมอันตราย การทำงานร่วมกันนี้ช่วยลดความเสี่ยงจากการโจมตีแบบ Brute-force และทำให้เซิร์ฟเวอร์ของคุณปลอดภัยอยู่เสมอ
สรุป
ในบทความนี้เราได้อธิบายวิธีใช้ UFW เพื่อเสริมความปลอดภัยให้ระบบและทำให้การจัดการ Firewall เป็นเรื่องง่าย เราได้นำเสนอขั้นตอนการติดตั้งและตั้งค่าที่ทำตามได้ไม่ยาก รวมถึงอธิบายวิธีใช้ UFW ร่วมกับเครื่องมือความปลอดภัยอื่น เช่น fail2ban เพื่อให้การป้องกันมีประสิทธิภาพยิ่งขึ้น
คำถามที่พบบ่อย
จะลบกฎ UFW ที่เพิ่มไปแล้วได้อย่างไร?
หากต้องการลบกฎ UFW ที่ระบุ ให้ใช้คำสั่ง ufw delete ตามด้วยกฎที่ต้องการลบ ตัวอย่างเช่น หากต้องการลบกฎที่อนุญาตการรับส่งข้อมูลบนพอร์ต 80 (HTTP) ให้ใช้คำสั่งต่อไปนี้:
sudo ufw delete allow 80/tcp
UFW ดีกว่า iptables หรือไม่?
UFW ทำให้การจัดการ Firewall ง่ายขึ้นด้วย Syntax ที่เข้าใจง่ายและคำสั่งที่ใช้งานสะดวก จึงเหมาะสำหรับผู้เริ่มต้น ส่วน iptables นั้นให้การควบคุมและปรับแต่งได้ละเอียดกว่า จึงเหมาะสำหรับผู้ใช้ขั้นสูงที่ต้องการกฎ Firewall ที่เฉพาะเจาะจง
อะไรดีกว่ากัน ระหว่าง Firewalld กับ UFW?
UFW ใช้งานง่ายกว่าสำหรับผู้เริ่มต้น เพราะคำสั่งตรงไปตรงมา เหมาะกับการตั้งค่าแบบไม่ซับซ้อน Firewalld มีฟีเจอร์ขั้นสูงและความยืดหยุ่นมากกว่า ทำให้เหมาะกับสภาพแวดล้อมที่ซับซ้อนและกฎ Firewall แบบไดนามิก การเลือกใช้ขึ้นอยู่กับความต้องการและความคุ้นเคยกับแต่ละเครื่องมือ
Firewall ที่ดีที่สุดสำหรับ Ubuntu คืออะไร?
Firewall ที่เหมาะกับ Ubuntu ขึ้นอยู่กับความต้องการของคุณ UFW เป็นตัวเลือกเริ่มต้นที่แนะนำสำหรับผู้ใช้ส่วนใหญ่ เพราะใช้งานง่ายและตรงไปตรงมา สำหรับการตั้งค่าขั้นสูง iptables ให้การควบคุมกฎ Firewall ได้อย่างละเอียด ส่วน Firewalld เป็นอีกตัวเลือกที่รองรับการจัดการกฎ Firewall แบบไดนามิก คุณสามารถใช้ UFW สำหรับงานทั่วไป และพิจารณา iptables หรือ Firewalld สำหรับความต้องการที่ซับซ้อนกว่า