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 uno strumento di configurazione del firewall predefinito, che è Uncomplicated Firewall (UFW). Ma come si configura un firewall UFW? Siediti e rilassati, questo tutorial ti copre!
In questo tutorial imparerai come configurare UFW e configurare un firewall sul tuo sistema Linux per proteggere la tua rete e scongiurare atti dannosi.
Pronto? Continua a leggere per iniziare!
Prerequisiti
Questo tutorial sarà una dimostrazione pratica. Se desideri continuare, 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 viene fornito con il tuo sistema Ubuntu, UFW non è installato per impostazione predefinita. Installa prima UFW con il apt
gestore pacchetti e configuralo per consentire connessioni su IPv6.
1. Apri il tuo terminale ed esegui il apt update
comando seguente per aggiornare l'indice del pacchetto locale. Il comando accetta tutti i prompt (-y
) durante l'aggiornamento per un minore intervento da parte dell'utente.
sudo apt update -y

2. Quindi, esegui il comando seguente per installare UFW (install uwf
) sul tuo sistema accettando tutti i prompt (-y
) durante l'installazione.
sudo apt install ufw -y

2. Aprire 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 lasci comunque esposto ad attacchi IPv6.
4. Scorri verso il basso fino a IPV6 variabile e imposta il valore su yes , come mostrato di seguito, quindi salva le modifiche ed esci dall'editor

5. Infine, esegui il comando seguente per disabilitare e riattivare UFW. Il comando riavvia il servizio UFW in modo che le modifiche possano avere effetto.
Al termine del comando, il firewall può ora scrivere set di regole firewall sia IPv4 che IPv6.
sudo ufw disable && sudo ufw enable
Configurazione dei criteri predefiniti per le regole del firewall
Se hai appena iniziato con UFW, ti consigliamo di impostare una politica predefinita per le tue regole. I criteri predefiniti vengono applicati a una catena che non ha ancora regole specifiche definite.
Configura UFW per negare tutte le connessioni in entrata e consentire tutte le connessioni in uscita. Di conseguenza, chiunque tenti di raggiungere la tua macchina dal mondo esterno viene negato, mentre puoi comunque connetterti liberamente a qualsiasi sito Web o server.
Esegui ufw
comando sotto a deny
tutti incoming
connessioni tramite default
.
sudo ufw default deny incoming

Ora esegui il seguente comando su allow
tutti outgoing
connessioni tramite default
.
sudo ufw default allow outgoing

Consentire connessioni SSH sul firewall UFW
Hai appena impostato le politiche predefinite sul firewall UFW per negare tutto il traffico in entrata e la regola "consenti tutto nega tutto" è una buona impostazione per un utente normale. Ma cosa succede se stai utilizzando un server? Dovrai consentire l'ingresso e l'uscita di traffico specifico. Consentire la connessione SSH sul tuo firewall UFW farà il trucco per consentire traffico specifico in entrata e in uscita.
Configurare un server SSH che consente connessioni SSH in entrata sulla porta 22. Ma perché la porta 22 e non qualsiasi altra porta? Su sistemi simili a Unix, il demone SSH è in ascolto sulla porta 22 per impostazione predefinita, quindi è buona norma utilizzare la porta SSH predefinita per semplificarti la vita.
1. Esegui i comandi seguenti per installare il server OpenSSH (install openssh-server
) sul tuo sistema e avvia un server OpenSSH (start ssh
).
sudo apt install openssh-server -y
sudo systemctl start ssh
2. Ora esegui il comando seguente per consentire le connessioni SSH in entrata. Senza specificare la porta 22 sarà sufficiente poiché UFW sa quale porta è per SSH.
sudo ufw allow ssh

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

Ma forse preferisci specificare il numero di porta (22
) per consentire SSH. In tal caso, eseguire invece il comando seguente.
sudo ufw allow 22
3. Ora esegui il comando seguente per abilitare UFW.
sudo ufw enable
Digita Y nella richiesta di conferma, come mostrato di seguito, e premere Invio per continuare a eseguire il comando. UFW ora inizierà a filtrare i pacchetti sul tuo sistema.

4. Infine, esegui uno dei comandi seguenti per controllare lo stato del tuo firewall UFW.
## Displays more detailed information, such as the interface and
## the packet's current progress
sudo ufw status verbose
## Shows each rule with a number and the corresponding allow or deny status
## The numbered mode is useful when you are trying to delete a rule set here and there
sudo ufw status numbered
Se esegui il comando con verbose
opzione, vedrai un output simile a quello qui sotto:
- Stato:attivo – Indica che il firewall è attualmente in esecuzione.
- Accesso:attivo (basso) – Indica che UFW sta registrando tutti i pacchetti elaborati dal firewall.
- Predefinito:nega (in entrata), consenti (in uscita), disabilitato (instradato) – Indica che la politica predefinita prevede di negare tutte le connessioni in entrata e consentire tutte le connessioni in uscita.
- Nuovi profili:salta – Indica che il firewall sta attualmente utilizzando il set di regole predefinito.

Se esegui il comando con numbered
opzione invece, vedrai l'output di seguito. Puoi visualizzare un elenco di regole numerate e le corrispondenti CONSENTI o NEGATE stato.

Consenti connessioni HTTP e HTTPS
A questo punto, hai consentito solo le connessioni SSH sul tuo firewall UFW, ma ciò limita le capacità del tuo server. Consenti altri tipi di connessione, come HTTP o HTTPS, e aggiungi altre regole al firewall UFW.
Esegui uno dei seguenti comandi per consentire le connessioni HTTP in entrata.
## HTTP connection uses port 80 (not secure)
sudo ufw allow 80
sudo ufw allow http

Ora, esegui uno dei comandi seguenti per consentire le connessioni HTTPS in entrata.
sudo ufw allow https
## HTTP connection uses port 443 (secure)
sudo ufw allow 443

Consentire connessioni da un intervallo di porte e un indirizzo IP specifici
Alcune applicazioni utilizzano più porte per fornire i propri servizi. E forse hai una gamma di porte da aprire o devi consentire la connessione da un indirizzo IP specifico. In tal caso, aggiungi altre regole del firewall UFW.
Esegui i comandi seguenti per consentire le connessioni in entrata sulle porte da 5001 a 5009. Devi sempre specificare il protocollo (tcp
o udp
) dopo l'intervallo di porte a cui si applicano le regole perché 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

Esegui invece il comando seguente se preferisci consentire le connessioni SSH da un indirizzo IP specifico. Il comando consente connessioni SSH (port 22
) solo dal 192.168.1.2
Indirizzo IP.
sudo ufw allow from 192.168.1.2 to any port 22

Consentire il traffico da un'interfaccia di rete specifica
UFW consente inoltre di consentire il traffico solo su un'interfaccia di rete specifica, ad esempio eth0 è la prima interfaccia Ethernet e wlan0 è la prima interfaccia Wi-Fi.
Esegui uno dei comandi seguenti per consentire le connessioni HTTP solo su eth0
e wlan0
interfacce.
## Allow HTTP connection only on the eth0 interface
sudo ufw allow in on eth0 to any port 80
## Allow HTTP connection only on the wlan0 interface
sudo ufw allow in on wlan0 to any port 80

Eliminazione delle regole del firewall UFW
Forse alcune regole del firewall UFW non servono più a nessuno scopo. In tal caso, potresti voler rimuovere alcune delle regole da UFW. Ma prima devi conoscere il numero o il nome della regola da eliminare.
1. Eseguire il comando seguente 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 quello di seguito.

2. Quindi, esegui il comando seguente su delete
numero di regola 4
, che è il 5001:5010/tcp
intervallo di porte.
sudo ufw delete 4

3. Esegui il comando seguente su delete
una regola con il suo nome effettivo con il allow
stato. In questo esempio, elimineresti il http
regola eseguendo il comando seguente.
sudo ufw delete allow http

4. Ora esegui il seguente comando su delete
una regola specificando un numero di porta (443
) con il allow
stato.
sudo ufw delete allow 443

5. Infine, riesegui il comando seguente come hai fatto nel passaggio uno per elencare tutte le regole.
sudo ufw status numbered
Come mostrato di seguito, le regole per il 5001:5010/tcp
intervallo di porte, il http
e il 443
il porto ora è sparito.

Ripristino del firewall UFW
Potrebbero esserci momenti in cui è necessario ripristinare UFW ai valori predefiniti, ad esempio dopo aver configurato un ampio set di regole. Un aggiornamento potrebbe modificare la tua configurazione, richiedendoti di riconfigurare UFW ed eventualmente ricominciare da capo.
Esegui ufw reset
comando seguente per ripristinare tutte le regole del firewall alle impostazioni predefinite. Questo comando disabilita UFW ed elimina tutte le regole del firewall correnti.
sudo ufw reset
Digita "Y" e premi Invio per continuare a ripristinare il firewall UFW.

Al termine del ripristino, avrai una nuova installazione di UFW completamente disabilitata e anche le tue politiche predefinite saranno scomparse.
Ora esegui il comando seguente per riattivare UFW e inizia a configurare le regole del firewall da zero.
sudo ufw enable
Se decidi di non voler più utilizzare UFW, non è necessario riattivarlo. Oppure esegui il comando seguente per assicurarti che UFW sia disabilitato.
sudo ufw disable

Conclusione
Durante questo tutorial, ti sei reso conto che la configurazione di un firewall non è troppo scoraggiante quando si utilizza UFW. Ora dovresti avere una buona comprensione di come impostare e implementare le tue regole con UFW su Ubuntu.
Ora, perché non sfruttare questa nuova conoscenza imparando di più su UFW e Docker Security su una macchina Linux?