Translation(s): English - Italiano - Русский


nftables è un framework del Netfilter Project che fornisce il filtraggio dei pacchetti, la traduzione degli indirizzi di rete (NAT) e altre manipolazioni dei pacchetti.

Due degli usi più comuni di nftables è fornire supporto firewall e NAT.

nftables è il framework di firewall predefinito e consigliato in Debian e sostituisce il vecchio iptables (and strumenti relazionati).

Stato attuale

NOTA: Debian Buster usa nftables di default.

A partire da Debian Buster, nf_tables è il backend predefinito quando si usa iptables, per mezzo del livello iptables-nft (cioè, usando la sintassi iptables con il sottosistema del kernel nf_tables). Ciò riguarda anche ip6tables, arptables ed ebtables.

Suggerimenti

Alcuni suggerimenti che le persone potrebbero trovare interessanti in alcune situazioni.

Usare firewalld

Dovresti considerare l'utilizzo di un wrapper invece di scrivere i tuoi script di firewalling. Si consiglia di eseguire ?firewalld, che si integra abbastanza bene nel sistema. Vedi anche https://firewalld.org/

Il software firewalld prende il controllo di tutte le impostazioni del firewall nel tuo sistema, quindi non devi conoscere tutti i dettagli di ciò che sta accadendo in background. Ci sono molti altri componenti di sistema che possono essere integrati con firewalld, come NetworkManager, libvirt, podman, fail2ban, docker, ecc.

Ripristino di xtables legacy

È possibile passare da iptables-nft a iptables-legacy tramite update-alternatives (lo stesso vale per arptables ed ebtables).

L'impostazione predefinita che inizia con Debian Buster:

# update-alternatives --set iptables /usr/sbin/iptables-nft
# update-alternatives --set ip6tables /usr/sbin/ip6tables-nft
# update-alternatives --set arptables /usr/sbin/arptables-nft
# update-alternatives --set ebtables /usr/sbin/ebtables-nft

Passaggio alla versione legacy:

# update-alternatives --set iptables /usr/sbin/iptables-legacy
# update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
# update-alternatives --set arptables /usr/sbin/arptables-legacy
# update-alternatives --set ebtables /usr/sbin/ebtables-legacy

nftables in Debian (il modo semplice)

Se vuoi abilitare un firewall predefinito in Debian, segui questi passaggi:

# aptitude install nftables
# systemctl enable nftables.service

In questo modo, nftables è attivo all'avvio. Per impostazione predefinita, le regole si trovano in /etc/nftables.conf.

Per impedire a nftables di fare qualsiasi cosa, elimina tutte le regole:

# nft flush ruleset

To prevent nftables from starting at boot:

# systemctl mask nftables.service

To uninstall it and purge any traces of nftables in your system:

# aptitude purge nftables

FAQ

Cos'è nftables?

È il nuovo framework del progetto Netfilter, che consente di eseguire il filtraggio dei pacchetti (firewalling), NAT, mangling e classificazione dei pacchetti.

Dovrei costruire un firewall usando un nftables?

Sì. La creazione di nuovi firewall su iptables è sconsigliata.

Devo sostituire un firewall iptables con uno nftables?

Sì, nftables è il sostituto di iptables. Ci sono alcuni strumenti in atto per facilitare questo compito.

Si prega di leggere: https://wiki.nftables.org/wiki-nftables/index.php/Moving_from_iptables_to_nftables

Perché un nuovo framework?

Il framework precedente (iptables) ha diversi problemi difficili da affrontare, riguardanti la scalabilità, le prestazioni, la manutenzione del codice, ecc.

Quali sono le principali differenze?

In iptables ci sono diverse tabelle (filtro, nat) e catene (FORWARD, INPUT ...) per impostazione predefinita. In nftables, non ci sono tabelle/catene predefinite.

Inoltre, in iptables hai solo un obiettivo per regola (-j ACCEPT, -j LOG ...). In nftables, puoi eseguire diverse azioni in un'unica regola.

nftables include funzionalità di set di dati incorporate. In iptables questo non è possibile e c'è uno strumento separato: ?ipset.

Nel framework iptables ci sono strumenti per famiglia: iptables, ip6tables, arptables, ebtables. Ora, nftables ti consente di gestire tutte le famiglie in un unico strumento CLI.

Questo nuovo framework presenta un nuovo sottosistema del kernel Linux, noto come nf_tables. Il nuovo meccanismo del motore si ispira a sistemi simili a BPF, con una serie di espressioni di base, che possono essere combinate per costruire regole di filtraggio complesse.

Devo mescolare le regole nftables e iptables/ebtables/arptables?

No, a meno che tu non sappia cosa stai facendo.

Conoscevo la sintassi di iptables. C'è una nuova sintassi in nftables?

Sì, ma quello nftables è migliore :-)

Aiuto nella migrazione a nftables: https://wiki.nftables.org/wiki-nftables/index.php/Moving_from_iptables_to_nftables

Nuova sintassi

Creare una tabella dual-stack IPv4/IPv6 di base:

# nft add table inet filter

Creare una catena per il traffico dual-stack IPv4/IPv6 di input:

# nft add chain inet filter input { type filter hook input priority 0\; }

Unare regola per verificare che tutto vada bene (dual-stack IPv4/IPv6):

# nft add rule inet filter input counter accept

Mostrare tutto il precedente:

# nft list table inet filter

Svuotare le regole nel filtro/input della catena:

# nft flush chain inet filter input

Cancellare le regole nel filtro/input della catena:

# nft delete chain inet filter input

Elimina il filtro della tabella:

# nft delete table inet filter

Il parametro della famiglia è facoltativo. L'impostazione predefinita è "ip". Altre famiglie sono "inet", "ip6", "arp", "bridge" o "netdev":

# nft add table ip6 filter
# nft add chain ip6 filter input
# nft add rule ip6 filter input counter accept

Debian fornisce configurazioni di esempio in:

#/usr/share/doc/nftables/examples/

Contare il traffico sulla porta di destinazione tcp/22 (dual-stack IPv4/IPv6):

# nft add rule inet filter input tcp dport 22 counter

Contare e accettare il traffico in 80/tcp e 443/tcp nello stato nuovo e stabilito (dual-stack IPv4/IPv6):

# nft add rule inet filter input tcp dport {80, 443} ct state new,established counter accept

Risorse esterne

Dai un'occhiata al wiki ufficiale di nftables: http://wiki.nftables.org/


CategorySystemAdministration