Ubuntu usa nftables?
Come installare NfTables in Ubuntu
Figura 1: modello NFTABLE TCP/IP
Inizia con NfTables
Estamos traciendo nuestros guías y tutorials al español. Es posizione que usted esté viego una tracción generada Automáticamete. Estamos trabajando con traductore Profesionales para verificar Las traccciones de nuestro sitio web. Este Proyecto es Un Trabajo en Curso.
Crea un account Linode per provare questa guida con un credito $ .
Questo credito verrà applicato a qualsiasi servizio valido utilizzato durante i tuoi primi giorni.
NfTables sostituisce i riusciti iptables e i suoi framework correlati costruiti su NetFilter. Con NFTables arrivano miglioramenti alle prestazioni e all’usabilità, ma anche cambiamenti significativi alla sintassi e all’utilizzo. Usa questa guida per iniziare a conoscere cosa è NFTables e come differisce dagli iptables. Segui insieme l’esempio di questa guida per implementare le tue regole in NFTables e avere un’idea pratica di cosa può fare.
Cosa sono nftables?
NFTABLE è un framework di classificazione dei pacchetti Linux che sostituisce l’infrastruttura NetFilter dietro iptables, ip6tables, arptables ed ebtables. I framework che utilizzano l’infrastruttura NETFilter legacy vengono gradualmente usciti dalle principali distribuzioni Linux. Questi framework hanno iniziato ad adottare NfTables come framework di classificazione dei pacchetti predefiniti.
Nonostante l’ubiquità degli iptables, la sua architettura ha diversi limiti e inefficienze sottostanti, e questi potrebbero essere risolti solo con una riprogettazione fondamentale. Quella riprogettazione è ciò che NfTables ha deciso di realizzare.
nftables vs. iptables
Nftables mantiene alcune delle parti familiari dell’infrastruttura netfilter e iptables. Come per iptables, NfTables utilizza ancora le tabelle, le catene e la gerarchia delle regole: tabelle contenenti catene e catene contenenti regole. Mentre NfTables modifica la sintassi della riga di comando, mantiene un livello di compatibilità che consente di eseguire i comandi iptables sul kernel NfTables.
Nftables introduce anche cambiamenti significativi nell’uso dagli iptables. Per uno, come menzionato sopra, la sintassi della riga di comando per NfTables è diversa. Quelle che segue sono ulteriori differenze notevoli tra nftables e iptables.
- A differenza degli iptables, NfTables non ha tabelle o catene predefinite, il che va al miglioramento delle prestazioni.
- In NFTABLE, le regole possono intraprendere molteplici azioni, al contrario della limitazione di iptables a una singola azione per regola.
- NFTables viene fornito con una famiglia di indirizzi Inet che consente di creare facilmente tabelle che si applicano sia a IPv4 che a IPv6.
- Il set di regole di NfTables è rappresentato da un elenco collegato dinamico, che migliora la manutenibilità del set delle regole rispetto al set di regole monolitico di iptables.
Inoltre, l’infrastruttura del set generico di NfTables apre nuove opzioni per strutturare il tuo set di regole, consentendo anche strutture multidimensionali “albero”. È possibile utilizzarlo per ridurre significativamente il numero di regole interrogate per determinare le azioni appropriate per un pacchetto.
Come installare NfTables
Non è necessario installare NFTables se si utilizza una delle seguenti versioni di distribuzione o successivamente:
- Debian 10 (Buster)
- Ubuntu 20.10 (Groovy Gorilla)
- CentOS 8
- Fedora 32
Altrimenti, è possibile installare manualmente NfTables utilizzando i seguenti passaggi. Questi passaggi funzionano per Debian 9, Ubuntu 18.04 e centos 7 e successive rilasci di queste distribuzioni.
Prima di iniziare
- Se non l’hai già fatto, crea un account Linode e un’istanza di calcolo. Guarda il nostro inizio con Linode e creazione di guide di istanza di calcolo.
- Segui la nostra configurazione e proteggendo una guida all’istanza di calcolo per aggiornare il sistema. È inoltre possibile impostare il fuso orario, configurare il tuo nome host, creare un account utente limitato e indurire l’accesso SSH.
Questa guida è scritta per gli utenti non root. I comandi che richiedono privilegi elevati sono prefissi con sudo . Se non hai familiarità con il comando sudo, consulta la guida per utenti e gruppi Linux.
Passaggi di installazione
- Installa NfTables.
- Sulle distribuzioni di Debian e Ubuntu, usa il comando:
SUDO APT Installa NfTables
sudo yum installa nftables
sudo systemctl abilita nftables sudo systemctl avvio nftables
sudo apt installa iptables-nftables-compat sudo iptables-save> iptables.Dump sudo sudo iptables-restatore-translata -f iptables.Dump> Regolet.NFT SUDO NFT -f Regolet.nft
È possibile verificare l’importazione ottenendo un elenco di tabelle ora in NFTABLE.
tabelle di elenco sudo nft
Come usare NfTables
Questa sezione suddivide ciascuno dei principali componenti di NfTables, fornendo i loro comandi più utili. Alla fine di questa guida, puoi trovare una dimostrazione di come impostare un set di regole di lavoro e vederlo in azione.
Tavoli
Le tabelle sono il livello più alto della gerarchia NFTABLE. Una determinata tabella corrisponde a una famiglia di un solo indirizzo e contiene catene che filtrano i pacchetti in quella famiglia di indirizzi.
- Per creare una tabella, utilizzare il comando di esempio. Sostituisci Esempio_Table di seguito e negli esempi successivi, con un nome descrittivo per la tabella.
sudo nft aggiungi tabella inet esempio_table
tabelle di elenco sudo nft
sudo nft elimina tabella inet esempio_table
tabella a filo sudo nft int Esempio_table
Catene
Catena
Come installare NfTables in Ubuntu
Figura 1: modello NFTABLE TCP/IP
Inizia con NfTables
Estamos traciendo nuestros guías y tutorials al español. Es posizione que usted esté viego una tracción generada Automáticamete. Estamos trabajando con traductore Profesionales para verificar Las traccciones de nuestro sitio web. Este Proyecto es Un Trabajo en Curso.
Crea un account Linode per provare questa guida con un credito $ .
Questo credito verrà applicato a qualsiasi servizio valido utilizzato durante i tuoi primi giorni.
nftables Sostituisce gli iptables di successo e i suoi framework correlati costruiti su Netfilter. Con NFTables arrivano miglioramenti alle prestazioni e all’usabilità, ma anche cambiamenti significativi alla sintassi e all’utilizzo. Usa questa guida per iniziare a conoscere cosa è NFTables e come differisce dagli iptables. Segui questa guida’S Esempio per implementare le tue regole in NFTABLE e avere un’idea pratica di cosa può fare.
Cosa sono nftables?
NfTables è un framework di classificazione dei pacchetti Linux che sostituisce il Netfilter infrastruttura dietro iptables, ip6tables, arptables ed ebtables. I framework che utilizzano l’infrastruttura NETFilter legacy vengono gradualmente usciti dalle principali distribuzioni Linux. Questi framework hanno iniziato ad adottare NfTables come framework di classificazione dei pacchetti predefiniti.
Nonostante l’ubiquità degli iptables, la sua architettura ha diversi limiti e inefficienze sottostanti, e questi potrebbero essere risolti solo con una riprogettazione fondamentale. Quella riprogettazione è ciò che NfTables ha deciso di realizzare.
nftables vs. iptables
Nftables mantiene alcune delle parti familiari dell’infrastruttura netfilter e iptables. Come per iptables, NfTables utilizza ancora le tabelle, le catene e la gerarchia delle regole: tabelle contenenti catene e catene contenenti regole. Mentre NfTables modifica la sintassi della riga di comando, mantiene un livello di compatibilità che consente di eseguire i comandi iptables sul kernel NfTables.
Nftables introduce anche cambiamenti significativi nell’uso dagli iptables. Per uno, come menzionato sopra, la sintassi della riga di comando per NfTables è diversa. Quelle che segue sono ulteriori differenze notevoli tra nftables e iptables.
- A differenza degli iptables, NfTables non ha tabelle o catene predefinite, il che va al miglioramento delle prestazioni.
- In NfTables, le regole possono intraprendere molteplici azioni, al contrario degli iptables’ limitazione a una singola azione per regola.
- NFTables viene fornito con una famiglia di indirizzi Inet che consente di creare facilmente tabelle che si applicano sia a IPv4 che a IPv6.
- nftables’ Il set di regole è rappresentato da un elenco collegato dinamico, che migliora il set delle regole’mantenibilità s rispetto agli iptables’ Regolet blob monolitico.
Inoltre, nftables’ L’infrastruttura set generica apre nuove opzioni per strutturare il tuo set, consentendo anche multidimensionali “albero” strutture. È possibile utilizzarlo per ridurre significativamente il numero di regole interrogate per determinare le azioni appropriate per un pacchetto.
Come installare NfTables
Non è necessario installare NFTables se si utilizza una delle seguenti versioni di distribuzione o successivamente:
- Debian 10 (Buster)
- Ubuntu 20.10 (Groovy Gorilla)
- CentOS 8
- Fedora 32
Altrimenti, è possibile installare manualmente NfTables utilizzando i seguenti passaggi. Questi passaggi funzionano per Debian 9, Ubuntu 18.04 e centos 7 e successive rilasci di queste distribuzioni.
Prima di iniziare
- Se non l’hai già fatto, crea un account Linode e un’istanza di calcolo. Guarda il nostro inizio con Linode e creazione di guide di istanza di calcolo.
- Segui la nostra configurazione e proteggendo una guida all’istanza di calcolo per aggiornare il sistema. È inoltre possibile impostare il fuso orario, configurare il tuo nome host, creare un account utente limitato e indurire l’accesso SSH.
Questa guida è scritta per gli utenti non root. I comandi che richiedono privilegi elevati sono prefissi con sudo . Se tu’non familiarità con il comando sudo, consultare la guida per utenti e gruppi Linux.
Passaggi di installazione
- Installa NfTables.
- Sulle distribuzioni di Debian e Ubuntu, usa il comando:
SUDO APT Installa NfTables
sudo yum installa nftables
sudo systemctl abilita nftables sudo systemctl avvio nftables
sudo apt installa iptables-nftables-compat sudo iptables-save> iptables.Dump sudo sudo iptables-restatore-translata -f iptables.Dump> Regolet.NFT SUDO NFT -f Regolet.nft
È possibile verificare l’importazione ottenendo un elenco di tabelle ora in NFTABLE.
tabelle di elenco sudo nft
Come usare NfTables
Questa sezione suddivide ciascuno dei principali componenti di NfTables, fornendo i loro comandi più utili. Alla fine di questa guida, puoi trovare una dimostrazione di come impostare un set di regole di lavoro e vederlo in azione.
Tavoli
Le tabelle sono il livello più alto della gerarchia NFTABLE. Una determinata tabella corrisponde a una famiglia di un solo indirizzo e contiene catene che filtrano i pacchetti in quella famiglia di indirizzi.
Per creare una tabella, utilizzare il comando di esempio. Sostituisci Esempio_Table di seguito e negli esempi successivi, con un nome descrittivo per la tabella.
sudo nft aggiungi tabella inet esempio_table
tabelle di elenco sudo nft
sudo nft elimina tabella inet esempio_table
tabella a filo sudo nft int Esempio_table
Catene
Le catene vivono sotto i tavoli e i pacchetti di filtri. Allega ogni regola NFTABLE a una catena in modo che i pacchetti “preso” nella catena’Il filtro S viene successivamente passato alla catena’Regole S.
Le catene possono essere di due tipi. Base Le catene fungono da punti di ingresso per i pacchetti provenienti dallo stack di rete. Regolare Le catene non fungono da filtri, ma possono fungere da bersagli di salto. Possono aiutare a controllare il flusso e l’organizzazione dei tuoi NFTABLE.
Per creare una catena di base, utilizzare un comando come il comando di esempio di seguito. Sostituisci Esempio_Chain, qui e successivamente, con un nome di catena descrittivo.
sudo nft aggiungi catena Inet Esempio_table Esempio_chain ''
sudo nft aggiungi catena inet esempio_table Esempio_chain
sudo nft elimina catena inet esempio_table Esempio_chain
SUDO NFT FLUSH CATERE INET EXEXT_TABLE EXEXT_CHAIN
Regole
Le regole ricevono i pacchetti filtrati dalle catene e intraprendono azioni in base al fatto che corrispondano a criteri particolari. Ogni regola è composta da due parti, che seguono la tabella e la catena nel comando. Innanzitutto, la regola non ha zero o più espressioni che danno i criteri per la regola. In secondo luogo, la regola ha uno o più dichiarazioni che determinano l’azione o le azioni intraprese quando un pacchetto corrisponde alla regola’espressioni. Sia le espressioni che le dichiarazioni sono valutate da sinistra a destra. Vedere il seguente esempio per l’aggiunta di una regola per ottenere una rottura di queste due parti.
Per creare una regola, utilizzare un comando simile all’esempio. Questa regola prende i pacchetti dall’esempio_chain e consente a coloro che rappresentano il traffico TCP sulla porta 22:
sudo nft aggiungi regola inet esempio_table Esempio_chain tcp dport 22 contatore accetta
- Qui, la porzione TCP Dport 22 contiene la regola’s due espressioni. Abbina i pacchetti TCP e poi corrisponde quando quei pacchetti sono indirizzati alla porta 22.
- Il contatore accetta la porzione contiene la regola’S due affermazioni. Innanzitutto, i pacchetti abbinati aggiungono alla regola’S Counter, mantenendo un conteggio in esecuzione dei pacchetti abbinati alla regola. Secondo, vengono quindi accettati pacchetti abbinati.
- Sii consapevole del fatto che i comandi del verdetto, come accettazione e caduta, elaborazione finale della regola, quindi dovrebbero essere posti alla regola’Inviare.
sudo nft aggiungi regola Inet Esempio_table Esempio_Chain Posizione 3 TCP DPORT 22 Contatore Accetta
SUDO NFT Elenco Tabella Inet Esempio_Table
Allo stesso modo, è possibile utilizzare un comando come l’esempio per elencare tutte le regole all’interno di esempio_chain nell’esempio_table .
SUDO NFT Elenco catena Inet Esempio_table Esempio_Chain
sudo nft elimina la regola inet esempio_table Esempio_chain Handle 2
Qui, il manico è un identificatore per la regola che stai eliminando. Puoi ottenere una regola’S handle utilizzando l’opzione -A durante l’esecuzione del comando per le regole di elenco, come in:
SUDO NFT ELENCO TABELLA INET ESEMPLICE_TABLE -A
Esempio di utilizzo nftables
Di seguito, puoi seguire per creare un set di regole. Il set di regole di esempio utilizza una tabella INET, due catene – una per i pacchetti in arrivo e l’altro per estroversi – e una regola per ogni catena.
Crea una tabella, tabella Inet .
sudo nft aggiungi tavolo int-table
sudo nft aggiungi catena intaglia inta-file-filtro-catena '< type filter hook output priority 0; >'
sudo nft aggiungi regola intet int-table output-filter-chain ip paddr 8.8.8.8 contatore
Sudo NFT Aggiungi catena input-filter-filter-chain "< type filter hook input priority 0; >'Sudo nft Aggiungi regola Inet-table-table Input-Filter-Chain TCP Dport 3030 Counter
SUDO NFT ELENCO TABELLA INET INET-table
Dovresti ottenere output in modo simile a quanto segue:
Tabella IP Inet Table < chain output-filter-chain < type filter hook output priority 0; policy accept; ip daddr 8.8.8.8 counter packets 0 bytes 0 >catena input-filter-catein < type filter hook input priority 0; policy accept; tcp dport 3030 counter packets 0 bytes 0 >>
Dalla macchina che esegue NfTables, eseguire il ping dell’indirizzo di destinazione specificato nella prima regola.
ping -c 1 8.8.8.8
Curl 192.0.2.0: 3030
Tabella IP Inet Table < chain output-filter-chain < type filter hook output priority 0; policy accept; ip daddr 8.8.8.8 counter packets 1 bytes 84 >catena input-filter-catein < type filter hook input priority 0; policy accept; tcp dport 3030 counter packets 1 bytes 64 >>
Maggiori informazioni
Potresti consultare le seguenti risorse per ulteriori informazioni su questo argomento. Mentre questi sono forniti nella speranza che siano utili, si prega di notare che non possiamo garantire l’accuratezza o la tempestività dei materiali ospitati esternamente.
- nftables
- NFTABLE Affronta le famiglie
- Configurazione di catene in NFTABLE
Questa pagina è stata originariamente pubblicata venerdì 9 luglio 2021.
Come installare NfTables in Ubuntu
In questo articolo, impareremo come cambiare un firewall Linux da iptables a nftables su Ubuntu. Iptables, basato sul modulo Netfilter del kernel Linux, è attualmente il firewall predefinito per molte distribuzioni Linux. Protegge da più vettori di minaccia e consente al server di bloccare il traffico indesiderato in base a un set di regole specifico.
NfTables è un nuovo sottosistema del kernel Linux che sostituisce diverse parti del framework NetFilter (su cui si basa iptables), il che consente una migliore funzionalità. Queste modifiche sono state implementate nella versione 3 del kernel.13. Questo modulo migliora la funzionalità simile a un firewall di NetFilter per filtrare il traffico di rete. Il quadro avanzato di NFTables è modellato sul sistema Berkeley Packet Filter (BPF), che utilizza un set di base di espressioni per costruire regole di filtraggio raggruppate e complesse. Esso’Vale la pena sottolineare che questo non è un aggiornamento per iptables, ma piuttosto una sostituzione. Iptables verrà presto sostituito da NfTables sulla maggior parte dei sistemi come una singola piattaforma unificata, fornendo la configurazione del firewall in cima a una macchina virtuale in-kernel.
In che modo NfTables è diverso dagli iptables?
In iptables ci sono diverse catene e tabelle che vengono caricate per impostazione predefinita.
In Nftables, non ci sono catene o tabelle predefinite.
In iptables, esiste un solo obiettivo per regola.
In NfTables, è possibile eseguire più azioni all’interno di una singola regola.
In Nftables, c’è uno strumento chiamato IPSET. L’uso dell’IPSET consente l’elenco di più reti o indirizzi che possono essere abbinati in un’unica regola.
Nella struttura iptables, ci sono quattro strumenti per famiglia:
- iptables
- ip6tables
- Arptables
- ebtables
Nftables contengono un livello di compatibilità che comprende tutti questi strumenti, che consente l’uso delle vecchie regole iptables Sintassi.
Quali sono i vantaggi di NfTables?
I principali vantaggi di NfTables sono:
- Architettura che si è costruita proprio nel kernel
- Una sintassi che consolida gli strumenti iptables in un unico strumento di riga di comando
- Un livello di compatibilità che consente l’uso della sintassi delle regole iptables.
- Una nuova sintassi facile da imparare.
- Processo semplificato di aggiunta di regole di firewall.
- Rapporti di errore migliorato.
- Riduzione della replicazione del codice.
- Migliori prestazioni complessive, fidelizzazione e cambiamenti graduali nel filtro delle regole.
Confronto delle regole
.Tutte le informazioni sul firewall sono visualizzabili utilizzando un singolo strumento di riga di comando chiamato NFT. NFT utilizza una singola regola per gli indirizzi IPv4 e IPv6 invece di utilizzare più regole per ciascuna attività. Non assume il controllo completo del backend del firewall e non eliminerà le regole del firewall installate da altri strumenti o utenti. NFT migliora anche il set di regole del firewall aggiungendo le opzioni per la registrazione e negare le funzioni nella stessa regola. Infine, il nuovo back -end NFT è quasi al 100% compatibile con le configurazioni preesistenti del firewall.
Ecco una semplice regola di caduta per un IP in NFTABLE:
NFT Aggiungi regola IP Filter Output IPDD 10.10.10.10 caduta
In iptables, la regola sarebbe:
iptables -a output -d 10.10.10.10 -j goccia
Questi esempi di seguito creano un set di regole del firewall che consente il traffico IPv6 verso vari servizi di porte.
root@host [~]# nft Aggiungi regola IP6 Filtro Ingresso TCP DPORT Accetta root@host [~]# NFT Aggiungi regola IP6 INGRESSO INGRESSO ICMPV6 Tipo < nd-echo-request, nd-router-advert, neighbor-solicit, nd-neighbor-advert >accettare
Ecco alcuni altri esempi:
#Review Configurazione corrente: root@host [~]# NFT Elenco Regolet #Add una nuova tabella, con Filma "Inet" e tabella "Famiglia": root@host [~]# nft Aggiungi filtro Inet tabella #Add una nuova catena, per accettare tutto il traffico inbound: root@host [~]# nft add Chain Inet Filter Input \ < type filter hook input priority 0 \; policy accept \>#Add una nuova regola, per accettare diverse porte TCP: root@host [~]# nft add regole Inet Filter Input TCP Dport \ < ssh, telnet, https, http \>Accetta #to mostra le regole delle regole: root@host [~] # nft -maniglia -catena della catena della catena della catena della famiglia Numer # Elimina una regola: root@host [~] # nft elimina la regola del filtro Inet handle di input 3 # per salvare la configurazione corrente: root@host [~] # nft list regolet> /etc /nfTablesbles.conf
Questa è una rapida panoramica dei sostituti del drop-in utilizzati:
Debian/Ubuntu Installa
.Il metodo per installare NfTables su un server Debian/Ubuntu è molto semplice. Nella sezione seguente, abbiamo salvato il set di regole iptables correnti a un .TXT File, ha esaminato il file, lo ha tradotto in un formato leggibile NFT e quindi ha importato nel nuovo set di regole NFT.
root@host: ~# iptables-save> fwrules.txt root@host: ~# cat fwrules.txt root@host: ~# iptables-restore-translate -f fwrules.txt root@host: ~# iptables-restore-translate -f fwrules.TXT> Regolet.nft
Nella seconda parte del processo, installiamo NfTables e lo strumento iptables-Nftables-compat (che carica le regole nel sottosistema del kernel NF_tables) e, infine, abilitiamo il servizio.
root@host: ~# APT Installa nfTables root@host: ~# APT Installa iptables-nftables-compat root@host: ~# systemctl abilita nftables.servizio
Nella sezione finale, attiriamo il set di regole precedenti dal set delle regole.File NFT. Quindi esaminiamo il set di regole con il ‘elenco’ bandiera.
root@host: ~# nft -f regolet.NFT root@host: ~# NFT Elenco Rulest Table ip nat < chain PREROUTING < type nat hook prerouting priority 0; policy accept; >Ingresso a catena < type nat hook input priority 0; policy accept; >Output a catena < type nat hook output priority 0; policy accept; >Postrouting a catena < type nat hook postrouting priority 0; policy accept; >> Tabella Ip Mangle < chain PREROUTING < type filter hook prerouting priority 0; policy accept; >Ingresso a catena < type filter hook input priority 0; policy accept; >catena in avanti < type filter hook forward priority 0; policy accept; >Output a catena < type filter hook output priority 0; policy accept; >Postrouting a catena < type filter hook postrouting priority 0; policy accept; >> Tabella IP RAW < chain PREROUTING < type filter hook prerouting priority 0; policy accept; >Output a catena < type filter hook output priority 0; policy accept; >> Filtro IP della tabella < chain INPUT < type filter hook input priority 0; policy accept; >catena in avanti < type filter hook forward priority 0; policy accept; >Output a catena < type filter hook output priority 0; policy accept; >> Filtro INET della tabella < chain input < type filter hook input priority 0; policy accept; >catena in avanti < type filter hook forward priority 0; policy accept; >Output a catena < type filter hook output priority 0; policy accept; >> root@host: ~#
Sinossi del comando NFT
#NFT Opzioni di comando e sintassi root@host [~]# nft [-nnscaesupyj] [-i directory] [-f nomefile | -i | cmd…] root@host [~]# nft -h utilizzo: nft [opzioni] [cmds. ] Opzioni: -H, - -Help Mostra questo aiuto -v, -Version Informazioni sulla versione -c, --Check Controlla la validità dei comandi senza applicare effettivamente le modifiche. -f, -file input di lettura da -i, -input di lettura interattivo da cli interattivo, --numerico quando specificato una volta, mostrare gli indirizzi di rete numericamente (comportamento predefinito). Specifica due volte per mostrare anche i servizi Internet (numeri di porta) numericamente. Specificare tre volte per mostrare anche protocolli, ID utente e ID di gruppo numericamente. -s, -omettere le informazioni statali sul set di regole. -N Traduci gli indirizzi IP in nomi. -A, -Handle Output Rule Handle. -E, --cho Echo ciò che è stato aggiunto, inserito o sostituito. -I, -IncludePath Aggiungi ai percorsi cercati includono file. L'impostazione predefinita è: /etc -debug specifica il livello di debug (scanner, parser, eval, netlink, mnl, proto -ctx, segtree, all) root@host [~]# nft -v nftables v0.8.2 (Joe Btfsplk)
firewalld e nftables
Che dire di Firewalld? Per fortuna, Firewalld interagisce facilmente con NfTables tramite il comando NFT stesso. Nell’immagine di firewalld qui sotto, vediamo come iptables e firewalld attualmente interagiscono tra loro.
Un primo problema con iptables e firewalld era che Firewalld assunse il pieno controllo del firewall sul server. Ora, quando si utilizza NFTABLE come backend, questo non è più vero, poiché NFTABLE consentirà più spazi dei nomi e Firewalld apparirà le regole, le impostazioni e le catene nella tabella di firewalld. Ciò evita molti conflitti che possono essere incontrati con altri software che non interagiscono direttamente con Firewalld. Nelle prossime versioni, NfTables verrà aggiornato per utilizzare le nuove libnftables.
Ristabilire
Se per qualche motivo, devi tornare al vecchio backend iptables, puoi facilmente farlo ripristinando il ‘Firewallbackend‘ ingresso in /etc/firewalld/firewalld.conf Torna a ‘iptables‘, e poi riavvia firewalld.
Scopri come questo nuovo servizio può adattarsi al tuo piano di sicurezza generale per il tuo server. Ancora incerto su come implementarlo sul tuo server Ubuntu o avere ulteriori domande? I nostri tecnici di supporto sono in piedi per offrire la nostra assistenza nel rispondere a queste e di qualsiasi altra domanda che potresti avere su questa tecnologia.
Articoli Correlati:
- Come risolvere “Questo sito può’t fornire una connessione sicura” Errore
- Come installare MongoDB su Almalinux
- Come installare PostgreSQL su AlmalInux
- Come utilizzare WP Toolkit per proteggere e aggiornare WordPress
- Come installare e configurare Ansible su Almalinux
- Come installare Redis all’interno di un contenitore EasyApache 4 in CPanel
Informazioni sull’autore: David Singer
Sono un blogger G33K, Linux, sviluppatore, studente ed ex scrittore tecnologico per LiquidWeb.com. La mia passione per tutto ciò che la tecnologia guida la mia caccia a tutto il coolz. Ho spesso bisogno di una vacanza dopo essere tornato dalle vacanze.
Unisciti alla nostra mailing list per ricevere notizie, suggerimenti, strategie e ispirazione di cui hai bisogno per far crescere la tua attività
Che cosa’s nuovo in sicurezza per ubuntu 22.04 LTS?
Canonical Ubuntu 22.04 LTS è l’ultima versione di supporto a lungo termine di Ubuntu, uno del mondo’s distribuzioni Linux più popolari. Come rilascio di supporto a lungo termine, Ubuntu 22.04 LTS sarà supportato per 10 anni, ricevendo sia aggiornamenti di sicurezza estesi che livepatching del kernel tramite un abbonamento Ubuntu Advantage (che è gratuito per uso personale). Questo continua il punto di riferimento delle uscite di Ubuntu LTS che servono come base più sicura su cui sviluppare e distribuire applicazioni e servizi Linux. In questo post sul blog, diamo un’occhiata alle varie funzionalità di sicurezza e miglioramenti che sono entrati in questa nuova versione da Ubuntu 20.Release 04 LTS. Per un esame più dettagliato di alcune di queste caratteristiche, assicurati di controllare gli articoli precedenti di questa serie che coprono i miglioramenti forniti su ogni versione provvisoria di Ubuntu negli ultimi 2 anni tra 20.04 LTS e 22.04 LTS.
Kernel Linux ottimizzati
Ubuntu 22.04 LTS introduce versioni del kernel ottimizzate per piattaforme diverse. Per dispositivi desktop certificati OEM, il V5 a monte.17 Il kernel viene utilizzato come base, mentre tutte le altre piattaforme desktop e server si basano sul V5.15 kernel. Un numero enorme di cambiamenti e miglioramenti della sicurezza sono andati nel kernel Linux dal V5.4 kernel di Ubuntu 20.04 LTS, incluso:
Miglioramenti della sicurezza specifici per hardware
Intel’S Software Guard Extensions (SGX) fornisce enclavi sicure sostenute da hardware che le applicazioni possono utilizzare per archiviare dati sensibili o eseguire calcoli sensibili senza il rischio di interferenza da componenti non attendibili. Ubuntu 22.04 LTS consente il supporto per questa funzione, che è presente nei processori Intel per diversi anni. Mentre per le piattaforme ARM, supporto per ARMV8.5 L’estensione di tag di memoria è ora disponibile sui dispositivi ARM64. Questa funzione mira a prevenire i problemi di sicurezza della memoria etichettando gli indirizzi di memoria con una chiave che non può essere facilmente forgiata, e quindi prevenire gli attacchi di sicurezza della memoria comuni come gli overflow del buffer. I processi di spazio utenti possono ora abilitare la tag di memoria per le regioni di memoria scelte per aiutare nella prevenzione degli attacchi di corruzione della memoria. Infine, la virtualizzazione crittografata AMD Secure (SEV) è anche supportata dal sottosistema di virtualizzazione KVM, per proteggere i registri delle macchine virtuali degli ospiti dall’accesso al sistema operativo host.
Miglioramenti della sicurezza del kernel generici
Sono inoltre disponibili numerose altre funzionalità di sicurezza del kernel, indipendenti dalla piattaforma, sia che sia le nuove funzionalità di sicurezza come la pianificazione del core, nonché vari miglioramenti di indurimento. Sin dai primi casi di vulnerabilità del canale laterale microarchitetto (cioè. Spectre ecc.) Sono stati scoperti per la prima volta oltre 4 anni fa, gli sviluppatori hanno lavorato su un mezzo per i processi per controllare il modo in cui sono programmati attraverso i core di multiprocessing simmetrico (SMT). I fratelli SMT condividono le risorse hardware della CPU tra loro, e quindi può essere abbastanza difficile evitare vari attacchi di canale laterale hardware di conseguenza. Viene ora fornito il supporto per la pianificazione del core, che consente ai processi di controllare quali thread saranno programmati tra i fratelli SMT e quindi può consentire loro di proteggere le informazioni sensibili dalla perdita di altri processi non attendibili sul sistema.
La randomizzazione dello stack del kernel fornisce una misura di indurimento per frustrare gli aggressori che desiderano eseguire attacchi di corruzione della memoria all’interno del kernel. Posizionando lo stack del kernel in un altro offset sulle successive chiamate di sistema, gli aggressori non sono in grado di eseguire attacchi perdendo prima un indirizzo di stack del kernel e successivamente sovrascrivendo questa memoria su una chiamata di sistema successiva. Chiudendo questo potenziale vettore di attacco Ubuntu 22.04 LTS fornisce una piattaforma più difensiva contro gli attacchi del kernel.
Il sottosistema BPF ha anche visto una serie di miglioramenti della sicurezza, tra cui la limitazione del suo utilizzo a solo processi privilegiati per impostazione predefinita, oltre a includere gli sforzi iniziali per supportare anche i programmi BPF firmati. Entrambe queste misure mirano a ridurre al minimo la possibilità che questo sottosistema di caratteristiche possa essere utilizzato per attaccare il kernel, pur consentendo che sia utilizzato da sviluppatori e amministratori di sistema.
Infine, l’inclusione del nuovo modulo di sicurezza Landlock Linux fornisce un altro meccanismo per l’applicazione di sandboxing per accompagnare i metodi più tradizionali tramite Apparmor o Selinux. Landlock consente alle applicazioni di specificare la propria politica (e quindi è più simile ai filtri SECCOMP) a differenza di AppARor e Selinux progettati per consentire all’amministratore di sistema di configurare le politiche di sistema globali in una serie di applicazioni. Se combinato con lo stacking LSM, la terra si può utilizzare in combinazione con Apparmor per fornire un approccio di difence all’isolamento dell’applicazione.
Miglioramenti della sicurezza degli utenti
Con ogni nuova versione di Ubuntu, c’è l’opportunità di aggiornare la gamma di pacchetti software forniti all’interno dell’archivio Ubuntu alle ultime versioni a monte. Ubuntu 22.04 LTS non fa eccezione, portando aggiornamenti a una serie di pacchetti rilevanti per la sicurezza tra cui OpenSSL, OpenSSH, NFTABLE, GCC e persino l’umile conchiglia bash.
OpenSSL 3
Ubuntu 22.04 LTS navi con l’ultima versione principale del venerabile Cryptography Toolkit, OpenSSL. In OpenSSL 3, molti algoritmi legacy sono stati deprecati e disabilitati per impostazione predefinita, tra cui MD2 e DES. Questi e altri algoritmi deprecati sono invece presenti nel provider legacy, che può essere abilitato in base alle necessità tramite una modifica della configurazione o a livello di programmazione. Disabilitandoli per impostazione predefinita, gli utenti e le applicazioni sono protetti dagli attacchi crittografici contro questi algoritmi meno sicuri.
OpenSSH UX Miglioramenti per i token Fido/U2F
Un altro pilastro dell’ecosistema di sicurezza di Linux è OpenSSH, che fornisce un accesso sicuro a guscio remoto ai sistemi Linux. Si sono verificate sette versioni di OpenSsh dalla versione 8.2 è stato incluso nel precedente Ubuntu 20.04 LTS Release, che offre una serie di miglioramenti per amministratori di sistema, sviluppatori e utenti. In particolare, l’uso di token di sicurezza hardware U2F/Fido è stato notevolmente migliorato in OpenSSH 8.9, portando benefici significativi per l’esperienza utente quando si utilizzano questi dispositivi di autenticazione del secondo fattore per l’accesso remoto.
NFTABLE come backend di firewall predefinito
Il firewalling su Linux è costituito da due componenti: il meccanismo del firewall all’interno del kernel Linux e gli strumenti utilizzati per configurarlo da utenti. Il kernel Linux ha tradizionalmente supportato due diversi sottosistemi per le politiche del firewall: iptables / xables e i nuovi NFTables. NFTables offre benefici significativi sia in termini di prestazioni che flessibilità durante la creazione e la distribuzione di regole di firewall, in particolare per i sistemi IPv4/IPv6 a doppio stack. Il tradizionale iptables Lo strumento di gestione degli utenti ora configura il nftables backend del kernel, mentre il nuovo nft È inoltre presente lo strumento di utenti per consentire la creazione di regole più flessibili non supportate dal tradizionale iptables paradigma.
GCC 11 e Bash 5.1
GCC 11.2 Porta capacità di analisi statica migliorate, consentendo agli sviluppatori di rilevare e rimediare alle vulnerabilità del software potenziali e ad altri problemi durante il ciclo di sviluppo. Ciò include il supporto per il rilevamento di possibili dereference, perdite di memoria senza uso senza utilizzo, perdite di memoria e chiamate non sicure dalle condizioni del gestore del segnale. Usando Ubuntu 22.04 LTS Come base per le loro piattaforme di sviluppo, gli sviluppatori di software possono aiutare a garantire che il codice che scrive sia il più corretto e gratuito.
Sviluppatori e sistemi-amministratori sia anche benefici dall’inclusione di Bash 5.1. Questa versione del venerabile shell include il supporto nativo per una generazione di numeri pseudo-casuali migliorata tramite la variabile $ srandom. A differenza della variabile storica $ casuali, $ srandom deriva dal kernel’S /Dev /Urandom Secure Random Source Device, garantendo che il suo output non possa essere facilmente previsto dai potenziali aggressori.
Directory delle case private
Tradizionalmente i sistemi Ubuntu hanno optato per la comodità dell’accesso condiviso all’utente’S Home Directory, supportando casi d’uso come PC condivisi in ambienti universitari e domestici. Tuttavia, poiché il panorama tecnologico si è evoluto e Ubuntu è diventato dominante in altri settori come il cloud computing e l’Internet of Things (IoT), è ora ritenuto necessario un approccio più difensivo per proteggere gli utenti e i loro dati. Ubuntu 22.04 LTS ora abilita le directory delle case private per impostazione predefinita, garantendo che i dati degli utenti non siano accessibili ad altri senza la loro autorizzazione esplicita.
In totale, la gamma di miglioramenti della sicurezza in Ubuntu 22.04 LTS lo rende il rilascio di Ubuntu più sicuro fino ad oggi sfruttando e costruendo le varie altre caratteristiche di indurito e di sicurezza che sono state a lungo una parte fondamentale di Ubuntu. Inoltre, aggiornamenti di sicurezza e livepatching del kernel per 22.04 LTS sono entrambi forniti per dieci anni tramite un abbonamento Ubuntu Advantage, continuando il punto di riferimento delle versioni di Ubuntu LTS che servono come base più sicura su cui sviluppare e distribuire applicazioni e servizi Linux.
Parla con noi oggi
Interessato a gestire Ubuntu nella tua organizzazione?
Impostazione del firewall NfTables
Di: Jeroen van Kessel | 1 giugno 2020 | 10 minuti Leggi
NfTables (Netfilter) consolida le tabelle in un nuovo firewall Linux a base di kernel. La maggior parte delle distribuzioni Linux si sta spostando da iptables a nfTables come il loro Firewall Framework predefinito. NfTables è ora il default in Debian 10, Ubuntu 20.04, RHEL 8, SUSE 15 e Fedora 32. Tempo per migrare!
Questo post sul blog elabora su come configurare nfTables in base a un modello perimetrale, che viene visualizzato metaforicamente nella foto 1. Guarda un modello di rete a zero contropiede se si desidera colmare le lacune di un approccio basato su perimetro. Dai un’occhiata anche a PF se hai bisogno di una solida soluzione di firewall sul bordo della rete.
Immagine 1: Fort Bourtange, Paesi Bassi (foto di Elise van Heck)
Iniziare con NfTables
Per prima cosa installiamo NfTables:
$ sudo apt -get install nftables -y
$ nft -v nfTables v0.9.3 (topsy)
Successivamente abilitiamo NFTABLE all’avvio e iniziamo il demone:
$ sudo SystemCtl Abilita NfTables $ sudo SystemCtl Avvia NfTables $ sudo Systemctl Stato NFTABLE NFTABLE.Servizio - NFTABLE Caricato: caricato (/lib/systemd/system/nftables.servizio; Disabilitato; preimpostazione fornitore: abilitato) attivo: attivo (uscito); 1s fa docs: uomo: nft (8) http: // wiki.nftables.Processo Org: 16565 ExecStart =/usr/sbin/nft -f/etc/nftables.conf (code = useted, status = 0/success) PID principale: 16565 (code = uscite, status = 0/successo)
Come funziona NfTables
NFTABLE è in sostanza un filtro di rete, anche indicato come Elenco di controllo degli accessi di rete (ACL) che consente di controllare i flussi di dati di rete. Questi filtri di rete sono gerarchici e dipendenti dall’ordine. La Figura 1 mostra come le funzioni NFTables in base al modello TCP/IP:
Figura 1: modello NFTABLE TCP/IP
Cominciamo dal fondo al modello TCP/IP. Il collegamento dati è il punto in cui è possibile semplificare il traffico per NICS (schede di interfaccia di rete) specifiche in base al loro VNIC (IIFName) in arrivo e al VNIC (OIFName) in arrivo. In questo modo è possibile segmentare il traffico dati (e.G. Https) dal traffico di gestione (E.G. SSH o VNC).
Sul collegamento dati, il protocollo ARP (Indirizzo Resolution Protocol) viene utilizzato per risolvere un indirizzo IP a un indirizzo MAC. Durante la trasmissione ARP iniziale, un’entità dannosa potrebbe tentare di associare il suo indirizzo MAC all’indirizzo IP di un indirizzo IP dell’host richiesto, causando invece l’invio di traffico per quell’indirizzo IP all’host dell’attaccante. È possibile controllare il traffico ARP nella sezione del filtro ARP (1).
Il prossimo è il livello TCP/IP Internetwork e di trasporto con filtro IP e filtro IP6 (2). Questi filtri ci aiutano a modellare il traffico di rete dal nostro host IP (SADDR) ai segmenti di rete o ad un altro host (papà). NFTables può filtrare i pacchetti in base al protocollo di rete, alla porta di destinazione (DPORT), alla porta di origine (Sport) e al suo stato di sessione (Stato CT). Piccola nota: il protocollo ICMP è in realtà una parte del protocollo IP e quindi opera tecnicamente a livello Internet. Idealmente, le tabelle IP e IP6 dovrebbero bloccare qualsiasi traffico di rete (caduta) a meno che non sia esplicitamente consentito (accetta).
NFTABLE è un filtro di rete e non un firewall dell’applicazione a livello 7 (L7) nativo (3). Le porte di rete vengono spesso scambiate per i controlli di rete dell’applicazione. Tieni presente che un attore dannoso può tunnel una shell inversa sulla porta TCP 443 (HTTPS) o la porta UDP 53 (DNS). Il filtraggio dell’applicazione (L7) può colmare queste lacune sfruttando un proxy Web per il traffico HTTPS e i sistemi di prevenzione delle intrusioni (IPS) per far cadere il traffico tunneling dannoso rispetto ad altri protocolli di rete, anche su ICMP. DPI (ispezione dei pacchetti profondi) è la parola chiave qui.
Come configurare NfTables
Modificheremo direttamente il /etc /nftables.Conf Config File invece di utilizzare NFT CLI (NFT ADD) e (NFT ELETE). Questo file di configurazione viene caricato per impostazione predefinita al momento dell’avvio. Devi essere root (sudo) per impostare i filtri del firewall su porte sotto 1024.
$ sudo cp /etc /nftables.conf /etc /nftables.conf.Bak $ sudo vi /etc /nftables.conf
Definiamo prima le variabili che possiamo usare in seguito nel nostro set di regole:
define nic_name = "eth0" define nic_mac_gw = "de: ad: essere: ef: 01: 01" define nic_ip = "192.168.1.12 "Definisci local_inetw = < 192.168.0.0/16 >Definire local_inetwv6 = < fe80::/10 >Definire dns_servers = < 1.1.1.1, 8.8.8.8 >Definire ntp_servers = < time1.google.com, time2.google.com, time3.google.com, time4.google.com >define dhcp_server = "192.168.1.1 "
NfTables mappa automaticamente i nomi del protocollo di rete ai numeri di porta (e.G. Https <> 443). Nel nostro esempio, consentiamo solo sessioni in arrivo che abbiamo avviato (stato CT stabilito accetta) dalle porte effimere (DPORT 32768-65535). Essere a conoscenza di un’app o un server Web dovrebbe consentire sessioni appena avviate (CT State Nuovo).
Filtro IP della tabella < chain input < type filter hook input priority 0; policy drop; iifname "lo" accept iifname "lo" ip saddr != 127.0.0.0/8 drop iifname $NIC_NAME ip saddr 0.0.0.0/0 ip daddr $NIC_IP tcp sport < ssh, http, https, http-alt >tcp dport 32768-65535 ct state established accept iifname $NIC_NAME ip saddr $NTP_SERVERS ip daddr $NIC_IP udp sport ntp udp dport 32768-65535 ct state established accept iifname $NIC_NAME ip saddr $DHCP_SERVER ip daddr $NIC_IP udp sport bootpc udp dport 32768-65535 ct state established log accept iifname $NIC_NAME ip saddr $DNS_SERVERS ip daddr $NIC_IP udp sport domain udp dport 32768-65535 ct state established accept iifname $NIC_NAME ip saddr $LOCAL_INETW ip daddr $NIC_IP icmp type echo-reply ct state established accept > chain output < type filter hook output priority 0; policy drop; oifname "lo" accept oifname "lo" ip daddr != 127.0.0.0/8 drop oifname $NIC_NAME ip daddr 0.0.0.0/0 ip saddr $NIC_IP tcp dport < ssh, http, https, http-alt >tcp sport 32768-65535 ct state new,established accept oifname $NIC_NAME ip daddr $NTP_SERVERS ip saddr $NIC_IP udp dport ntp udp sport 32768-65535 ct state new,established accept oifname $NIC_NAME ip daddr $DHCP_SERVER ip saddr $NIC_IP udp dport bootpc udp sport 32768-65535 ct state new,established log accept oifname $NIC_NAME ip daddr $DNS_SERVERS ip saddr $NIC_IP udp dport domain udp sport 32768-65535 ct state new,established accept oifname $NIC_NAME ip daddr $LOCAL_INETW ip saddr $NIC_IP icmp type echo-request ct state new,established accept > chain forward < type filter hook forward priority 0; policy drop; >>
Il blocco di codice successivo viene utilizzato per bloccare il traffico IPv6 in entrata e in uscita, ad eccezione delle richieste di ping (Echo-Request di tipo ICMPV6) e Discovery di rete IPv6 (ND-ROUTER-ASTVERT, ND-NOIGHBOR-SOLICIT, ND-BIGHBOR-ADVERT). I VNIC vengono spesso eseguiti automaticamente con indirizzi IPv6 e lasciati intatti. Queste interfacce possono essere abusate da entità dannose per attivare i dati riservati o persino una shell.
Filtro della tabella IP6 < chain input < type filter hook input priority 0; policy drop; iifname "lo" accept iifname "lo" ip6 saddr != ::1/128 drop iifname $NIC_NAME ip6 saddr $LOCAL_INETWv6 icmpv6 type < destination-unreachable, packet-too-big, time-exceeded, parameter-problem, echo-reply, nd-router-advert, nd-neighbor-solicit, nd-neighbor-advert >Stato CT stabilito Accetta> Output a catena < type filter hook output priority 0; policy drop; oifname "lo" accept oifname "lo" ip6 daddr != ::1/128 drop oifname $NIC_NAME ip6 daddr $LOCAL_INETWv6 icmpv6 type echo-request ct state new,established accept >catena in avanti < type filter hook forward priority 0; policy drop; >>
L’ultimo blocco di codice viene utilizzato per il traffico ARP che limita i frame di rete di trasmissione ARP:
Filtro ARP della tabella < chain input < type filter hook input priority 0; policy accept; iif $NIC_NAME limit rate 1/second burst 2 packets accept >Output a catena < type filter hook output priority 0; policy accept; >>
$ sudo systemctl riavvio nftables && systemctl status nftables && nft list set
Considerazioni
Assicurati di testare le porte davvero aperte o chiuse. È possibile utilizzare NC, Telnet o TCPDump per questo.
NfTables può registrare le azioni in/var/log/syslog . Dovresti sfruttare rsyslog per inoltrare i registri alla tua soluzione SIEM preferita per ottenere una migliore nozione della tua rete.
Con lo scheletro giusto, NfTables semplifica la vita per gli ingegneri DevOps applicare il firewall di micro segmentazione. Gli ingegneri DevOps possono fornire regole di firewall modulari agli host basati su Linux utilizzando uno strumento di gestione della configurazione come Ansible. Questi regole di firewall vengono quindi spinti e caricati in base alla funzione principale della VM o del contenitore. Ad esempio, i server di database dovrebbero parlare solo con un sottoinsieme limitato di server Web. Questo modo di provocare le regole del firewall a livello ospite dovrebbe ridurre la superficie di attacco per il movimento laterale da parte di un attore dannoso.
Questo post sul blog ha semplicemente toccato le funzionalità di core firewall di NfTables. Dai un’occhiata alla pagina wiki NFTABLE per ulteriori tecniche di firewall. Tieni presente che una soluzione firewall non sostituisce necessariamente un’altra. Guarda anche in un firewall Edge se non si dispone di un dominio di rete zero-trust.
Discussione e domande
Copyright 2019 – 2023 Cryptsus. Tutti i diritti riservati.
Il codice è sotto la licenza Berkeley Software Distribution (BSD) perché ci preoccupiamo di costruire un mondo più aperto.