|
Dimensione: 9632
Commento:
|
Dimensione: 7632
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 |
## Pagina creata da Carlin0 |
| Linea 4: | Linea 3: |
| #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 16: |
| <<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. = Pulizia della cache = = Gestione dei servizi = Un elenco di comandi da digitare nel [[AmministrazioneSistema/Terminale|terminale]] per gestire i servizi: 0. Per avviare un servizio digitare: {{{ sudo systemctl start <nome_servizio>.service }}} 0. Per fermare un servizio digitare: {{{ sudo systemctl stop <nome_servizio>.service }}} 0. Per riavviare un servizio digitare: {{{ sudo systemctl restart <nome_servizio>.service }}} 0. Per ricaricare un servizio digitare: {{{ sudo systemctl reload <nome_servizio>.service }}} {{{#!wiki tip Se non sei sicuro che il servizio disponga della funzionalità per ricaricare la sua configurazione, puoi eseguire il comando `reload-or-restart`. Questo ricaricherà la configurazione sul posto, se disponibile. In caso contrario, riavvierà il servizio in modo che venga prelevata la nuova configurazione.}}} 0. Per abilitare un servizio all'avvio digitare: {{{ sudo systemctl enable <nome_servizio>.service }}} 0. Per disabilitare un servizio all'avvio digitare: {{{ sudo systesmctl disable <nome_servizio>.service }}} 0. Per controllare lo stato di un servizio digitare: {{{ systemctl status <nome_servizio>.service }}} 0. Per verificare se un determinato servizio è attivo digitare: {{{ systemctl is-active <nome_servizio>.service }}}Riceveremo come risposta: `active` oppure `inactive`. 0. Per verificare se un determinato servizio viene attivato all'avvio del sistema digitare: {{{ systemctl is-enabled <nome_servizio>.service }}}Riceveremo come risposta: `enabled` oppure `disabled`. 0. Per elencare tutti i servizi disponibili digitare: {{{ systemctl list-units --type=service }}} 0. Per elencare tutti i servizi attivi nel sistema digitare: {{{ systemctl list-units --type=service --state=running }}} 0. Per vedere l'albero delle dipendenze di un servizio digitare: {{{ systemctl list-dependencies <nome_servizio>.service }}} 0. Per vedere le proprietà di un servizio digitare: {{{ systemctl show <nome_servizio>.service }}} 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 89: | Linea 21: |
| Gli altri servizi presenti nell'elenco potrebbero essere necessari al corretto funzionamento del sistema, pertanto è sconsigliato disattivarli.}}} = Pulizia dei file di configurazione = == Eliminare la configurazione residua di un pacchetto == Dopo aver disinstallato un pacchetto è possibile eliminare anche i file di configurazione inutilizzati. A tale scopo è sufficiente digitare il seguente comando in una finestra di [[AmministrazioneSistema/RigaDiComando|terminale]]: {{{ sudo dpkg --purge nome_pacchetto }}} La dicitura ''nome_pacchetto'' va sostituita con il nome del pacchetto del quale si desiderano cancellare i file di configurazione. == Ricerca e pulizia delle configurazioni inutilizzate == La procedura sopra descritta consente di eliminare i file di configurazione di un programma disinstallato e conosciuto. Tuttavia, dopo aver disinstallato un programma spesso ci si dimentica di eliminare i relativi file di configurazione. Per trovare tutti i file di configurazione relativi a programmi disinstallati è utile digitare il seguente comando: {{{ dpkg -l | egrep "^rc" | cut -d ' ' -f3 }}} Se presenti, verranno mostrati i file di configurazione che è possibile eliminare. Per procedere alla loro rimozione, 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 116: | Linea 27: |
| 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+' '''.}}} In alternativa, è possibile visualizzare le cartelle di configurazione presenti nella propria '''Home''' digitando il seguente comando: {{{ ls -a }}} e in seguito eliminare le cartelle dei programmi di cui si ha la certezza che siano stati rimossi: {{{ rm -R .nome_cartella }}} dove ''.nome_cartella'' corrisponde al nome della cartella che si vuole eliminare. = Pulizia della cache di apt-get = Consultare la [[AmministrazioneSistema/InstallareProgrammi/Apt#Pulizia_della_cache|relativa guida]]. = 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. Importare le regole salvate nel file digitando: {{{ iptables-restore-translate -f save.txt }}}Oppure importare le regole e al tempo stesso salvarle in un file ''leggibile'' da `nftables` digitando: {{{ iptables-restore-translate -f save.txt > ruleset.nft }}} 0. Caricare su `nftables` le regole salvate nel file digitando: {{{ nft -f 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 }}} |
| Linea 207: | Linea 193: |
| * [[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]] * [[http://manpages.ubuntu.com/manpages/focal/man8/nft.8.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 209: | Linea 200: |
| 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
Installare il pacchetto nftables.
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
Salvare tutte le regole in uso su iptables in un file digitando:
iptables-save > save.txt
Importare le regole salvate nel file digitando:
iptables-restore-translate -f save.txt
Oppure importare le regole e al tempo stesso salvarle in un file leggibile da nftables digitando:
iptables-restore-translate -f save.txt > ruleset.nft
Caricare su nftables le regole salvate nel file digitando:
nft -f 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
