Firewalld 1.0-Version

Vorgestellt wird ein Release der dynamisch gesteuerten Firewall firewalld 1.0, implementiert in Form eines Wrappers über den Paketfiltern nftables und iptables. Firewalld wird als Hintergrundprozess ausgeführt, der es Ihnen ermöglicht, Paketfilterregeln dynamisch über D-Bus zu ändern, ohne die Paketfilterregeln neu laden oder bestehende Verbindungen unterbrechen zu müssen. Das Projekt wird bereits in vielen Linux-Distributionen verwendet, darunter RHEL 7+, Fedora 18+ und SUSE/openSUSE 15+. Der Firewall-Code ist in Python geschrieben und steht unter der GPLv2-Lizenz.

Zur Verwaltung der Firewall wird das Dienstprogramm firewall-cmd verwendet, das beim Erstellen von Regeln nicht auf IP-Adressen, Netzwerkschnittstellen und Portnummern basiert, sondern auf den Namen von Diensten (um beispielsweise den Zugriff auf SSH zu öffnen, müssen Sie dies tun). Führen Sie „firewall-cmd –add –service= ssh“ aus, um SSH zu schließen – „firewall-cmd –remove –service=ssh“). Um die Firewall-Konfiguration zu ändern, können auch die grafische Oberfläche „Firewall-Config“ (GTK) und das Applet „Firewall-Applet“ (Qt) verwendet werden. Unterstützung für die Firewall-Verwaltung über die D-BUS-API firewalld ist in Projekten wie NetworkManager, libvirt, podman, docker und fail2ban verfügbar.

Eine wesentliche Änderung der Versionsnummer ist mit Änderungen verbunden, die die Abwärtskompatibilität beeinträchtigen und das Verhalten bei der Arbeit mit Zonen ändern. Alle in der Zone definierten Filterparameter werden jetzt nur auf Datenverkehr angewendet, der an den Host gerichtet ist, auf dem firewalld ausgeführt wird, und zum Filtern des Transitdatenverkehrs müssen Richtlinien festgelegt werden. Die auffälligsten Änderungen:

  • Das Backend, das es ermöglichte, auf iptables zu arbeiten, wurde für veraltet erklärt. Die Unterstützung für iptables wird auf absehbare Zeit aufrechterhalten, dieses Backend wird jedoch nicht weiterentwickelt.
  • Der zoneninterne Weiterleitungsmodus ist standardmäßig für alle neuen Zonen aktiviert und ermöglicht die freie Bewegung von Paketen zwischen Netzwerkschnittstellen oder Verkehrsquellen innerhalb einer Zone (öffentlich, blockiert, vertrauenswürdig, intern usw.). Um das alte Verhalten wiederherzustellen und zu verhindern, dass Pakete innerhalb einer Zone weitergeleitet werden, können Sie den Befehl „firewall-cmd –permanent –zone public –remove-forward“ verwenden.
  • Regeln im Zusammenhang mit der Adressübersetzung (NAT) wurden in die „inet“-Protokollfamilie verschoben (zuvor zu den „ip“- und „ip6“-Familien hinzugefügt, was dazu führte, dass Regeln für IPv4 und IPv6 dupliziert werden mussten). Durch die Änderung konnten wir Duplikate bei der Verwendung von ipset entfernen – statt drei Kopien von ipset-Einträgen wird jetzt eine verwendet.
  • Die im Parameter „--set-target“ angegebene Aktion „default“ entspricht nun „reject“, d. h. Alle Pakete, die nicht unter die in der Zone definierten Regeln fallen, werden standardmäßig blockiert. Eine Ausnahme gilt nur für ICMP-Pakete, die weiterhin durchgelassen werden. Um das alte Verhalten für die öffentlich zugängliche „vertrauenswürdige“ Zone wiederherzustellen, können Sie die folgenden Regeln verwenden: firewall-cmd –permanent –new-policyallowForward firewall-cmd –permanent –policyallowForward –set-target ACCEPT firewall-cmd –permanent – Richtlinie AllowForward – Add-Ingress-Zone Public Firewall-CMD – Permanent – ​​Richtlinie AllowForward – Add-Egress-Zone Trusted Firewall-CMD – Neu laden
  • Richtlinien mit positiver Priorität werden jetzt unmittelbar vor der Ausführung der Regel „--set-target Catch-All“ ausgeführt, d. h. Im Moment vor dem Hinzufügen des endgültigen Drops können Regeln abgelehnt oder akzeptiert werden, auch für Zonen, die „--set-target drop|reject|accept“ verwenden.
  • Die ICMP-Blockierung gilt jetzt nur für eingehende Pakete, die an den aktuellen Host adressiert sind (Eingabe), und wirkt sich nicht auf Pakete aus, die zwischen Zonen umgeleitet werden (Weiterleitung).
  • Der tftp-client-Dienst, der dazu gedacht war, Verbindungen für das TFTP-Protokoll zu verfolgen, sich aber in einer unbrauchbaren Form befand, wurde entfernt.
  • Die „direkte“ Schnittstelle ist veraltet und ermöglicht das direkte Einfügen vorgefertigter Paketfilterregeln. Die Notwendigkeit dieser Schnittstelle entfiel, nachdem die Möglichkeit hinzugefügt wurde, umgeleitete und ausgehende Pakete zu filtern.
  • Parameter „CleanupModulesOnExit“ hinzugefügt, der standardmäßig auf „Nein“ geändert wird. Mit diesem Parameter können Sie das Entladen von Kernelmodulen nach dem Herunterfahren von Firewalld steuern.
  • Erlaubt, ipset bei der Bestimmung des Zielsystems (Ziel) zu verwenden.
  • Definitionen für WireGuard-, Kubernetes- und Netbios-NS-Dienste hinzugefügt.
  • Autovervollständigungsregeln für zsh implementiert.
  • Die Unterstützung für Python 2 wurde eingestellt.
  • Die Liste der Abhängigkeiten wurde gekürzt. Damit firewalld funktioniert, sind neben dem Linux-Kernel nun nur noch die Python-Bibliotheken dbus, gobject und nftables erforderlich, außerdem werden die Pakete ebtables, ipset und iptables als optional eingestuft. Die Python-Bibliotheken Decorator und Slip wurden aus den Abhängigkeiten entfernt.

Source: opennet.ru

Kommentar hinzufügen