nftables Paketfilter 0.9.9 Verëffentlechung

D'Verëffentlechung vu Paketfilter nftables 0.9.9 gouf publizéiert, vereenegt Paketfilterschnëttplazen fir IPv4, IPv6, ARP an Netzwierkbrécke (zilgeet fir iptables, ip6table, arptables an ebtables ze ersetzen). Zur selwechter Zäit gouf d'Verëffentlechung vun der Begleederbibliothéik libnftnl 1.2.0 publizéiert, déi e Low-Level API fir Interaktioun mam nf_tables Subsystem ubitt. D'Ännerungen erfuerderlech fir d'nftables 0.9.9 Verëffentlechung ze schaffen sinn am Linux Kernel 5.13-rc1 abegraff.

Den nftables Package enthält User-Raum Paketfilterkomponenten, während d'Kernelniveau Aarbecht vum nf_tables Subsystem geliwwert gëtt, deen Deel vum Linux Kernel zënter der Verëffentlechung 3.13. De Kernelniveau bitt nëmmen eng generesch protokollonofhängeg Interface déi Basisfunktiounen ubitt fir Daten aus Päckchen ze extrahieren, Datenoperatiounen auszeféieren a Flowkontrolle.

D'Filterregele selwer a Protokollspezifesch Handler ginn a Benotzerraumbytecode kompiléiert, duerno gëtt dëse Bytecode an de Kernel mat der Netlink Interface gelueden an am Kernel an enger spezieller virtueller Maschinn ausgeführt wéi BPF (Berkeley Packet Filters). Dës Approche mécht et méiglech d'Gréisst vum Filtercode deen um Kernelniveau leeft wesentlech ze reduzéieren an all d'Funktioune vun de Parsingregelen an d'Logik fir mat Protokoller an de Benotzerraum ze réckelen.

Haaptinnovatiounen:

  • D'Kapazitéit fir d'Flowtableveraarbechtung op d'Netzwierkadapter Säit ze réckelen ass implementéiert, aktivéiert mam 'Offload' Fändel. Flowtable ass e Mechanismus fir de Wee vun der Paketviruleedung ze optimiséieren, an deem de komplette Passage vun all Regelveraarbechtungsketten nëmmen op den éischte Paket applizéiert gëtt, an all aner Pakete am Floss direkt weidergeleet ginn. Dësch ip global {flowtable f {Hook ingress Prioritéit Filter + 1 Apparater = {lan3, lan0, wan} Fändelen Offload} Kette viru {Typ Filter Hook Virsprong Prioritéit Filter; Politik akzeptéieren; ip Protokoll {tcp, udp} Flux add @f} Kettepost {Typ nat Hook postrouting Prioritéit Filter; Politik akzeptéieren; oifname "wan" Masquerade } }
  • Ënnerstëtzung bäigefüügt fir e Besëtzer Fändel un en Dësch ze befestigen fir exklusiv Notzung vum Dësch duerch e Prozess ze garantéieren. Wann e Prozess ofgeschloss ass, gëtt den Dësch, dee mat him assoziéiert ass, automatesch geläscht. Informatioun iwwer de Prozess gëtt an de Regelen Dump an der Form vun engem Kommentar ugewisen: Dësch ip x { # progname nft Fändelen Besëtzer Kette y { Typ Filter Hook Input Prioritéit Filter; Politik akzeptéieren; Konterpakete 1 Bytes 309 } }
  • Zousätzlech Ënnerstëtzung fir d'IEEE 802.1ad Spezifizéierung (VLAN Stacking oder QinQ), déi e Mëttel definéiert fir verschidde VLAN Tags an engem eenzegen Ethernet Frame z'ersetzen. Zum Beispill, fir d'Zort vum externen Ethernet Frame 8021ad a vlan id = 342 ze kontrolléieren, kënnt Dir d'Konstruktioun benotzen ... ether Typ 802.1ad vlan id 342 fir den externen Typ vum Ethernet Frame 8021ad/vlan id=1, nested 802.1 ze kontrolléieren q / vlan id = 2 a weider IP Paket Encapsulation: ... ether Typ 8021ad vlan ID 1 vlan Typ 8021q vlan ID 2 vlan Typ IP Konter
  • Zousätzlech Ënnerstëtzung fir d'Gestioun vu Ressourcen mat der vereenegter Hierarchie cgroups v2. De Schlësselunterscheed tëscht cgroups v2 a v1 ass d'Benotzung vun enger gemeinsamer cgroups Hierarchie fir all Zorte vu Ressourcen, anstatt getrennten Hierarchien fir CPU Ressourcen ze allocéieren, fir Erënnerungsverbrauch ze reguléieren, a fir I / O. Zum Beispill, fir z'iwwerpréiwen ob de Virgänger vun engem Socket um éischte Niveau cgroupv2 mat der "system.slice" Mask entsprécht, kënnt Dir d'Konstruktioun benotzen: ... Socket cgroupv2 Level 1 "system.slice"
  • D'Fähigkeit bäigefüügt fir Komponente vu SCTP Pakete ze kontrolléieren (d'Funktionalitéit erfuerderlech fir dëst wäert am Linux 5.14 Kernel erschéngen). Zum Beispill, fir z'iwwerpréiwen ob e Paket e Stéck mat Typ 'Daten' a Feld 'Typ' enthält: ... sctp Chunk Daten existéieren ... sctp Chunk Datentyp 0
  • D'Ausféierung vun der Regel Luede Operatioun gouf mat der "-f" Fändel ëm ongeféier zweemol beschleunegt. D'Ausgab vun der Lëscht vun de Regele gouf och beschleunegt.
  • Eng kompakt Form gëtt zur Verfügung gestallt fir ze kontrolléieren ob Fändelbits agestallt sinn. Zum Beispill, fir ze kontrolléieren ob d'Snat an dnat Status Bits net agestallt sinn, kënnt Dir uginn: ... ct Status ! snat,dnat fir ze kontrolléieren datt de Syn Bit an der Bitmask gesat ass syn,ack: ... tcp Fändelen syn / syn,ack fir ze kontrolléieren ob d'Fin an d'éischt Bits net an der Bitmask gesat ginn syn,ack,fin,rst: ... tcp Fändelen ! = fin,rst / syn,ack,fin,rst
  • Erlaabt d'Schlësselwuert "Uerteel" a Set / Kaarttyp vun Definitiounen: add map xm { typeof iifname . ip Protokoll dport : Uerteel ;}

Source: opennet.ru

Setzt e Commentaire