Alcuni giorni fa è stato annunciato il lancio della nuova versione del filtro di pacchetti "nftables 0.9.4", che è stato sviluppato in sostituzione di iptables, ip6table, arptables ed ebtables grazie all'unificazione delle interfacce di filtraggio dei pacchetti per IPv4, IPv6, ARP e bridge di rete.
Il pacchetto nftables include componenti del filtro di pacchetto che funzionano nello spazio utente, mentre a livello di kernel, il sottosistema nf_tables fornisce una parte del kernel Linux dalla versione 3.13.
Solo a livello di base fornisce un'interfaccia comune indipendente da un protocollo specifica e fornisce il Funzioni base estrarre i dati dai pacchetti, eseguire operazioni sui dati e controllare il flusso.
Le regole di filtraggio diretto e driver specifici del protocollo vengono compilati in un bytecode nello spazio utente, dopodiché questo bytecode viene caricato nel kernel utilizzando l'interfaccia Netlink ed eseguito nel kernel in una speciale macchina virtuale che assomiglia a BPF (Berkeley Packet Filters).
Un tale approccio può ridurre in modo significativo la dimensione del codice di filtraggio che funziona a livello di kernel ed eliminare tutte le funzioni di analisi delle regole e della logica di lavoro con i protocolli nello spazio utente.
Principali novità di Nftables 0.9.4
Tutte le modifiche necessarie affinché la versione 0.9.4 di nftables funzioni sono inclusi nel ramo di Kernel Linux 5.6 e in esso il supporto per gamme in combinazioni "Concatenazione, indirizzi specifici e pacchetti di porte che semplificano l'allocazione."
Ad esempio, per un insieme di "whitelist" i cui elementi sono combinazioni, la specifica dell'indicatore "intervallo" indicherà che l'insieme può includere intervalli nell'unione.
Aggiunta la possibilità di utilizzare i join sui collegamenti NAT, consentendo di specificare l'indirizzo e la porta durante la definizione delle trasformazioni NAT in base a elenchi di mappe o insiemi denominati.
Inoltre, il supporto per l'accelerazione hardware con la rimozione di alcune operazioni di filtraggio. Accelerazione è abilitato tramite l'utilità ethtool ("ethtool -K eth0 hw-tc-offload attivo"), Dopodiché si attiva in nftables per la catena principale utilizzando il flag" offload ".
Quando si utilizza il kernel 5.6 di Linux, è supportata l'accelerazione hardwaree per abbinare i campi dell'intestazione e verificare l'interfaccia in entrata in combinazione con i pacchetti di ricezione, rilascio, duplicazione (dup) e inoltro (fwd).
Negli insiemi e negli elenchi di mappe è possibile utilizzare la direttiva "typeof", che determina il formato dell'elemento durante la corrispondenza.
Delle altre modifiche che si distinguono da questa versione:
- Segnalazione migliorata della posizione dei bug nelle regole.
- Aggiunto supporto per la verifica dell'interfaccia slave specificando "Meta sdif" o «metasdifname«
- Aggiunto supporto per lo scorrimento a destra oa sinistra. Ad esempio, per modificare l'etichetta del pacchetto esistente a sinistra di 1 bit e impostare il bit più piccolo su 1.
- Opzione implementata "-V" per visualizzare le informazioni. Le opzioni della riga di comando devono ora essere specificate prima dei comandi. Ad esempio, devi specificare «nft -a lista di regole»Ed esegui«set di regole della lista nft -a»Genererà un errore.
Come installare la nuova versione di nftables 0.9.4?
Per coloro che sono interessati a poter ottenere la nuova versione di nftables 0.9.4 al momento può essere compilato solo il codice sorgente sul tuo sistema. Sebbene in pochi giorni i pacchetti binari già compilati saranno disponibili all'interno delle diverse distribuzioni Linux.
Per compilare, è necessario che siano installate le seguenti dipendenze:
Questi possono essere compilati con:
./autogen.sh
./configure
make
make install
E per nftables 0.9.4 lo scarichiamo da il seguente collegamento. E la compilazione viene eseguita con i seguenti comandi:
cd nftables
./autogen.sh
./configure
make
make install