bk99.de entertain the web since 1997

nftables: der neue Paketfilter im Linux-Kernel

Zusammenfassung

Michael Steinfurth von B1 Systems stellte bei den Chemnitzer Linux-Tagen 2014 nftables vor, den neuen Paketfilter im Linux-Kernel. nftables sollte mittelfristig iptables, ip6tables, arptables und ebtables ablösen. Der Vortrag erklärte das Design, die Unterschiede zu iptables und zeigte eine beispielhafte Migration.

Was nftables besser macht

Unter iptables gab es für IPv4, IPv6, ARP und Bridges jeweils ein eigenes Werkzeug mit eigenen Regeln, und viel Logik steckte fest im Kernel. nftables ersetzt das durch ein einziges Werkzeug namens nft und eine kleine virtuelle Maschine im Kernel, die Regeln ausführt. Neue Filtermöglichkeiten brauchen dadurch keine neuen Kernelmodule mehr.

Für Administratoren bringt nftables eine lesbarere Syntax, eine gemeinsame Tabelle für IPv4 und IPv6 sowie Mengen und Zuordnungstabellen, mit denen sich viele ähnliche Regeln in einer zusammenfassen lassen. Regeländerungen werden außerdem atomar übernommen, also ganz oder gar nicht.

Was daraus wurde

nftables kam mit Linux 3.13 Anfang 2014 in den Kernel. Die Ablösung dauerte länger als gedacht: Erst um 2019 stellten Debian 10 und Red Hat Enterprise Linux 8 auf nftables als Standard um. Viele Werkzeuge nutzen bis heute die iptables-Befehle, die über eine Kompatibilitätsschicht intern nftables-Regeln erzeugen.

Ideen

  • Ein einziges Werkzeug ersetzt getrennte Filter für IPv4, IPv6, ARP und Bridges.
  • Eine kleine virtuelle Maschine im Kernel führt die Filterregeln aus.
  • Mengen und Zuordnungstabellen fassen viele ähnliche Regeln zusammen.

Einsichten

  • Die Ablösung grundlegender Werkzeuge dauert oft viele Jahre.
  • Kompatibilitätsschichten erleichtern den Umstieg, verschleiern aber, was tatsächlich im Kernel passiert.

Fakten

  • Debian 10 und RHEL 8 nutzen nftables als Standard-Backend.
  • Den Vortrag hielt Michael Steinfurth von der B1 Systems GmbH.

Referenzen

Bemerkungen

  • Mit iptables-translate lassen sich bestehende iptables-Regeln in nftables-Syntax übersetzen.

Empfehlungen

  • Schreibe neue Firewall-Regeln direkt in nftables und nutze eine gemeinsame inet-Tabelle für IPv4 und IPv6.
  • Prüfe mit nft list ruleset, welche Regeln tatsächlich aktiv sind, auch wenn Werkzeuge iptables-Befehle verwenden.

Programmpunkt öffnen →

Im Webarchiv suchen