Rilascio del filtro pacchetti nftables 1.0.1

È stata pubblicata la versione 1.0.1 del filtro dei pacchetti nftables, che unifica le interfacce di filtraggio dei pacchetti per IPv4, IPv6, ARP e bridge di rete (destinato a sostituire iptables, ip6tables, arptables e ebtables). Le modifiche necessarie per il funzionamento della versione 1.0.1 di nftables sono incluse nel kernel Linux 5.16-rc1.

Il pacchetto nftables include componenti del filtro pacchetti che operano nello spazio utente, mentre a livello kernel, il funzionamento è garantito dal sottosistema nf_tables, incluso nel kernel Linux dalla versione 3.13. A livello kernel viene fornita solo un'interfaccia generica, non dipendente dal protocollo specifico, che offre funzionalità di base per l'estrazione dei dati dai pacchetti, l'esecuzione di operazioni sui dati e la gestione del flusso.

Le regole di filtraggio e i gestori specifici per i protocolli vengono compilati in bytecode nello spazio utente, dopo di che questo bytecode viene caricato nel kernel tramite l'interfaccia Netlink e viene eseguito nel kernel in un'area speciale. macchina virtuale, che ricorda i BPF (Berkeley Packet Filters). Questo approccio consente di ridurre significativamente la dimensione del codice di filtraggio che opera a livello di kernel, spostando tutte le funzioni di analisi delle regole e la logica di gestione dei protocolli nello spazio utente.

Novità principali:

  • Ridotto il consumo di memoria durante il caricamento di grandi set e mappe.
  • Accelerato il riavvio di set e mappe.
  • Accelerata l'uscita delle tabelle e delle chain selezionate in grandi insiemi di regole. Ad esempio, il tempo di esecuzione del comando 'nft list ruleset' per visualizzare un insieme di regole con 100.000 righe è di 3,049 secondi, mentre per visualizzare solo le tabelle nat e filter ('nft list table nat', 'nft list table filter') si riduce a 1,969 e 0,697 secondi.
  • Accelerata l'esecuzione delle query con l'opzione '--terse' nel trattamento delle regole con grandi set e mappe.
  • È stata fornita la possibilità di filtrare il traffico dalla chain 'egress', gestita allo stesso livello dell'handler egress nella chain netdev (hook egress), ossia nella fase in cui il driver riceve il pacchetto dallo stack di rete del kernel. table netdev filter { chain egress { type filter hook egress devices = { eth0, eth1 } priority 0; meta priority set ip saddr map { 192.168.10.2 : abcd:2, 192.168.10.3 : abcd:3 } } }
  • Consentito il mapping e la modifica dei byte nell'intestazione e nel contenuto del pacchetto secondo uno specifico offset. # nft add rule x y @ih,32,32 0x14000000 counter # nft add rule x y @ih,32,32 set 0x14000000 counter

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster