Die Veröffentlichung der Paketfilter nftables 1.0.1

Die Veröffentlichung der Paketfilter-Version nftables 1.0.1 bringt eine Vereinheitlichung der Paketfilter-Schnittstellen für IPv4, IPv6, ARP und Netzwerkbrücken (zielt darauf ab, iptables, ip6tables, arptables und ebtables zu ersetzen). Die erforderlichen Änderungen für die Funktionalität von nftables 1.0.1 sind im Linux-Kernel 5.16-rc1 enthalten.

Das Paket nftables umfasst Komponenten des Paketfilters, die im Benutzermodus arbeiten, während die Funktion auf Kernel-Ebene von dem seit Version 3.13 im Linux-Kernel integrierten nf_tables-Subsystem bereitgestellt wird. Auf Kernel-Ebene wird lediglich eine allgemeine Schnittstelle bereitgestellt, die unabhängig vom spezifischen Protokoll ist und grundlegende Funktionen zum Extrahieren von Daten aus Paketen, zur Durchführung von Operationen mit Daten und zur Steuerung des Datenflusses bietet.

Die Filterregeln und protokollspezifischen Handler werden im Benutzermodus in Bytecode kompiliert, der anschließend über die Netlink-Schnittstelle in den Kernel geladen und dort in einem speziellen Kontext ausgeführt wird. virtuellen Maschine, die BPF (Berkeley Packet Filter) ähnelt. Dieser Ansatz ermöglicht eine signifikante Reduzierung der Größe des Filtercodes, der auf Kernel-Ebene arbeitet, und verlagert alle Funktionen zur Regelparserung und Logikbearbeitung von Protokollen in den Benutzermodus.

Hauptneuheiten:

  • Der Speicherverbrauch beim Laden großer Set- und Map-Listen wurde reduziert.
  • Die Neuinitialisierung von Set- und Map-Listen wurde beschleunigt.
  • Die Ausgabe von ausgewählten Tabellen und Ketten in großen Regelsets wurde beschleunigt. Beispielsweise beträgt die Ausführungszeit des Befehls „nft list ruleset“ zur Ausgabe eines Regelsets mit 100.000 Zeilen 3,049 Sekunden, während die Ausgabe nur der nat- und filter-Tabellen („nft list table nat“, „nft list table filter“) auf 1,969 bzw. 0,697 Sekunden reduziert wird.
  • Die Ausführung von Anfragen mit der Option „—terse“ beim Bearbeiten von Regeln mit großen Set- und Map-Listen wurde beschleunigt.
  • Es wurde die Möglichkeit geschaffen, den Verkehr aus der Kette „egress“ zu filtern, die auf derselben Ebene behandelt wird wie der Egress-Handler in der Kette netdev (Hook egress), d.h. in der Phase, in der der Treiber das Paket vom Netzwerk-Stack des Kernels erhält. table netdev filter { chain egress { type filter hook egress devices = { eth0, eth1 } priority 0; meta priority set ip saddr map { 192.168.10.2 : abcd:2, 192.168.10.3 : abcd:3 } } }
  • Es ist erlaubt, Bytes im Header und im Inhalt des Pakets an einer bestimmten Offset zuzuordnen und zu ändern. # nft add rule x y @ih,32,32 0x14000000 counter # nft add rule x y @ih,32,32 set 0x14000000 counter

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster