Dimensione: 7396
Commento:
|
← Versione 68 del 28/07/2024 15.59.37 ⇥
Dimensione: 8050
Commento: Verificata per 24.04
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
## page was renamed from Carlin0/Prove9 | |
Linea 5: | Linea 6: |
<<Informazioni(forum="https://forum.ubuntu-it.org/viewtopic.php?f=46&t="; rilasci="20.04";)>> | <<Informazioni(forum="https://forum.ubuntu-it.org/viewtopic.php?f=46&t=648710"; rilasci="24.04 22.04 20.04";)>> |
Linea 9: | Linea 10: |
'''Nftables''' è un programma per controllare le regole di filtraggio dei pacchetti dal progetto [[https://it.wikipedia.org/wiki/Netfilter|Netfilter]]. Questo software fornisce un'infrastruttura per classificazione dei pacchetti interna al [[https://it.wikipedia.org/wiki/Kernel|kernel]] che è basata su una VM (macchina virtuale) specifica per rete, e lo strumento a riga di comando in spazio utente nft. L'infrastruttura nftables riusa i sottosistemi Netfilter esistenti, come l'infrastruttura esistente per hook, il sistema di tracciamento delle connessioni, [[https://it.wikipedia.org/wiki/Network_address_translation|NAT]], la gestione di code in spazio utente e il sottosistema di registrazione di log. Nftables sostituisce i vecchi popolari [[Sicurezza/Iptables|iptables]], ip6tables, arptables ed ebtables. Il software Netfilter, e nftables in particolare, è utilizzato in applicazioni come condivisione di connessioni Internet, firewall, contabilità per IP, proxy trasparenti, instradamento avanzato e controllo del traffico. |
'''nftables''' è un programma per controllare le regole di filtraggio dei pacchetti dal progetto [[https://it.wikipedia.org/wiki/Netfilter|Netfilter]]. Questo software fornisce un'infrastruttura per classificazione dei pacchetti interna al [[https://it.wikipedia.org/wiki/Kernel|kernel]] che è basata su una VM (macchina virtuale) specifica per rete, e lo strumento a riga di comando in spazio utente nft.<<BR>> L'infrastruttura '''nftables''' riusa i sottosistemi '''netfilter''' esistenti, come l'infrastruttura esistente per hook, il sistema di tracciamento delle connessioni, [[https://it.wikipedia.org/wiki/Network_address_translation|NAT]], la gestione di code in spazio utente e il sottosistema di registrazione di log. |
Linea 14: | Linea 13: |
<<BR>> | '''nftables''' sostituisce i vecchi popolari [[Sicurezza/Iptables|iptables]], ip6tables, arptables ed ebtables ed è utilizzato in applicazioni come condivisione di connessioni internet, firewall, contabilità per IP, proxy trasparenti, instradamento avanzato e controllo del traffico. {{{#!wiki note Dal rilascio '''20.10''' Ubuntu utilizza come infrastruttura predefinita '''nftables''' al posto del precedente '''iptables'''. }}} In '''nftables''', non ci sono tabelle/catene predefinite, ad esempio se intendiamo impostare la catena `output`, con policy `accept` può essere omessa. |
Linea 22: | Linea 27: |
{{{#!wiki note Dal rilascio 20.10 Ubuntu utilizza come infrastruttura predefinita `nftables` al posto del precedente `iptables`. }}} * Per selezionare e/o verificare quale infrastruttura firewall è in uso nel nostro sistema operativo digitare questi 2 comandi: {{{ |
0. Per selezionare e/o verificare quale infrastruttura firewall è in uso nel nostro sistema operativo, digitare questi due comandi: {{{ |
Linea 39: | Linea 40: |
}}}Scegliere tra `nft` e `iptables-legacy`. | }}} 0. Scegliere tra `nft` e `iptables-legacy`. |
Linea 44: | Linea 46: |
Linea 49: | Linea 50: |
Per importare le regole da `iptables` a `nftables` ci sono 2 possibilità: | Per importare le regole da '''iptables''' a '''nftables''' vengono mostrate due possibilità. |
Linea 53: | Linea 54: |
* Digitare: {{{ | Occorre digitare un comando del tipo: {{{ |
Linea 55: | Linea 56: |
}}}per esempio: {{{ | }}} * Esempio: {{{ |
Linea 59: | Linea 61: |
}}}altro esempio ma con ipv6: {{{ | }}} * Esempio con ipv6: {{{ |
Linea 67: | Linea 70: |
0. Salvare tutte le regole in uso su `iptables` in un file digitando: {{{ | 0. Salvare tutte le regole in uso su '''iptables''' in un file digitando: {{{ |
Linea 71: | Linea 74: |
0. Importare le regole salvate nel file digitando: {{{ | 0. Per importare il set di regole sono possibili due alternative: * '''Importare''' le regole salvate nel file digitando: {{{ |
Linea 73: | Linea 77: |
}}}Oppure importare le regole e al tempo stesso salvarle in un file ''leggibile'' da `nftables` digitando: {{{ | }}}Il terminale darà come risposta tutte le regole contenute nel file adattandole alla sintassi di nftables. * '''Importare''' le regole e al tempo stesso salvarle in un '''file leggibile''' da nftables digitando: {{{ |
Linea 75: | Linea 80: |
}}} 0. Caricare su `nftables` le regole salvate nel file digitando: {{{ nft -f ruleset.nft |
|
Linea 85: | Linea 86: |
* Per caricare le regole da un file digitare: {{{ | * Per '''caricare''' le regole da un file digitare: {{{ |
Linea 88: | Linea 89: |
* Per salvare le regole in uso in modo che vengano ricaricate al prossimo avvio digitare: {{{ |
* Per '''salvare''' le regole in uso in modo che vengano ricaricate al prossimo avvio digitare: {{{ |
Linea 92: | Linea 92: |
* Per elencare le regole in uso digitare: {{{ |
* Per '''elencare''' le regole in uso digitare: {{{ |
Linea 96: | Linea 95: |
* Per elencare le regole in uso e vedere anche il numero di riga della regola digitare: {{{ |
* Per '''elencare''' le regole in uso e '''visualizzare''' anche gli ''handle'', ovvero i riferimenti univoci di ogni riga digitare: {{{ |
Linea 100: | Linea 98: |
* Per cancellare tutte le regole in uso digitare: {{{ |
* Per '''cancellare''' tutte le regole in uso digitare: {{{ |
Linea 107: | Linea 104: |
* Per creare una tabella digitare: {{{ | * Per '''creare''' una tabella digitare: {{{ |
Linea 110: | Linea 107: |
* Per elencare le tabelle digitare: {{{ |
* Per '''elencare''' le tabelle digitare: {{{ |
Linea 114: | Linea 110: |
* Per cancellare una tabella digitare: {{{ |
* Per '''cancellare''' una tabella digitare: {{{ |
Linea 120: | Linea 115: |
In caso di errore nella cancellazione della tabella svuotarla dalle regole contenute | In caso di errore nella cancellazione della tabella, svuotarla dalle regole contenute. |
Linea 123: | Linea 118: |
* Per svuotare la tabella dalle regole in essa contenute digitare: {{{ | * Per '''svuotare''' la tabella dalle regole in essa contenute digitare: {{{ |
Linea 129: | Linea 124: |
* Per aggiungere una catena digitare: {{{ | * Per '''aggiungere''' una catena digitare: {{{ |
Linea 131: | Linea 126: |
}}}Per esempio: {{{ | }}}Ad esempio: {{{ |
Linea 136: | Linea 131: |
* Per cancellare una catena digitare: {{{ | * Per '''cancellare''' una catena digitare: {{{ |
Linea 138: | Linea 133: |
}}}Per esempio: {{{ | }}}Ad esempio: {{{ |
Linea 146: | Linea 141: |
* Per svuotare la catena dai suoi contenuti digitare: {{{ | * Per '''svuotare''' la catena dai suoi contenuti digitare: {{{ |
Linea 152: | Linea 147: |
* Per aggiungere una regola digitare: {{{ | * Per '''aggiungere''' una regola digitare: {{{ |
Linea 154: | Linea 149: |
}}}Per esempio: {{{ | }}}Ad esempio: {{{ |
Linea 159: | Linea 154: |
* Per inserire una regola all'inizio della catena digitare: {{{ | * Per '''inserire''' una regola '''all'inizio''' della catena digitare: {{{ |
Linea 163: | Linea 158: |
* Per aggiungere una regola in una determinata posizione, si deve usare `handle` come riferimento, digitare: {{{ | * Per '''aggiungere''' una regola in una '''determinata posizione''', si deve usare `handle` come riferimento, digitare: {{{ |
Linea 173: | Linea 168: |
}}}Per posizionare la nuova regola dopo `handle 8` digitare: {{{ | }}}Per '''posizionare''' la nuova regola '''dopo''' `handle 8` digitare: {{{ |
Linea 177: | Linea 172: |
* Per sostituire una regola digitare: {{{ | * Per '''sostituire''' una regola digitare: {{{ |
Linea 181: | Linea 176: |
* Per cancellare una regola digitare: {{{ | * Per '''cancellare''' una regola digitare: {{{ |
Linea 187: | Linea 182: |
= Esempi di configurazione = Sono disponibili alcuni esempi di configurazioni in `/usr/share/doc/nftables/examples/`, e altri esempi nei link a fondo pagina. |
|
Linea 191: | Linea 190: |
* [[http://manpages.ubuntu.com/manpages/focal/man8/nft.8.html|Pagina man di nft]] | * [[https://www.netfilter.org/projects/nftables/manpage.html|Pagina man di nft]] |
Guida verificata con Ubuntu: 20.04 22.04 24.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
nftables è un programma per controllare le regole di filtraggio dei pacchetti dal progetto Netfilter. Questo software fornisce un'infrastruttura per classificazione dei pacchetti interna al kernel che è basata su una VM (macchina virtuale) specifica per rete, e lo strumento a riga di comando in spazio utente nft.
L'infrastruttura nftables riusa i sottosistemi netfilter esistenti, come l'infrastruttura esistente per hook, il sistema di tracciamento delle connessioni, NAT, la gestione di code in spazio utente e il sottosistema di registrazione di log.
nftables sostituisce i vecchi popolari iptables, ip6tables, arptables ed ebtables ed è utilizzato in applicazioni come condivisione di connessioni internet, firewall, contabilità per IP, proxy trasparenti, instradamento avanzato e controllo del traffico.
Dal rilascio 20.10 Ubuntu utilizza come infrastruttura predefinita nftables al posto del precedente iptables.
In nftables, non ci sono tabelle/catene predefinite, ad esempio se intendiamo impostare la catena output, con policy accept può essere omessa.
Tutti i comandi citati in questa pagina vanno digitati nel terminale con i privilegi di amministrazione .
Selezione
Per selezionare e/o verificare quale infrastruttura firewall è in uso nel nostro sistema operativo, digitare questi due comandi:
update-alternatives --config iptables update-alternatives --config ip6tables
riceveremo una risposta simile a questa:
Sono disponibili 2 scelte per l'alternativa iptables (che fornisce /usr/sbin/iptables). Selezione Percorso Priorità Stato ------------------------------------------------------------ 0 /usr/sbin/iptables-nft 20 modalità automatica * 1 /usr/sbin/iptables-legacy 10 modalità manuale 2 /usr/sbin/iptables-nft 20 modalità manuale Premere Invio per mantenere il valore predefinito[*] o digitare il numero della selezione:
Scegliere tra nft e iptables-legacy.
Installazione
Installare il pacchetto nftables.
Abilitare il servizio nftables all'avvio.
Migrazione
Per importare le regole da iptables a nftables vengono mostrate due possibilità.
Regola singola
Occorre digitare un comando del tipo:
iptables-translate <regola di iptables>
Esempio:
iptables-translate -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
riceveremo la risposta:
nft add rule ip filter INPUT tcp dport 22 ct state new counter accept
Esempio con ipv6:
ip6tables-translate -A FORWARD -i eth0 -o eth3 -p udp -m multiport --dports 111,222 -j ACCEPT
riceveremo la risposta:
nft add rule ip6 filter FORWARD iifname eth0 oifname eth3 meta l4proto udp udp dport { 111,222} counter accept
Set di regole
Salvare tutte le regole in uso su iptables in un file digitando:
iptables-save > save.txt
- Per importare il set di regole sono possibili due alternative:
Importare le regole salvate nel file digitando:
iptables-restore-translate -f save.txt
Il terminale darà come risposta tutte le regole contenute nel file adattandole alla sintassi di nftables.Importare le regole e al tempo stesso salvarle in un file leggibile da nftables digitando:
iptables-restore-translate -f save.txt > ruleset.nft
Comandi principali
Generici
Per caricare le regole da un file digitare:
nft -f <file>
Per salvare le regole in uso in modo che vengano ricaricate al prossimo avvio digitare:
nft list ruleset > /etc/nftables.conf
Per elencare le regole in uso digitare:
nft list ruleset
Per elencare le regole in uso e visualizzare anche gli handle, ovvero i riferimenti univoci di ogni riga digitare:
nft -a list ruleset
Per cancellare tutte le regole in uso digitare:
nft flush ruleset
Tabelle
Per creare una tabella digitare:
nft add table ip filter
Per elencare le tabelle digitare:
nft list tables
Per cancellare una tabella digitare:
nft delete table ip filter
In caso di errore nella cancellazione della tabella, svuotarla dalle regole contenute.
Per svuotare la tabella dalle regole in essa contenute digitare:
nft flush table ip filter
Catene
Per aggiungere una catena digitare:
nft add chain [<famiglia>] <nome_tabella> <nome_catena> { type <tipo> hook <hook> priority <valore> \; [policy <policy> \;] }
Ad esempio:
nft add chain ip filter input { type filter hook input priority 0; policy drop; } nft add chain ip filter forward { type filter hook forward priority 0; policy drop; }
Per cancellare una catena digitare:
nft delete chain [famiglia] <nome_tabella> <nome_catena>
Ad esempio:
nft delete chain ip filter input
In caso di errore nella cancellazione della catena svuotarla prima dei contenuti
Per svuotare la catena dai suoi contenuti digitare:
nft flush chain ip filter input
Regole
Per aggiungere una regola digitare:
nft add rule [<famiglia>] [nome_tabella] [nome_catena] [regola da aggiungere]
Ad esempio:
nft add rule ip filter input iifname "lo" accept nft add rule ip filter input ct state related,established accept
Per inserire una regola all'inizio della catena digitare:
nft insert rule ip filter input iifname "lo" accept
Per aggiungere una regola in una determinata posizione, si deve usare handle come riferimento, digitare:
nft list table filter -a
Riceveremo una risposta simile:
table filter { chain output { type filter hook output priority 0; ip protocol tcp counter packets 82 bytes 9680 # handle 8 ip saddr 127.0.0.1 ip daddr 127.0.0.6 drop # handle 7 } }
Per posizionare la nuova regola dopo handle 8 digitare:
nft add rule filter output position 8 ip daddr 127.0.0.8 drop
Per sostituire una regola digitare:
nft replace rule filter output handle 7 ip daddr 127.0.0.8 drop
Per cancellare una regola digitare:
nft delete rule filter output ip saddr 127.0.0.1 ip daddr 127.0.0.6 drop
Oppure:
nft delete rule filter output handle 7
Esempi di configurazione
Sono disponibili alcuni esempi di configurazioni in /usr/share/doc/nftables/examples/, e altri esempi nei link a fondo pagina.