Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Sicurezza/Nftables"
Differenze tra le versioni 54 e 68 (in 14 versioni)
Versione 54 del 16/02/2022 16.59.16
Dimensione: 7396
Autore: carlin0
Commento:
Versione 68 del 28/07/2024 15.59.37
Dimensione: 8050
Autore: carlin0
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 2
0.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

  1. 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: 
  2. Scegliere tra nft e iptables-legacy.

Installazione

  1. Installare il pacchetto nftables.

  2. 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

  1. Salvare tutte le regole in uso su iptables in un file digitando:

    iptables-save > save.txt
  2. 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.

Ulteriori risorse


CategorySicurezza