วิธีจำกัดการเข้าถึงเครือข่ายโดยใช้ FirewallD
ในฐานะผู้ใช้ Linux คุณสามารถเลือกอนุญาตหรือจำกัดการเข้าถึงเครือข่ายสำหรับบริการบางอย่างหรือที่อยู่ IP โดยใช้ไฟร์วอลล์ไฟร์วอลล์ซึ่งมีอยู่ใน CentOS/RHEL 8 และ RHEL ส่วนใหญ่ การแจกแจงแบบพื้นฐาน เช่น Fedora
ไฟร์วอลล์ firewalld ใช้ยูทิลิตีบรรทัดคำสั่ง firewall-cmd เพื่อกำหนดค่ากฎไฟร์วอลล์
ก่อนที่เราจะดำเนินการกำหนดค่าใดๆ ได้ ก่อนอื่นเรามาเปิดใช้งานบริการ ไฟร์วอลล์ โดยใช้ยูทิลิตี systemctl ดังที่แสดง:
sudo systemctl enable firewalld
เมื่อเปิดใช้งานแล้ว คุณสามารถเริ่มบริการ ไฟร์วอลล์ ได้แล้วโดยดำเนินการ:
sudo systemctl start firewalld
คุณสามารถตรวจสอบสถานะของ ไฟร์วอลล์ ได้โดยการรันคำสั่ง:
sudo systemctl status firewalld
ผลลัพธ์ด้านล่างเป็นการยืนยันว่าบริการ ไฟร์วอลล์ เริ่มทำงานแล้ว
การกำหนดค่ากฎโดยใช้ Firewalld
ขณะนี้ ไฟร์วอลล์ ทำงานอยู่ เราก็สามารถดำเนินการกำหนดค่าบางอย่างได้เลย ไฟร์วอลล์ช่วยให้คุณสามารถเพิ่มและบล็อกพอร์ต บัญชีดำ รวมถึงที่อยู่ IP ที่อนุญาตพิเศษ เพื่อให้สามารถเข้าถึงเซิร์ฟเวอร์ได้ เมื่อกำหนดค่าเสร็จแล้ว ตรวจสอบให้แน่ใจว่าคุณโหลดไฟร์วอลล์ซ้ำเสมอเพื่อให้กฎใหม่มีผล
การเพิ่มพอร์ต TCP/UDP
หากต้องการเพิ่มพอร์ต ให้พูดว่าพอร์ต 443 สำหรับ HTTPS ให้ใช้ไวยากรณ์ด้านล่าง โปรดทราบว่าคุณต้องระบุว่าพอร์ตนั้นเป็นพอร์ต TCP หรือ UDP หลังหมายเลขพอร์ต:
sudo firewall-cmd --add-port=22/tcp --permanent
ในทำนองเดียวกัน หากต้องการเพิ่มพอร์ต UDP ให้ระบุตัวเลือก UDP ตามที่แสดง:
sudo firewall-cmd --add-port=53/udp --permanent
ธง --ถาวร
ช่วยให้มั่นใจได้ว่ากฎจะยังคงอยู่แม้จะรีบูตแล้วก็ตาม
การบล็อกพอร์ต TCP/UDP
หากต้องการบล็อกพอร์ต TCP เช่นพอร์ต 22 ให้รันคำสั่ง
sudo firewall-cmd --remove-port=22/tcp --permanent
ในทำนองเดียวกัน การบล็อกพอร์ต UDP จะใช้ไวยากรณ์เดียวกัน:
sudo firewall-cmd --remove-port=53/udp --permanent
การให้บริการ
บริการเครือข่ายถูกกำหนดไว้ในไฟล์ /etc/services หากต้องการอนุญาตบริการเช่น https ให้ดำเนินการคำสั่ง:
sudo firewall-cmd --add-service=https
การบล็อกบริการ
หากต้องการบล็อกบริการ เช่น FTP ให้ดำเนินการ:
sudo firewall-cmd --remove-service=https
ไวท์ลิสต์ที่อยู่ IP
หากต้องการอนุญาตที่อยู่ IP เดียวข้ามไฟร์วอลล์ ให้ดำเนินการคำสั่ง:
sudo firewall-cmd --permanent --add-source=192.168.2.50
คุณยังสามารถอนุญาตช่วงของ IP หรือเครือข่ายย่อยทั้งหมดได้โดยใช้รูปแบบ CIDR (Classless Inter-Domain Routing) ตัวอย่างเช่น หากต้องการอนุญาตเครือข่ายย่อยทั้งหมดในเครือข่ายย่อย 255.255.255.0 ให้ดำเนินการ
sudo firewall-cmd --permanent --add-source=192.168.2.0/24
การลบที่อยู่ IP ที่อนุญาตพิเศษ
หากคุณต้องการลบ IP ที่อนุญาตพิเศษบนไฟร์วอลล์ ให้ใช้แฟล็ก --remove-source
ดังที่แสดง:
sudo firewall-cmd --permanent --remove-source=192.168.2.50
สำหรับซับเน็ตทั้งหมด ให้รัน:
sudo firewall-cmd --permanent --remove-source=192.168.2.50/24
การบล็อกที่อยู่ IP
จนถึงตอนนี้ เราได้เห็นแล้วว่าคุณสามารถเพิ่มและลบพอร์ตและบริการต่างๆ ได้อย่างไร ตลอดจนการอนุญาตพิเศษและการลบ IP ที่อนุญาตพิเศษ หากต้องการบล็อกที่อยู่ IP จะใช้ 'กฎที่สมบูรณ์' เพื่อจุดประสงค์นี้
ตัวอย่างเช่น หากต้องการบล็อก IP 192.168.2.50 ให้รันคำสั่ง:
sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.2.50' reject"
หากต้องการบล็อกเครือข่ายย่อยทั้งหมด ให้รัน:
sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.2.0/24' reject"
บันทึกกฎไฟร์วอลล์
หากคุณได้ทำการเปลี่ยนแปลงกฎไฟร์วอลล์ คุณจะต้องเรียกใช้คำสั่งด้านล่างเพื่อให้การเปลี่ยนแปลงมีผลทันที:
sudo firewall-cmd --reload
การดูกฎไฟร์วอลล์
หากต้องการดูกฎทั้งหมดในไฟร์วอลล์ ให้ดำเนินการคำสั่ง:
sudo firewall-cmd --list-all
นี่เป็นการสรุปคู่มือเกี่ยวกับวิธีการอนุญาตหรือจำกัดการเข้าถึงเครือข่ายโดยใช้ FirewallD บน CentOS/RHEL 8 เราหวังว่าคุณจะพบว่าคู่มือนี้มีประโยชน์