Nftables: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
m
Riga 3: Riga 3:
<code>nftables</code> è la nuova infrastruttura per l'analisi e manipolazione dei pacchetti di rete che sostituisce la vecchia <code>iptables</code>. Già in sviluppo da alcuni anni (è disponibile dalla versione 3.13 del kernel di linux) sarà la soluzione predefinita a partire da ''Buster'', attraverso gli strumenti del gruppo '''<code>xtables-nft</code> che permettono di agire su <code>nftables</code> usando la vecchia sintassi''' di <code>iptables</code>.<br>
<code>nftables</code> è la nuova infrastruttura per l'analisi e manipolazione dei pacchetti di rete che sostituisce la vecchia <code>iptables</code>. Già in sviluppo da alcuni anni (è disponibile dalla versione 3.13 del kernel di linux) sarà la soluzione predefinita a partire da ''Buster'', attraverso gli strumenti del gruppo '''<code>xtables-nft</code> che permettono di agire su <code>nftables</code> usando la vecchia sintassi''' di <code>iptables</code>.<br>
Naturalmente come sempre in questi casi la transizione non sarà netta da un giorno all'altro, ma il vecchio <code>iptables</code> continuerà a sopravvivere come strumento ''legacy'' (difficile dire per quanto), visto che tra l'altro <code>nftables</code> presenta un livello di compatibilità con il suo predecessore.
Naturalmente come sempre in questi casi la transizione non sarà netta da un giorno all'altro, ma il vecchio <code>iptables</code> continuerà a sopravvivere come strumento ''legacy'' (difficile dire per quanto), visto che tra l'altro <code>nftables</code> presenta un livello di compatibilità con il suo predecessore.
==Installazione==
==Installazione==
Per usare gli strumenti del gruppo <code>xtables-nft</code> non è necessario fare alcunché in ''Buster'', infatti questi sono già disponibili di serie come già detto, mentre in ''Stretch'' è necessario installare il pacchetto <code>iptables-nftables-compat</code>
Per usare gli strumenti del gruppo <code>xtables-nft</code> non è necessario fare alcunché in ''Buster'', infatti questi sono già disponibili di serie come già detto, mentre in ''Stretch'' è necessario installare il pacchetto <code>iptables-nftables-compat</code>
Riga 11: Riga 10:
<pre># apt install nftables</pre>
<pre># apt install nftables</pre>
presente sia in ''Buster'' che ''Stretch''.
presente sia in ''Buster'' che ''Stretch''.
=== Cambiare infrastruttura ===
=== Cambiare infrastruttura ===
Come scritto nell'introduzione <code>nftables</code> è lo standard in ''Buster'', ma è comunque possibile continuare ad usare la vecchia infrastruttura attraverso <code>iptables-legacy</code> usando il comando <code>update-alternatives</code> come mostrato nel sottostante esempio:
Come scritto nell'introduzione <code>nftables</code> è lo standard in ''Buster'', ma è comunque possibile continuare ad usare la vecchia infrastruttura attraverso <code>iptables-legacy</code> usando il comando <code>update-alternatives</code> come mostrato nel sottostante esempio:
<pre>
<pre>
Riga 27: Riga 24:
Premere Invio per mantenere il valore predefinito[*] o digitare il numero della selezione: 1
Premere Invio per mantenere il valore predefinito[*] o digitare il numero della selezione: 1
</pre>
</pre>
Quindi anche se l'eseguibile di riferimento cambia, il collegamento simbolico no, ovvero i comandi continueranno ad essere dati digitando <code># iptables opzioni comando ecc.</code>.
Quindi anche se l'eseguibile di riferimento cambia, il collegamento simbolico no, ovvero i comandi continueranno ad essere dati digitando <code># iptables opzioni comando ecc.</code>.
== Sintassi <code>nft</code> ==
== Sintassi <code>nft</code> ==
Mostrare tutte le regole di tutte le tabelle (tutto in una parola):
Mostrare tutte le regole di tutte le tabelle (tutto in una parola):
Riga 72: Riga 67:
<pre>nft flush table filter</pre>
<pre>nft flush table filter</pre>
Per maggiori informazioni sulla nuova sintassi si rimanda alla sezione ''Approfondimenti'' in coda a questa pagina.
Per maggiori informazioni sulla nuova sintassi si rimanda alla sezione ''Approfondimenti'' in coda a questa pagina.
=== Caricare automaticamente le regole ===
=== Caricare automaticamente le regole ===
Come nel caso di <code>iptables</code> tutte le regole dichiarate saranno perse al riavvio della macchina, ma al momento non esiste uno strumento come <code>iptables-persistent</code>.<br>
Come nel caso di <code>iptables</code> tutte le regole dichiarate saranno perse al riavvio della macchina, ma al momento non esiste uno strumento come <code>iptables-persistent</code>.<br>
Riga 83: Riga 77:
<pre>@reboot /usr/sbin/nft -f /etc/nftables.conf</pre>
<pre>@reboot /usr/sbin/nft -f /etc/nftables.conf</pre>
in modo che ad ogni riavvio vengano ricaricate in automatico tutte le regole.
in modo che ad ogni riavvio vengano ricaricate in automatico tutte le regole.
==Migrare da iptables==
==Migrare da iptables==
Sono stati sviluppati alcuni strumenti di conversione per facilitare la migrazione dalla sintassi di <code>iptables</code> a quella di <code>nftables</code>. In particolare:
Sono stati sviluppati alcuni strumenti di conversione per facilitare la migrazione dalla sintassi di <code>iptables</code> a quella di <code>nftables</code>. In particolare:
* <code>iptables-translate</code> che permette di tradurre al volo un comando qualsiasi di <code>iptables</code> (e qualora non ne sia in grado avvisa l'utente).
* <code>iptables-translate</code> che permette di tradurre al volo un comando qualsiasi di <code>iptables</code> (e qualora non ne sia in grado avvisa l'utente).
* <code>iptables-restore-translate</code> che invece traduce un file di regole generato attraverso <code>iptables-save</code>.
* <code>iptables-restore-translate</code> che invece traduce un file di regole generato attraverso <code>iptables-save</code>.
=== iptables-translate ===
=== iptables-translate ===
Se non si hanno molte regole da convertire questo è probabilmente il modo migliore di procedere, per tre motivi:
Se non si hanno molte regole da convertire questo è probabilmente il modo migliore di procedere, per tre motivi:
# permette immediatamente di vedere se una certa regola può essere tradotta correttamente;
# permette immediatamente di vedere se una certa regola può essere tradotta correttamente;
# permette di avere un idea di come è cambiata la sintassi;
# permette di avere un idea di come è cambiata la sintassi;
# permette di generale un elenco di regole '''chiaro e pulito''' (vedere il comando <code>nft list ruleset > nftables.conf</code>).
# permette di generale un elenco di regole '''chiaro e pulito''' (vedere il comando <code>nft list ruleset > nftables.conf</code>).
Esempio:
Esempio:
<pre>
<pre>
Riga 101: Riga 91:
nft add rule ip filter INPUT tcp dport 22 ct state new counter accept
nft add rule ip filter INPUT tcp dport 22 ct state new counter accept
</pre>
</pre>
=== iptables-restore-translate ===
=== iptables-restore-translate ===
Per procedere è prima necessario salvare in un file testuale il contenuto di <code>iptables</code> col comando:
Per procedere è prima necessario salvare in un file testuale il contenuto di <code>iptables</code> col comando:
<pre># iptables-save > save.txt</pre>
<pre># iptables-save > save.txt</pre>
Riga 111: Riga 99:
<pre># nft -f ruleset.nft</pre>
<pre># nft -f ruleset.nft</pre>
Come già scritto le regole così importate andranno perse al riavvio e pertanto sta all'utente trovare un modo di caricarle in automatico all'avvio (un possibile metodo è stato presentato nella sezione precedente ''Caricare automaticamente le regole'').
Come già scritto le regole così importate andranno perse al riavvio e pertanto sta all'utente trovare un modo di caricarle in automatico all'avvio (un possibile metodo è stato presentato nella sezione precedente ''Caricare automaticamente le regole'').
== Approfondimenti ==
== Approfondimenti ==
=== Manpages ===
=== Manpages ===
 
* <code>man xtables-nft</code> in ''Buster'' e successive, <code>man iptables-compat</code> in ''Stretch''
* <code>man xtables-nft</code> in ''Buster'', <code>man iptables-compat</code> in ''Stretch''
* <code>man xtables-translate</code> in ''Buster'' e successive, <code>man iptables-translate</code> in ''Stretch''
* <code>man xtables-translate</code> in ''Buster'', <code>man iptables-translate</code> in ''Stretch''
* <code>man nft</code>
* <code>man nft</code>
=== Sitografia ===
=== Sitografia ===
* [https://wiki.nftables.org/wiki-nftables/index.php/Main_Page Wiki ufficiale], pagina principale
* [https://wiki.nftables.org/wiki-nftables/index.php/Main_Page Wiki ufficiale], pagina principale
* [https://wiki.nftables.org/wiki-nftables/index.php/Moving_from_iptables_to_nftables Wiki ufficiale, migrazione], pagina dedicata alla migrazione da <code>iptables</code>
* [https://wiki.nftables.org/wiki-nftables/index.php/Moving_from_iptables_to_nftables Wiki ufficiale, migrazione], pagina dedicata alla migrazione da <code>iptables</code>
Riga 136: Riga 119:
|Numero_revisori=0
|Numero_revisori=0
}}
}}
[[Categoria:Firewall]]
[[Categoria:Firewall]]
3 155

contributi

Menu di navigazione