nftables-Paketfilter 0.9.9-Version

Der Paketfilter nftables 0.9.9 wurde veröffentlicht. Er vereinheitlicht die Schnittstellen zur Paketfilterung für IPv4, IPv6, ARP und Netzwerkbrücken (und ist als Ersatz für iptables, ip6table, arptables und ebtables gedacht). Gleichzeitig wurde die zugehörige Bibliothek libnftnl 1.2.0 veröffentlicht, die eine Low-Level-API für die Interaktion mit dem nf_tables-Subsystem bereitstellt. Die für nftables 0.9.9 erforderlichen Änderungen wurden in den Kernel integriert. Linux 5.13-rc1.

Das nftables-Paket enthält die Paketfilterkomponenten, die im Benutzermodus arbeiten, während die Kernel-Ebene vom nf_tables-Subsystem abgedeckt wird, das Teil des Kernels ist. Linux Seit Version 3.13 wird auf Kernel-Ebene nur noch eine generische, protokollunabhängige Schnittstelle bereitgestellt, die grundlegende Funktionen zum Extrahieren von Daten aus Paketen, zum Durchführen von Datenoperationen und zur Flusssteuerung bietet.

Die Filterregeln selbst und protokollspezifische Handler werden im Benutzermodus in Bytecode kompiliert. Anschließend wird dieser Bytecode über die Netlink-Schnittstelle in den Kernel geladen und dort in einem speziellen Kernel ausgeführt. virtuelle MaschineÄhnlich wie bei BPF (Berkeley Packet Filters) ermöglicht dieser Ansatz eine deutliche Reduzierung des Umfangs des auf Kernel-Ebene ausgeführten Filtercodes und verlagert die gesamte Regelanalyse und Protokolllogik in den Benutzermodus.

Wichtigste Neuerungen:

  • Die Möglichkeit, die Flowtable-Verarbeitung auf die Seite des Netzwerkadapters zu verlagern, wurde implementiert und mithilfe des Flags „Offload“ aktiviert. Flowtable ist ein Mechanismus zur Optimierung des Pfads der Paketumleitung, bei dem der vollständige Durchgang aller Regelverarbeitungsketten nur auf das erste Paket angewendet wird und alle anderen Pakete im Fluss direkt weitergeleitet werden. table ip global { flowtable f { Hook-Ingress-Prioritätsfilter + 1 Geräte = { lan3, lan0, wan } Flags Offload } Chain Forward { Type Filter Hook Forward Priority Filter; Politik akzeptieren; IP-Protokoll { TCP, UDP } Flow Add @f } Chain Post { Typ Nat Hook Postrouting Priority Filter; Politik akzeptieren; oifname „wan“ Maskerade } }
  • Unterstützung für das Anhängen eines Besitzerflags an eine Tabelle hinzugefügt, um die ausschließliche Nutzung der Tabelle durch einen Prozess sicherzustellen. Wenn ein Prozess beendet wird, wird die damit verbundene Tabelle automatisch gelöscht. Informationen zum Prozess werden im Regel-Dump in Form eines Kommentars angezeigt: table ip x { # progname nft flagsowner chain y { type filterhook input priority filter; Politik akzeptieren; Zählerpakete 1 Byte 309 } }
  • Unterstützung für die IEEE 802.1ad-Spezifikation (VLAN-Stacking oder QinQ) hinzugefügt, die ein Mittel zum Ersetzen mehrerer VLAN-Tags in einem einzigen Ethernet-Frame definiert. Um beispielsweise den Typ des externen Ethernet-Frames 8021ad und die VLAN-ID=342 zu überprüfen, können Sie die Konstruktion verwenden ... Ether-Typ 802.1ad VLAN-ID 342, um den externen Typ des Ethernet-Frames 8021ad/VLAN-ID=1, verschachtelt 802.1, zu überprüfen q/vlan id=2 und weitere IP-Paket-Kapselung: ... Ether Typ 8021ad VLAN-ID 1 VLAN-Typ 8021q VLAN-ID 2 VLAN-Typ IP-Zähler
  • Unterstützung für die Verwaltung von Ressourcen mithilfe der einheitlichen Hierarchie cgroups v2 hinzugefügt. Der Hauptunterschied zwischen cgroups v2 und v1 besteht in der Verwendung einer gemeinsamen cgroups-Hierarchie für alle Arten von Ressourcen anstelle separater Hierarchien zur Zuweisung von CPU-Ressourcen, zur Regulierung des Speicherverbrauchs und für E/A. Um beispielsweise zu überprüfen, ob der Vorfahre eines Sockets auf der ersten Ebene cgroupv2 mit der Maske „system.slice“ übereinstimmt, können Sie die Konstruktion verwenden: ... socket cgroupv2 level 1 „system.slice“
  • Es wurde die Möglichkeit hinzugefügt, die Komponenten von SCTP-Paketen zu überprüfen (die für den Betrieb erforderliche Funktionalität wird im Kernel implementiert). Linux 5.14). Um beispielsweise zu prüfen, ob ein Paket einen Chunk mit dem Typ „data“ und dem Feld „type“ enthält: … sctp chunk data exists … sctp chunk data type 0
  • Die Ausführung des Regelladevorgangs wurde mithilfe des Flags „-f“ um etwa das Zweifache beschleunigt. Auch die Ausgabe der Regelliste wurde beschleunigt.
  • Es wird eine kompakte Form zur Überprüfung, ob Flag-Bits gesetzt sind, bereitgestellt. Um beispielsweise zu überprüfen, ob die Statusbits snat und dnat nicht gesetzt sind, können Sie Folgendes angeben: ... ct status ! snat,dnat, um zu prüfen, ob das Syn-Bit in der Bitmaske gesetzt ist syn,ack: ... TCP-Flags syn / syn,ack, um zu prüfen, ob die fin- und rst-Bits in der Bitmaske nicht gesetzt sind syn,ack,fin,rst: ... TCP-Flags ! = fin,rst / syn,ack,fin,rst
  • Erlauben Sie das Schlüsselwort „verdict“ in set/map typeof-Definitionen: add map xm { typeof iifname . IP-Protokoll Bericht: Urteil ;}

Source: opennet.ru

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