nftables Paketfilter 1.0.6 Verëffentlechung

D'nftables 1.0.6 Paketfilter Verëffentlechung gouf publizéiert, vereenegt Paketfilterschnëttplazen fir IPv4, IPv6, ARP an Netzwierkbrécke (zich fir iptables, ip6table, arptables an ebtables ze ersetzen). Den nftables Package enthält Paketfilterkomponenten déi am Benotzerraum lafen, während de Kernelniveau vum nf_tables Subsystem geliwwert gëtt, deen Deel vum Linux Kernel zënter der Verëffentlechung 3.13. Um Kernelniveau gëtt nëmmen eng generesch protokollonofhängeg Interface zur Verfügung gestallt, déi Basisfunktiounen ubitt fir Daten aus Päckchen ze extrahieren, Operatiounen op Daten auszeféieren an de Flow ze kontrolléieren.

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.

Main Ännerungen:

  • Am Regelen Optimizer genannt wann Dir d'Optioun "-o/--optimize" spezifizéiert, ass automatesch Verpakung vu Regelen ageriicht ginn andeems se se kombinéiert an a Kaart- a Setlëschten ëmgewandelt ginn. Zum Beispill sinn d'Regele # cat ruleset.nft Dësch ip x { Kette y { Typ Filter Hook Input Prioritéit Filter; Politik drop; meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 akzeptéieren meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.4 akzeptéieren meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.3.0 met. 24 .1 ip daddr 1.1.1.2-2.2.4.0 akzeptéieren meta iifname eth2.2.4.10 ip saddr 2 ip daddr 1.1.1.3 akzeptéieren } } no "nft -o -c -f ruleset.nft" gëtt op déi folgend ëmgewandelt: Regelenset. nft:2.2.2.5:4-17: meta iifname eth74 ip saddr 1 ip daddr 1.1.1.1 accept ruleset.nft:2.2.2.3:5-17: meta iifname eth74 ip saddr 1 ip daddr 1.1.1.2 accept ruleset 2.2.2.4:6-17: meta iifname eth77 ip saddr 1 ip daddr 1.1.1.2/2.2.3.0 accept ruleset.nft:24:7-17: meta iifname eth83 ip saddr 1 ip daddr 1.1.1.2. ruleset.nft:2.2.4.0:2.2.4.10-8: meta iifname eth17 ip saddr 74 ip daddr 2 akzeptéieren an: iifname. ip saddr. ip daddr {eth1.1.1.3. 2.2.2.5. 1, eth1.1.1.1. 2.2.2.3. 1, eth1.1.1.2. 2.2.2.4. 1/1.1.1.2, eth2.2.3.0. 24. 1-1.1.1.2, eth2.2.4.0. 2.2.4.10. 2 } akzeptéieren
  • Den Optimizer kann och Regelen condenséieren, déi schonn einfach Setlists an eng méi kompakt Form benotzen, wéi: # cat ruleset.nft table ip filter { chain input { type filter hook input priority filter; Politik drop; iifname "lo" akzeptéieren ct Staat etabléiert, Zesummenhang akzeptéieren Kommentar "Am Traffic mir stamen, mir trauen" iifname "enp0s31f6" ip saddr {209.115.181.102, 216.197.228.230} ip daddr 10.0.0.149 udp123 udp32768 udp65535 udp0 iifname "enp31s6f64.59.144.17" ip saddr {64.59.150.133, 10.0.0.149} ip daddr 53 udp sport 32768 udp dport 65535-6 akzeptéieren } } nodeems se lafen - ft. : ruleset.nft:22:149-0: iifname "enp31s6f209.115.181.102" ip saddr { 216.197.228.230, 10.0.0.149 } ip daddr 123 udp sport 32768, 65535 } ip daddr 7 udp sport 22 143 0 : iifname "enp31s6f64.59.144.17" ip saddr {64.59.150.133, 10.0.0.149} ip daddr 53 udp sport 32768 udp dport 65535-0 akzeptéieren an: iifname. ip saddr. ip daddr. op sport. udp dport {enp31s6f209.115.181.102. 10.0.0.149. 123. 32768. 65535-0, enp31s6f216.197.228.230. 10.0.0.149. 123. 32768. 65535-0, enp31s6f64.59.144.17. 10.0.0.149. 53. 32768. 65535-0, enp31s6f64.59.150.133. 10.0.0.149. 53. 32768. 65535-XNUMX } akzeptéieren
  • E Problem mat Bytecode Generatioun geléist fir Intervalle ze fusionéieren déi Typen mat ënnerschiddlechen Endianness benotzen, sou wéi IPv4 (Netzwierkendian) a Metamark (System Endian). Dësch ip x { Kaart w { Typ vun IP saddr. meta mark: Uerteel Fändelen Intervall Konter Elementer = {127.0.0.1-127.0.0.4. 0x123434-0xb00122: akzeptéieren, 192.168.0.10-192.168.1.20. 0x0000aa00-0x0000aaff: akzeptéieren, }} Kette k {Typ Filterhaken Input Prioritéit Filter; Politik drop; ip saddr. meta mark vmap @w } }
  • Verbesserte seltene Protokollmappingen wann Dir rau Ausdréck benotzt, zum Beispill: meta l4proto 91 @th,400,16 0x0 akzeptéieren
  • Fixéiert Probleemer mat Aktivéierungsregelen mat Intervalle: Regel xy tcp sport {3478-3497, 16384-16387} Konter akzeptéieren
  • D'JSON API gouf verbessert fir Ausdréck a Set- a Kaartlëschten z'ënnerstëtzen.
  • An Extensiounen vun der nftables Python-Bibliothéik sinn d'Regelesets erlaabt fir d'Veraarbechtung am Scheckmodus ("-c") ze laden an d'Ënnerstëtzung fir extern Variabel Definitioun gouf bäigefüügt.
  • Kommentarer bäizefügen ass erlaabt an den Elementer vu Set-Lëschten.
  • Et ass erlaabt Nullwäert an der Byte Tauxlimit ze spezifizéieren.

Source: opennet.ru

Setzt e Commentaire