nftables packet filter versione 1.0.2

A liberazione di packet filter nftables 1.0.2 hè stata publicata, unificatu l'interfacce di filtrazione di pacchetti per IPv4, IPv6, ARP è ponti di rete (destinata à rimpiazzà iptables, ip6table, arptables è ebtables). I cambiamenti necessarii per a liberazione nftables 1.0.2 per travaglià sò inclusi in u kernel Linux 5.17-rc.

U pacchettu nftables include cumpunenti di filtru di pacchettu chì funzionanu in u spaziu di l'utilizatori, mentre chì u livellu di u kernel hè furnitu da u subsistema nf_tables, chì hè stata parti di u kernel Linux da a versione 3.13. À u livellu di u kernel, hè furnita solu una interfaccia generica indipendente da u protokollu chì furnisce e funzioni basiche per l'estrazione di dati da i pacchetti, a realizazione di operazioni nantu à e dati è u cuntrollu di u flussu.

I reguli di filtrazione stessi è i gestori specifichi di u protocolu sò compilati in u bytecode di u spaziu di l'utilizatori, dopu chì stu bytecode hè caricatu in u kernel utilizendu l'interfaccia Netlink è eseguitu in u kernel in una macchina virtuale speciale chì s'assumiglia à BPF (Berkeley Packet Filters). Stu approcciu permette di riduce significativamente a dimensione di u codice di filtrazione chì corre à u livellu di u kernel è move tutte e funzioni di e regule di analisi è a logica di travaglià cù protokolli in u spaziu di l'utilizatori.

Innuvazioni principali:

  • Un modu di ottimisazione di e regule hè statu aghjuntu, attivatu utilizendu a nova opzione "-o" ("--optimize"), chì pò esse cumminata cù l'opzione "--check" per verificà è ottimisà i cambiamenti à u schedariu di regule senza veramente caricallu. . L'ottimisazione permette di cumminà regule simili, per esempiu, e regule: meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 accettà meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.5 accept ip saddr 1.1.1.1 ip daddr 2.2.2.2. .2.2.2.2 accettà ip saddr 3.3.3.3 ip daddr XNUMX drop

    serà cumminatu in meta iifname . ip saddr. ip daddr { eth1 . 1.1.1.1. 2.2.2.3, eth1 . 1.1.1.2. 2.2.2.5 } accettà ip saddr . ip daddr vmap { 1.1.1.1 . 2.2.2.2 : accettà, 2.2.2.2 . 3.3.3.3 : goccia }

    Esempiu d'usu: # nft -c -o -f ruleset.test Fusione: ruleset.nft:16:3-37: ip daddr 192.168.0.1 counter accept ruleset.nft:17:3-37: ip daddr 192.168.0.2 counter accept ruleset.nft:18:3-37: ip daddr 192.168.0.3 counter accetta in: ip daddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } counter packets 0 bytes 0 accept

  • I set lists implementanu a capacità di specificà l'opzioni ip è tcp, è ancu sctp chunks: set s5 { typeof ip option ra value elements = { 1, 1024 } } set s7 { typeof sctp chunk init num-inbound-streams elements = { 1, 4 } } chain c5 { ip option ra value @s5 accept } chain c7 { sctp chunk init num-inbound-streams @s7 accept }
  • Aggiuntu supportu per l'opzioni TCP fastopen, md5sig è mptcp.
  • Aghjunghje supportu per l'usu di u sottutipu mp-tcp in i mappings: opzione tcp mptcp subtype 1
  • Codice di filtrazione di u kernel-side miglioratu.
  • Flowtable hà avà un supportu tutale per u formatu JSON.
  • A capacità d'utilizà l'azzione di "rifiutà" in l'operazioni di currispondenza di frame Ethernet hè stata furnita. ether saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 rifiutà

Source: opennet.ru

Add a comment