Come Configurare il Firewall UFW su Linux

Senza un firewall, non ci sono regole o restrizioni sul traffico di rete e ciò porta a una serie di conseguenze negative. Il sistema Linux viene fornito con un tool di configurazione del firewall predefinito, che è Uncomplicated Firewall (UFW). Ma come si configura un firewall UFW? Rilassati e lascia fare a questo tutorial!

In questo tutorial imparerai come configurare UFW e impostare un firewall sul tuo sistema Linux per proteggere la tua rete e respingere attacchi maligni.

Pronto? Continua a leggere per iniziare!

Prerequisiti

Questo tutorial sarà una dimostrazione pratica. Se vuoi seguirci, assicurati di avere quanto segue:

  • Una macchina Ubuntu – Questo tutorial utilizza Ubuntu 20.04 LTS, ma altre distribuzioni Linux funzioneranno.
  • Privilegi di root sulla tua macchina.

Installazione di UFW e abilitazione della connessione IPv6

Anche se UFW è incluso nel sistema Ubuntu, non è installato per impostazione predefinita. Installa prima UFW con il gestore di pacchetti apt e configuralo per consentire le connessioni su IPv6.

1. Apri il tuo terminale e esegui il comando apt update qui sotto per aggiornare l’indice dei pacchetti locali. Il comando accetta tutte le richieste (-y) durante l’aggiornamento per una minore intervento dell’utente.

sudo apt update -y
Updating the System Package

2. Successivamente, esegui il comando qui sotto per installare UFW (installa uwf) sul tuo sistema accettando tutte le richieste (-y) durante l’installazione.

sudo apt install ufw -y
Installing UFW on Ubuntu

3. Apri il file di configurazione UFW (/etc/default/ufw) con il tuo editor di testo preferito. UFW supporta IPv6, ma è necessario assicurarsi che il firewall sia configurato per accettare connessioni su IPv6.

Se hai solo IPv4 abilitato, ti stai comunque esponendo agli attacchi IPv6.

4. Scorri fino alla variabile IPV6 e impostane il valore su , come mostrato di seguito, quindi salva le modifiche ed esci dall’editor

Enabling IPV6 in the UFW Configuration File

5. Infine, esegui il comando qui sotto per disabilitare e riabilitare UFW. Il comando riavvia il servizio UFW in modo che le modifiche possano avere effetto.

Dopo che il comando è completato, il tuo firewall può ora scrivere sia le regole del firewall IPv4 che IPv6.

sudo ufw disable && sudo ufw enable

Configurazione delle politiche predefinite per le regole del firewall

Se stai iniziando con UFW, è consigliabile impostare una politica predefinita per le tue regole. Le politiche predefinite vengono applicate a una catena che non ha ancora regole specifiche definite.

Configura UFW per negare tutte le connessioni in ingresso e consentire tutte le connessioni in uscita. Di conseguenza, chiunque cerchi di raggiungere la tua macchina dal mondo esterno viene negato, mentre tu puoi ancora connetterti liberamente a qualsiasi sito web o server.

Esegui il comando ufw qui sotto per negare tutte le connessioni in ingresso per impostazione predefinita.

sudo ufw default deny incoming
Denying Incoming Network Traffics

Ora esegui il seguente comando per consentire tutte le connessioni in uscita per impostazione predefinita.

sudo ufw default allow outgoing
Allowing Outgoing Network Traffics

Consentire le connessioni SSH sul firewall UFW

Hai appena impostato le politiche predefinite sul tuo firewall UFW per negare tutto il traffico in ingresso e la regola “consenti tutto – nega tutto” è una buona impostazione per un utente regolare. Ma cosa succede se stai eseguendo un server? Dovrai consentire il traffico specifico dentro e fuori. Consentire la connessione SSH sul tuo firewall UFW risolverà il problema per consentire il traffico specifico dentro e fuori.

Configurerai un server SSH che consente connessioni SSH in ingresso sulla porta 22. Ma perché la porta 22 e non un’altra porta? Nei sistemi simili a Unix, il demone SSH è in ascolto sulla porta 22 per impostazione predefinita, quindi è una buona pratica utilizzare la porta SSH predefinita per semplificarti la vita.

1. Esegui i comandi seguenti per installare il server OpenSSH (installa openssh-server) sul tuo sistema e avvia un server OpenSSH (avvia ssh).

sudo apt install openssh-server -y
sudo systemctl start ssh

2. Ora esegui il comando qui sotto per consentire le connessioni SSH in ingresso. Senza specificare la porta 22 sarà sufficiente in quanto UFW sa quale porta è per SSH.

sudo ufw allow ssh
Allowing SSH connection

Il file /etc/services contiene un elenco di tutti i servizi disponibili nel tuo sistema. Apri il file sul tuo editor di testo, scorri fino a ssh e verifica che il numero di porta (22) faccia parte della descrizione del servizio, come mostrato di seguito.

Previewing the /etc/services file

Ma forse preferisci specificare il numero di porta (22) per consentire l’accesso SSH. In tal caso, esegui invece il seguente comando.

sudo ufw allow 22

3. Ora esegui il seguente comando per abilitare UFW.

sudo ufw enable

Digita Y nella finestra di conferma, come mostrato di seguito, e premi Invio per continuare l’esecuzione del comando. UFW inizierà ora a filtrare i pacchetti nel tuo sistema.

Enabling UFW

4. Infine, esegui uno dei seguenti comandi per verificare lo stato del tuo firewall UFW.

## Mostra informazioni più dettagliate, come l'interfaccia e 
## l'attuale progresso del pacchetto
sudo ufw status verbose
## Mostra ogni regola con un numero e lo stato di consenti o nega 
## La modalità numerata è utile quando si tenta di eliminare un set di regole qua e là
sudo ufw status numbered

Se esegui il comando con l’opzione verbose, vedrai un output simile al seguente:

  • Status: attivo – Indica che il firewall è attualmente in esecuzione.
  • Logging: on (basso) – Indica che UFW sta registrando tutti i pacchetti elaborati dal firewall.
  • Predefinito: nega (in entrata), consente (in uscita), disabilitato (instradato) – Indica che la politica predefinita è di negare tutte le connessioni in entrata e consentire tutte le connessioni in uscita.
  • Profili nuovi: salta – Indica che il firewall sta attualmente utilizzando l’insieme predefinito di regole.
Checking verbose UFW firewall status

Se esegui il comando con l’opzione numerato invece, vedrai l’output qui sotto. Puoi vedere un elenco di regole numerate e il loro corrispondente stato CONSENTI o NEGA.

Viewing the UW Firewall status in a numbered list

Consentire connessioni HTTP e HTTPS

A questo punto, hai consentito solo connessioni SSH sul tuo firewall UFW, ma questo limita le capacità del tuo server. Consenti altri tipi di connessioni, come HTTP o HTTPS, e aggiungi più regole al firewall UFW.

Esegui uno qualsiasi dei seguenti comandi per consentire connessioni HTTP in entrata.

## La connessione HTTP utilizza la porta 80 (non sicura)
sudo ufw allow 80
sudo ufw allow http
Allowing HTTP connections

Ora, esegui uno qualsiasi dei seguenti comandi per consentire connessioni HTTPS in entrata.

sudo ufw allow https
## La connessione HTTPS utilizza la porta 443 (sicura)
sudo ufw allow 443
Allowing incoming HTTPS connections.

Consentire connessioni da un determinato intervallo di porte e indirizzo IP

Alcune applicazioni utilizzano più porte per fornire i loro servizi. E forse hai un intervallo di porte da aprire o devi consentire la connessione da un determinato indirizzo IP. In tal caso, aggiungi più regole al firewall UFW.

Esegui i comandi seguenti per consentire le connessioni in ingresso alle porte da 5001 a 5009. Dovresti sempre specificare il protocollo (tcp o udp) dopo l’intervallo di porte a cui si applicano le regole, poiché non tutte le porte sono utilizzate da entrambi i protocolli.

Ad esempio, le porte TCP comunemente utilizzate includono 80 (HTTP) e 443 (HTTPS). Ma le porte UDP comuni includono 53 (DNS) e 67/68 (DHCP).

sudo ufw allow 5001:5010/tcp
sudo ufw allow 5001:5010/udp
Allowing traffic on 5001:5010 port range

Esegui il comando sottostante se preferisci consentire le connessioni SSH da un indirizzo IP specifico. Il comando consente connessioni SSH (porta 22) solo dall’indirizzo IP 192.168.1.2.

sudo ufw allow from 192.168.1.2 to any port 22
Allowing SSH Connections from Specific IP Address

Consentire il Traffico da una Specifica Interfaccia di Rete

UFW ti consente anche di consentire il traffico solo su una specifica interfaccia di rete, come ad esempio eth0 è la prima interfaccia Ethernet e wlan0 è la prima interfaccia Wi-Fi.

Esegui uno dei comandi seguenti per consentire solo connessioni HTTP sulle interfacce eth0 e wlan0.

## Consentire solo connessioni HTTP sull'interfaccia eth0
sudo ufw allow in on eth0 to any port 80
## Consentire solo connessioni HTTP sull'interfaccia wlan0
sudo ufw allow in on wlan0 to any port 80
Allowing traffic on a specific interface

Eliminazione delle Regole del Firewall UFW

Forse alcune regole del firewall UFW non servono più. In tal caso, potresti voler rimuovere alcune regole da UFW. Ma prima, devi conoscere il numero o il nome della regola da eliminare.

1. Esegui il comando sottostante per ottenere un elenco numerato delle regole aggiunte a UFW.

sudo ufw status numbered

Nota il numero o il nome della regola nell’output, come nell’esempio qui sotto.

Previewing all the rules

2. Successivamente, esegui il comando sottostante per eliminare la regola numero 4, che è l’intervallo di porte 5001:5010/tcp.

sudo ufw delete 4
Deleting a Rule by Rule Number

3. Esegui il comando sottostante per eliminare una regola dal suo nome effettivo con lo stato allow. In questo esempio, elimineresti la regola http eseguendo il seguente comando.

sudo ufw delete allow http
Deleting a Rule by Rule Name (http)

4. Ora esegui il seguente comando per eliminare una regola specificando un numero di porta (443) con lo stato allow.

sudo ufw delete allow 443
Deleting a Rule by Port Number (443)

5. Infine, esegui nuovamente il seguente comando come hai fatto al passo uno per elencare tutte le regole.

sudo ufw status numbered

Come mostrato di seguito, le regole per l’intervallo di porte 5001:5010/tcp, la http e la porta 443 sono ora sparite.

Checking the firewall rules

Ripristino del firewall UFW

A volte potrebbe essere necessario ripristinare UFW alle impostazioni predefinite, ad esempio dopo la configurazione di un gran numero di regole. Un aggiornamento potrebbe cambiare la configurazione, richiedendoti di riconfigurare UFW e forse ricominciare da zero.

Esegui il comando ufw reset qui sotto per ripristinare tutte le regole del tuo firewall alle impostazioni predefinite. Questo comando disabilita UFW e elimina tutte le tue attuali regole del firewall.

sudo ufw reset

Digita ‘Y’ e premi Invio per continuare a reimpostare il firewall UFW.

Resetting UFW

Dopo che il reset è completo, avrai una nuova installazione di UFW completamente disabilitata, e anche le tue politiche predefinite sono andate.

Ora esegui il comando seguente per riabilitare UFW e inizia a configurare le regole del tuo firewall da zero.

sudo ufw enable

Se decidi di non voler più utilizzare UFW, allora non c’è bisogno di riabilitarlo. Oppure esegui il comando seguente per assicurarti che UFW sia disabilitato.

sudo ufw disable
Disabling UFW firewall

Conclusione

Durante questo tutorial, hai capito che configurare un firewall non è troppo difficile quando si utilizza UFW. Dovresti ora avere una buona comprensione di come impostare e implementare le tue regole con UFW su Ubuntu.

Ora, perché non approfittare di questa nuova conoscenza imparando di più sulla Sicurezza di UFW e Docker su una macchina Linux?

Source:
https://adamtheautomator.com/ufw-firewall/