Veröffentlichung des Paketfilters nftables 1.0.5

Die Veröffentlichung der Paketfilterversion nftables 1.0.5 steht nun zur Verfügung. Diese Version vereinheitlicht die Filter-Schnittstellen für IPv4, IPv6, ARP und Netzwerkbrücken und zielt darauf ab, iptables, ip6tables, arptables und ebtables zu ersetzen. Gleichzeitig wurde die begleitende Bibliothek libnftnl 1.2.3 veröffentlicht, die eine niedrigstufige API zur Interaktion mit dem nf_tables-System bereitstellt.

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.

Wesentliche Änderungen:

  • Im Regel-Optimierer, der durch die Option „-o/—optimize“ aufgerufen wird, wurden Probleme im Zusammenhang mit dem Zusammenführen von Regeln sowie mit Map- und Set-Listen behoben. # cat ruleset.nft table ip x { chain y { type nat hook postrouting priority srcnat; policy drop; ip saddr 1.1.1.1 tcp dport 8000 snat to 4.4.4.4:80 ip saddr 2.2.2.2 tcp dport 8001 snat to 5.5.5.5:90 } } # nft -o -c -f ruleset.nft Merging: ruleset.nft:4:3-52: ip saddr 1.1.1.1 tcp dport 8000 snat to 4.4.4.4:80 ruleset.nft:5:3-52: ip saddr 2.2.2.2 tcp dport 8001 snat to 5.5.5.5:90 into: snat to ip saddr . tcp dport map { 1.1.1.1 . 8000 : 4.4.4.4 . 80, 2.2.2.2 . 8001 : 5.5.5.5 . 90 }
  • Bei der Kombination von Ethernet- und VLAN-Elementen wird eine dynamische Set-Liste definiert, die basierend auf den Paketpfadparametern gefüllt wird. add table netdev x add chain netdev x y { type filter hook ingress device enp0s25 priority 0; } add set netdev x macset { typeof ether daddr . vlan id; flags dynamic,timeout; } add rule netdev x y update @macset { ether daddr . vlan id timeout 60s } add rule netdev x y ether saddr . vlan id { 0a:0b:0c:0d:0e:0f . 42, 0a:0b:0c:0d:0e:0f . 4095 } counter accept
  • Die Anzeige von Regeln mit Map-Listen, die Masken in den Schnittstellennamen enthalten, wurde eingerichtet. table inet filter { chain INPUT { iifname vmap { «eth0» : jump input_lan, «wg*» : jump input_vpn } } chain input_lan {} chain input_vpn {} }
  • Regressive Änderungen, die zu einer falschen lexikalischen Analyse korrekter Regeln führen, wurden behoben.
  • Probleme mit langsamer Verarbeitung und automatischer Zusammenführung großer Listen mit Elementen, die Werteintervalle definieren, wurden gelöst.
  • Der Absturz beim Hinzufügen von Elementen zu einer fehlerhaften Set-Liste wurde behoben.

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