ไฟร์วอลล์ 1.0 เปิดตัว

มีการนำเสนอการเปิดตัวไฟร์วอลล์ไฟร์วอลล์ที่ควบคุมแบบไดนามิก 1.0 ซึ่งใช้งานในรูปแบบของ wrapper บนตัวกรองแพ็กเก็ต nftables และ iptables ไฟร์วอลล์ทำงานเป็นกระบวนการเบื้องหลังที่ช่วยให้คุณเปลี่ยนกฎตัวกรองแพ็คเก็ตแบบไดนามิกผ่าน D-Bus โดยไม่ต้องโหลดกฎตัวกรองแพ็คเก็ตใหม่หรือทำลายการเชื่อมต่อที่สร้างขึ้น โปรเจ็กต์นี้ถูกใช้อยู่แล้วใน Linux หลายๆ รุ่น รวมถึง RHEL 7+, Fedora 18+ และ SUSE/openSUSE 15+ รหัสไฟร์วอลล์เขียนด้วยภาษา Python และได้รับอนุญาตภายใต้ใบอนุญาต GPLv2

ในการจัดการไฟร์วอลล์นั้นจะใช้ยูทิลิตี้ firewall-cmd ซึ่งเมื่อสร้างกฎนั้นไม่ได้ขึ้นอยู่กับที่อยู่ IP อินเทอร์เฟซเครือข่ายและหมายเลขพอร์ต แต่ขึ้นอยู่กับชื่อของบริการ (ตัวอย่างเช่นเพื่อเปิดการเข้าถึง SSH คุณต้อง เรียกใช้ “firewall-cmd —add —service= ssh” เพื่อปิด SSH – “firewall-cmd –remove –service=ssh”) หากต้องการเปลี่ยนการกำหนดค่าไฟร์วอลล์ คุณสามารถใช้อินเทอร์เฟซแบบกราฟิก firewall-config (GTK) และแอปเพล็ตไฟร์วอลล์ (Qt) ได้ การสนับสนุนการจัดการไฟร์วอลล์ผ่านไฟร์วอลล์ D-BUS API มีอยู่ในโปรเจ็กต์ต่างๆ เช่น NetworkManager, libvirt, podman, docker และ failed2ban

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

  • แบ็กเอนด์ที่อนุญาตให้ทำงานบน iptables ได้รับการประกาศว่าล้าสมัยแล้ว การสนับสนุน iptables จะยังคงดำเนินต่อไปในอนาคตอันใกล้ แต่แบ็กเอนด์นี้จะไม่ได้รับการพัฒนา
  • โหมดการส่งต่อภายในโซนถูกเปิดใช้งานและเปิดใช้งานตามค่าเริ่มต้นสำหรับโซนใหม่ทั้งหมด ช่วยให้สามารถเคลื่อนย้ายแพ็กเก็ตได้อย่างอิสระระหว่างอินเทอร์เฟซเครือข่ายหรือแหล่งที่มาของการรับส่งข้อมูลภายในโซนเดียว (สาธารณะ บล็อก เชื่อถือได้ ภายใน ฯลฯ) หากต้องการคืนพฤติกรรมเก่าและป้องกันการส่งต่อแพ็กเก็ตภายในโซนเดียว คุณสามารถใช้คำสั่ง “firewall-cmd –permanent –zone public –remove-forward”
  • กฎที่เกี่ยวข้องกับการแปลที่อยู่ (NAT) ถูกย้ายไปยังกลุ่มโปรโตคอล “inet” (ก่อนหน้านี้เพิ่มในกลุ่ม “ip” และ “ip6” ซึ่งนำไปสู่ความจำเป็นในการทำซ้ำกฎสำหรับ IPv4 และ IPv6) การเปลี่ยนแปลงทำให้เราสามารถกำจัดรายการที่ซ้ำกันเมื่อใช้ ipset - แทนที่จะใช้รายการ ipset สามชุด ตอนนี้ใช้หนึ่งชุดแล้ว
  • การกระทำ "เริ่มต้น" ที่ระบุในพารามิเตอร์ "--set-target" ตอนนี้เทียบเท่ากับ "ปฏิเสธ" นั่นคือ แพ็กเก็ตทั้งหมดที่ไม่อยู่ภายใต้กฎที่กำหนดไว้ในโซนจะถูกบล็อกโดยค่าเริ่มต้น มีข้อยกเว้นสำหรับแพ็กเก็ต ICMP เท่านั้น ซึ่งยังคงได้รับอนุญาตผ่าน หากต้องการคืนลักษณะการทำงานเก่าสำหรับโซน "ที่เชื่อถือได้" ที่เข้าถึงได้โดยสาธารณะ คุณสามารถใช้กฎต่อไปนี้: firewall-cmd —permanent —new-policy AllowForward firewall-cmd —permanent —policy AllowForward —set-target ACCEPT firewall-cmd —permanent — นโยบายอนุญาตให้ไปข้างหน้า — เพิ่มทางเข้า - โซนไฟร์วอลล์สาธารณะ - cmd — ถาวร — นโยบายอนุญาตไปข้างหน้า — เพิ่ม - ทางออก - โซนไฟร์วอลล์ที่เชื่อถือได้ - cmd — โหลดซ้ำ
  • ขณะนี้นโยบายลำดับความสำคัญเชิงบวกจะถูกดำเนินการทันทีก่อนที่จะดำเนินการกฎ "--set-target catch-all" กล่าวคือ ในขณะนี้ก่อนที่จะเพิ่มการดรอปครั้งสุดท้าย ให้ปฏิเสธหรือยอมรับกฎ รวมถึงโซนที่ใช้ “--set-target drop|ปฏิเสธ|ยอมรับ”
  • ขณะนี้การบล็อก ICMP ใช้กับแพ็กเก็ตขาเข้าที่ส่งไปยังโฮสต์ปัจจุบันเท่านั้น (อินพุต) และไม่ส่งผลกระทบต่อแพ็กเก็ตที่เปลี่ยนเส้นทางระหว่างโซน (ไปข้างหน้า)
  • บริการ tftp-client ที่ออกแบบมาเพื่อติดตามการเชื่อมต่อสำหรับโปรโตคอล TFTP แต่อยู่ในรูปแบบที่ไม่สามารถใช้งานได้ได้ถูกลบออกแล้ว
  • อินเทอร์เฟซ "โดยตรง" เลิกใช้แล้ว ทำให้สามารถแทรกกฎตัวกรองแพ็กเก็ตสำเร็จรูปได้โดยตรง ความต้องการอินเทอร์เฟซนี้หายไปหลังจากเพิ่มความสามารถในการกรองแพ็กเก็ตที่เปลี่ยนเส้นทางและขาออก
  • เพิ่มพารามิเตอร์ CleanupModulesOnExit ซึ่งจะเปลี่ยนเป็น "ไม่" ตามค่าเริ่มต้น การใช้พารามิเตอร์นี้ คุณสามารถควบคุมการยกเลิกการโหลดโมดูลเคอร์เนลได้หลังจากที่ไฟร์วอลล์ปิดตัวลง
  • อนุญาตให้ใช้ ipset เมื่อกำหนดระบบเป้าหมาย (ปลายทาง)
  • เพิ่มคำจำกัดความสำหรับบริการ WireGuard, Kubernetes และ netbios-ns
  • ใช้กฎการเติมข้อความอัตโนมัติสำหรับ zsh
  • การสนับสนุน Python 2 ถูกยกเลิกแล้ว
  • รายการการขึ้นต่อกันถูกตัดให้สั้นลง เพื่อให้ไฟร์วอลล์ทำงานได้ นอกเหนือจากเคอร์เนล Linux แล้ว ตอนนี้จำเป็นต้องใช้ไลบรารี python dbus, gobject และ nftables เพียงตัวเดียว และแพ็คเกจ ebtables, ipset และ iptables ก็ถูกจัดประเภทเป็นทางเลือก มัณฑนากรไลบรารีหลามและสลิปถูกลบออกจากการอ้างอิงแล้ว

ที่มา: opennet.ru

เพิ่มความคิดเห็น