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 18 e 63 (in 45 versioni)
Versione 18 del 03/01/2022 16.38.05
Dimensione: 7987
Autore: carlin0
Commento:
Versione 63 del 21/02/2022 12.43.13
Dimensione: 7919
Autore: jeremie2
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
## https://wiki.ubuntu-it.org/AmministrazioneSistema/PulireUbuntu
## page was renamed from PulireUbuntu
## page was renamed from Carlin0/Prove9
## Pagina creata da Carlin0
Linea 4: Linea 4:
#LANGUAGE it #language it
<<Include(NuoviStrumentiWiki/PaginaDiProva)>>
<<Indice(depth=2 align=right)>>
<<Informazioni(forum="https://forum.ubuntu-it.org/viewtopic.php?f=46&t="; rilasci="20.04";)>>

= Introduzione =

'''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.
Linea 6: Linea 17:
<<Indice>>
<<Informazioni(rilasci="20.04"; forum="http://forum.ubuntu-it.org/viewtopic.php?t=482478")>>

= Introduzione =

La presente guida vuole essere un'introduzione alle principali operazioni di manutenzione e pulizia del sistema.

= Disattivare servizi inutilizzati =

Fare riferimento alla pagina [[127.0.0.1|Link]]

Quelli che seguono sono i servizi che possono essere disattivati senza alcun rischio, ammesso che non siano correlati a qualche esigenza particolare:

||<tablestyle="width:80%" rowstyle="background-color: #cccccc;" :>'''Servizio''' ||<:> '''Azione''' ||
||<#f7f7f7> '''acpid''' || gestione energetica intelligente ||
||<#f7f7f7> '''acpid support''' || risparmio energetico sui notebook ||
||<#f7f7f7> '''apache2''' || server web apache2 ||
||<#f7f7f7> '''apmd''' || indicatore di stato delle batterie per vecchi computer portatili ||
||<#f7f7f7> '''bluetooth''' || gestione bluetooth ||
||<#f7f7f7> '''cups''' || server di stampa ||
||<#f7f7f7> '''powernowd''' || controllo del voltaggio e della velocità della CPU ||
||<#f7f7f7> '''saned''' || demone per la gestione dello scanner ||
||<#f7f7f7> '''ssh''' || server ssh per accedere da remoto al vostro PC ||
In nftables, non ci sono tabelle/catene predefinite, ad esempio se intendiamo impostare la catena `output` con policy `accept` può essere omessa.

<<BR>>
Linea 32: Linea 22:
Altri servizi presenti nell'elenco potrebbero essere necessari al corretto funzionamento del sistema, pertanto è sconsigliato disattivarli.}}}

= Pulizia delle configurazioni inutilizzate =

== Configurazioni nel sistema ==

 0. Per eliminare i file di configurazione di un determinato pacchetto digitare nel [[AmministrazioneSistema/RigaDiComando|terminale]]: {{{
sudo apt purge <nome_pacchetto>
}}}

 0. Per trovare eventuali file di configurazione relativi a programmi disinstallati digitare nel [[AmministrazioneSistema/RigaDiComando|terminale]]: {{{
dpkg -l | egrep "^rc" | cut -d ' ' -f3
}}}Per eliminare i file di configurazione trovati digitare: {{{
sudo dpkg --purge `dpkg -l | egrep "^rc" | cut -d ' ' -f3`
}}}
Tutti i comandi citati in questa pagina vanno digitati nel [[AmministrazioneSistema/Terminale|terminale]] con i [[AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo|privilegi di amministrazione]] .
}}}

= Selezione =
Linea 48: Linea 28:
Prima di '''dpkg''' ed alla fine del comando sono stati posti degli accenti gravi, differenti dalle virgolette semplici, che si possono facilmente ottenere con la combinazione '''Alt``Gr+' '''.}}}

== Configurazioni nella Home ==

 0. Per visualizzare le cartelle di configurazione presenti nella propria '''Home''' digitare nel [[AmministrazioneSistema/RigaDiComando|terminale]]: {{{
ls -a ~/
}}}Controllare anche nelle sottocartelle `.config` e `.local` digitando: {{{
ls -a ~/.config
ls -a ~/.local
ls -a ~/.local/share
}}}
 0. Per eliminare le cartelle dei programmi di cui si ha la certezza che siano stati rimossi digitare: {{{
rm -r ~/.<nome_cartella>
}}}Nel caso fossero annidiate in una sottocartella digitare a seconda dei casi: {{{
rm -r ~/.config/<nome_cartella>
rm -r ~/.local/<nome_cartella>
rm -r ~/.local/share/<nome_cartella>
}}}Sostituire '''nome_cartella''' al nome della cartella che si vuole eliminare.

{{{#!wiki note
Per riprodurre il carattere '''~''' (tilde) premere contemporaneamente i tasti '''Alt Gr''' e '''ì'''}}}

= Pulizia della cache =

== Cache di apt ==

Consultare la [[AmministrazioneSistema/InstallareProgrammi/Apt#Pulizia_della_cache|relativa guida]].

== Cache della Home ==

 0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://bleachbit|Bleachbit]].

 {{{#!wiki important
Se non si è sicuri di quello che si fa evitare di usare Bleachbit "As Root" perchè si potrebbe danneggiare il sistema.}}}

 0. [[AmbienteGrafico/AvviareProgrammi|Avviare]] '''Bleachbit''' da utente normale.

<<BR>>
<<Immagine(./bleach.png,600,center)>>


= Pulizia delle librerie orfane =

Con l'espressione ''libreria orfana'' si vuole indicare una libreria precedentemente installata poichè necessaria al corretto funzionamento di una o più applicazioni, diventata inutile successivamente alla disinstallazione di tutti i programmi che ne facevano uso.

deborphan

{{{#!wiki important
L'uso del programma è consigliato solo ad utenti esperti.}}}

{{{#!wiki tip
È altamente sconsigliato selezionare l'opzione '''Mostra tutti, non solo quelli nella sezione libs''', potrebbero venire elencati dei file essenziali al corretto funzionamento del sistema.}}}

= Pacchetti di lingua =

L'installazione di un pacchetto sul sistema comporta anche l'installazione dei pacchetti di localizzazione e delle relative pagine '''man''' delle altre lingue diverse da quella corrente. È possibile eliminare tali file inutili con il programma [[apt://localepurge | localepurge]].

== Installazione di localepurge ==

[[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://localepurge | localepurge]].

{{{#!wiki important
Il programma non si integra con la gestione dei pacchetti di Ubuntu. Un uso poco cauto potrebbe causare dei danni al sistema.}}}

== Configurazione ==

Durante la configurazione dell'applicazione bisogna selezionare le lingue che si vogliono mantenere sul sistema, le altre verranno eliminate.

Si consiglia di mantenere sul sistema l'inglese (lingua di default) e l'italiano, selezionando le seguenti sigle:

 * '''C''' (predefinita, non in elenco)
 * '''en'''
 * '''en_US'''
 * '''en_US.UTF-8'''
 * '''en_US.ISO-8859-15'''
 * '''it'''
 * '''it_IT'''
 * '''it_IT@euro'''
 * '''it_IT.UTF-8'''

Verranno chieste anche altre informazioni, tra di esse la più importante riguarda l'eliminazione delle pagine di manuale. Per eliminare le pagine '''man''' in lingue diverse dalle due selezionate è sufficiente premere '''Yes'''. Tutte le configurazioni verranno salvate nel file `/etc/locale.nopurge` che, naturalmente, può essere modificato con un qualunque [[Ufficio/EditorDiTesto|editor di testo]].

Ogni opzione può essere attivata o disattivata semplicemente eliminando o inserendo il carattere di commento «#» all'inizio della riga corrispondente. Quello che segue è un elenco contenente alcune delle opzioni presenti nel file sopra citato:

||<tablestyle="width:80%" rowstyle="background-color: #cccccc;" :>'''Opzione'''||<:> '''Descrizione'''||
||<#f7f7f7> MANDELETE || elimina anche i manuali delle lingue ||
||<#f7f7f7> DONTBOTHERNEWLOCALE || elimina tutte le nuove lingue installate nel sistema ||
||<#f7f7f7> SHOWFREEDSPACE || indica in modo preciso lo spazio liberato dal programma ||
||<#f7f7f7> QUICKNDIRTYCALC || indica in modo sommario lo spazio liberato dal programma ||
||<#f7f7f7> VERBOSE || modalità verbosa, le operazioni verranno descritte dettagliatamente ||

Di seguito l'elenco delle lingue che non verranno eliminate: {{{
#####################################################
# Following locales won't be deleted from this system
# after package installations done with apt-get(8):

en
en_US
en_US.ISO-8859-15
en_US.UTF-8
it
it_IT
it_IT@euro
it_IT.UTF-8
}}}

== Avvio del programma ==

Una volta salvata la configurazione è possibile lanciare il programma. Aprire una finestra di [[AmministrazioneSistema/RigaDiComando|terminale]] e digitare il seguente comando:
{{{
sudo localepurge
}}}

Verrà avviata l'analisi, dunque l'eliminazione dei file inutilizzati, infine verrà comunicata la dimensione dello spazio liberato.

{{{#!wiki note
L'efficacia del programma è direttamente proporzionale alla quantità di pacchetti installati: su un sistema abbastanza pulito l'esecuzione del comando comporterà la liberazione di alcune decine di MiB dal disco fisso. Se si possiedono molti programmi installati sul sistema, è probabile che lo spazio liberato raggiunga una dimensione prossima a 100 MiB.}}}
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: {{{
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 =

 0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt:/nftables|nftables]].

 0. [[https://wiki.ubuntu-it.org/AmministrazioneSistema/Systemd#Abilita_.2F_Disabilita|Abilitare]] il servizio `nftables` all'avvio.

= Migrazione =

Per importare le regole da `iptables` a `nftables` ci sono 2 possibilità:

== Regola singola ==

 * Digitare: {{{
iptables-translate <regola di iptables>
}}}per 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
}}}altro esempio ma 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 ==

 0. Salvare tutte le regole in uso su `iptables` in un file digitando: {{{
iptables-save > save.txt
}}}

 0. Per importare il set di regole sono possibili 2 alternative:

  0. 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`.

  0. 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
}}}

 {{{#!wiki note
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> \;] }
}}}Per 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>
}}}Per esempio: {{{
nft delete chain ip filter input
}}}

 {{{#!wiki note
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]
}}}Per 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.
Linea 168: Linea 198:
 * [[http://guide.debianizzati.org/index.php/Pulire_Debian|Guida alla pulizia di Debian]]  * [[https://netfilter.org/projects/nftables|Sito del progetto]]
 * [[https://wiki.nftables.org|Wiki di nftables]]
 * [[https://www.netfilter.org/projects/nftables/manpage.html|Pagina man di nft]]
 * [[https://wiki.archlinux.org/title/Nftables|Wiki Archlinux]]
 * [[https://wiki.gentoo.org/wiki/Nftables|Wiki Gentoo]]
 * [[https://guide.debianizzati.org/index.php/Nftables|Guida debianizzati]]
Linea 170: Linea 205:
CategoryAmministrazione CategorySicurezza

Attenzione! Questa è una Pagina di prova. Le informazioni riportate potrebbero essere incomplete, errate e potenzialmente pericolose. Per contribuire alla realizzazione di questa pagina consultare la discussione di riferimento.

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


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

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:

    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

  1. Installare il pacchetto nftables.

  2. Abilitare il servizio nftables all'avvio.

Migrazione

Per importare le regole da iptables a nftables ci sono 2 possibilità:

Regola singola

  • Digitare:

    iptables-translate <regola di iptables>

    per 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

    altro esempio ma 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 2 alternative:
    1. 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.

    2. 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> \;] }

    Per 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>

    Per 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]

    Per 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