Risponderemo a tutte le tue domande!

Come utilizzare il firewall di Ubuntu

Illustrazione principale su come utilizzare il firewall di Ubuntu

Cos'è UFW

La maggior parte degli amministratori di sistema non ama configurare applicazioni di sicurezza di rete, come i firewall, in remoto. Queste applicazioni bloccano di default l'accesso dall'esterno per tutte le applicazioni, ad eccezione di quelle chiaramente indicate come consentite.

Se si verifica un errore, potresti perdere il controllo remoto sulla rete. Abbiamo creato questa guida specificamente affinché tu possa di nuovo vedere la procedura corretta per configurare un firewall UFW standard sul sistema operativo Linux Ubuntu.

Se approfondisci, UFW non è realmente un firewall. È solo un'utilità comoda con cui è possibile configurare il netfilter incorporato nel kernel Linux dalla versione 2.4. Non c'è modo di configurare direttamente netfilter, quindi per questo scopo è stata scritta l'utilità iptables.

Beh, UFW ha reso possibile semplificare ulteriormente questo processo, rendendo possibile gestire rapidamente le regole senza la necessità di scrivere file di configurazione o leggere attentamente il manuale di iptables. Questo è ciò che è effettivamente codificato nell'acronimo UFW: Uncomplicated Firewall.

Perché UFW è disabilitato di default

Una Volta™ installato il sistema operativo Ubuntu su un server, di default non ha una singola porta aperta che dovrebbe essere protetta da un firewall. Quindi, anche se UFW è installato, rimane in uno stato inattivo fino a quando l'utente non ha bisogno di configurare la protezione. La cosa da ricordare è che prima di abilitare il firewall, devi assicurarti che facendo così non ti priverai del modo di configurare il server.

Ad esempio, se gestisci il server utilizzando una connessione SSH, allora prima di attivare il firewall, devi indicare esplicitamente che il demone OpenSSH ha il permesso di utilizzare la porta 22 (o un'altra, se configurata) e dovrebbe accettare le connessioni dall'esterno, e non scartarle, come è implementato per tutte le connessioni esterne di default. Per fare ciò, devi utilizzare un profilo di applicazione OpenSSH pronto all'uso o creare una regola personalizzata.

Stato UFW

Prima di tutto, assicuriamoci che UFW sia nel sistema operativo. Per fare ciò, esegui il comando:

sudo ufw status verbose

Se ricevi la seguente risposta, significa che UFW è installato sul sistema operativo, ma come menzionato sopra, è in uno stato inattivo:

Stato: inattivo

Altrimenti, aggiorna la cache del pacchetto e installa UFW utilizzando il packer manager standard:

sudo apt update && sudo apt -y install ufw

Abilita il firewall

Attenzione! Prima di eseguire il seguente comando, assicurati di avere la possibilità di controllare il server abilitando un profilo di applicazione (OpenSSH per esempio) o attivando una regola personalizzata.

sudo ufw enable

Verifichiamo lo stato di UFW chiamando di nuovo il seguente comando:

sudo ufw status verbose

Disabilita il firewall

Il firewall può essere spento con il comando "disabilita". Si noti che questa azione non influisce in alcun modo sulle regole precedentemente create. Continueranno tutte a funzionare non appena il firewall verrà riattivato:

sudo ufw disable

Abilita la registrazione

La seconda funzione più importante del firewall è la registrazione. Con il suo aiuto, è possibile sia verificare che UFW funzioni correttamente sia identificare i segni di cyberattacchi. Per attivare la funzione di registrazione, esegui il seguente comando:

sudo ufw logging on
Registrazione abilitata
tail -f /var/log/ufw.log
…
10 lug 05:54:24 ubuntu22044 kernel: [56235.006445] [UFW BLOCK] IN=enp134s0f1 OUT= M
AC=ac:1f:6b:f5:60:43:02:01:01:01:01:02:08:00 SRC=152.32.129.154 DST=37.230.134.118
LEN=60 TOS=0x00 PREC=0x00 TTL=41 ID=5377 DF PROTO=TCP
SPT=47633 DPT=6606 WINDOW=29200 RES=0x00 SYN URGP=0
…

Inoltre, puoi controllare syslog e kern.log:

grep -i ufw /var/log/syslog
grep -i ufw /var/log/kern.log

In entrambi i casi il risultato sarà lo stesso. Per aumentare la quantità di informazioni registrate nel log, cambia il suo livello. Livelli disponibili: basso (per impostazione predefinita) / medio / alto / completo:

sudo ufw logging full

Disabilita la registrazione

Per disabilitare la registrazione, è previsto il livello off:

sudo ufw logging off

Gestione delle regole

Accesso da specifici IP

Nella creazione delle regole, due scenari sono i più comuni. Nel primo, l'amministratore di sistema richiede che solo gli utenti che hanno un indirizzo IP specifico o un indirizzo IP da un determinato range possano collegarsi al server. I tentativi di connessione da qualsiasi altro indirizzo dovrebbero essere bloccati. Questo è più applicabile per servizi non pubblici o aziendali:

sudo ufw allow from [indirizzo_ip]
sudo ufw allow from [indirizzo_ip/maschera_sottorete]

Blocca specifici IP

Il secondo scenario sarà rilevante per i servizi pubblici i cui server sono costretti ad accettare e processare tutte le connessioni in entrata. Ciò li rende vulnerabili agli attacchi di forza bruta e agli attacchi di denial of service (DoS). In questo caso, saranno utili le regole che proibiscono di connettersi da un determinato indirizzo IP o da un indirizzo IP da un certo range:

sudo ufw deny from [indirizzo_ip]
sudo ufw deny from [indirizzo_ip/maschera_sottorete]

Se il tuo server non viene utilizzato per l'invio di email, sarebbe logico bloccare qualsiasi traffico SMTP in uscita per prevenire potenziali spam. Puoi farlo con il seguente comando:

sudo ufw deny out 25

Elimina le regole esistenti

Il modo più conveniente per eliminare le regole è per loro numero seriale. Per scoprire quale numero corrisponde a quale regola del firewall, esegui questo comando:

sudo ufw status numbered
Status: attivo                                                                                                                                                                                                                            
  A                         Azione      Da                                                                                                                                                                                          
  --                         ------      ---                                                                                                                                                                                          
[ 1] OpenSSH                    PERMETTI IN    Ovunque                                                                                                                                                                                      
[ 2] OpenSSH (v6)               PERMETTI IN    Ovunque (v6)

adesso puoi eliminare una regola sostituendo il suo numero nel comando:

sudo ufw delete [numero_regola]

Profili di applicazione

I profili di applicazione sono set di regole pronte all'uso che semplificano la vita di un amministratore di sistema. Prendono immediatamente in considerazione le porte di connessione standard e consentono di applicare diverse regole con un solo comando.

Elenco dei profili disponibili

Per controllare quali profili sono disponibili per l'attivazione, esegui il comando:

sudo ufw app list
Applicazioni disponibili:                                                                                                                                                                                                                   
  OpenSSH

Abilita il profilo di applicazione

Per impostazione predefinita, Ubuntu avrà sempre disponibile un profilo OpenSSH, che permette al traffico SSH di passare attraverso la porta standard 22. Per assicurarti che dopo aver abilitato UFW non perdi il controllo tramite SSH, esegui il seguente comando:

sudo ufw allow OpenSSH

Ora puoi abilitare UFW e verificare che la regola abilitata per OpenSSH funzioni:

sudo ufw status verbose
Stato: attivo                                                                                                                                                                                                                            
Registro: on (low)                                                                                                                                                                                                                         
Default: deny (in entrata), allow (in uscita), disabled (instradato)                                                                                                                                                                             
Nuovi profili: skip                                                                                                                                                                                                                        
A                         Azione      Da                                                                                                                                                                                               
--                         ------      ----                                                                                                                                                                                               
22/tcp (OpenSSH)           PERMETTI IN    Ovunque                                                                                                                                                                                           
22/tcp (OpenSSH (v6))      PERMETTI IN    Ovunque (v6)

Disabilita il profilo di applicazione

Puoi eliminare una regola attivata utilizzando il comando “delete”. Presta molta attenzione a questo comando e non disabilitare il profilo OpenSSH, perché se il firewall è abilitato e non c'è una regola che consente OpenSSH, perderai l'accesso remoto al server:

sudo ufw delete allow [nome_profilo_app]

Blocco IP

Non è un segreto che Internet sia piena di dispositivi programmati per eseguire automaticamente la scansione e tentare di ottenere accesso non autorizzato. Sarebbe saggio bloccare tutti gli indirizzi visti impegnati in tale attività. Il progetto IPsum mantiene un registro degli indirizzi IP dannosi basato su dati da 30 servizi pubblici disponibili che pubblicano regolarmente elenchi di tali indirizzi. Questo registro sarà un'eccellente fonte di dati per UFW.

Inizia installando il pacchetto ipset:

sudo apt -y install ipset

Ora devi fare una copia di backup del file di configurazione after.init esistente:

sudo cp /etc/ufw/after.init /etc/ufw/after.init.orig

Clona il repository con i file di configurazione pre-preparati:

git clone https://github.com/poddmo/ufw-blocklist.git

Cambia la directory di lavoro:

cd ufw-blocklist

Copia e sostituisci il file di configurazione:

sudo cp after.init /etc/ufw/after.init

Copia il file del lavoro cron:

sudo cp ufw-blocklist-ipsum /etc/cron.daily/ufw-blocklist-ipsum

Cambia il proprietario di questi due file all'utente root:

sudo chown root:root /etc/ufw/after.init /etc/cron.daily/ufw-blocklist-ipsum

Imposta anche i permessi a 750 (rwxr-x—) per entrambi i file:

sudo chmod 750 /etc/ufw/after.init /etc/cron.daily/ufw-blocklist-ipsum

Scarica una blocklist di base:

curl -sS -f --compressed -o ipsum.4.txt 'https://raw.githubusercontent.com/stamparm/ipsum/master/levels/4.txt'

Imposta i permessi a 640 (rw-r-----) per la blocklist base. Sarà memorizzata direttamente nella directory /etc, quindi cambiare i permessi è una precauzione ragionevole contro le manomissioni di questo elenco:

sudo chmod 640 ipsum.4.txt

È tempo di mettere l'elenco nella directory /etc:

sudo cp ipsum.4.txt /etc/ipsum.4.txt

Avviamo lo script iniziale:

sudo /etc/ufw/after.init start

Il seguente comando aiuterà a visualizzare il numero corrente di voci nella lista di blocco:

sudo ipset list ufw-blocklist-ipsum -terse | grep 'Number of entries'

Infine, assicurati che la lista sia accettata e che UFW stia funzionando correttamente:

sudo /etc/ufw/after.init status
Nome: ufw-blocklist-ipsum                                                                                       
Tipo: hash:net                                                                                                  
Revisione: 7                                                                                                     
Intestazione: family inet hashsize 2048 maxelem 65536 bucketsize 12 initval 0x5822a4bb                                
Dimensione in memoria: 186912                                                                                          
Riferimenti: 3                                                                                                   
Numero di voci: 6744                                                                                         
      0        0 ufw-blocklist-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0            match-
set ufw-blocklist-ipsum src                                                                                       
      0        0 ufw-blocklist-forward  all  --  *      *       0.0.0.0/0            0.0.0.0/0            match-
set ufw-blocklist-ipsum dst                                                                                     
      0        0 ufw-blocklist-output  all  --  *      *       0.0.0.0/0            0.0.0.0/0            match-
set ufw-blocklist-ipsum dst

Vedi anche:



Aggiornato: 28.03.2025

Pubblicato: 12.07.2024


Hai altre domande? Scrivici!

By clicking «I Accept» you confirm that you have read and accepted the website Terms and Conditions, Privacy Policy, and Moneyback Policy.