Una delle chiavi di volta di qualsiasi sistema operativo è un firewall correttamente configurato per la sicurezza completa del sistema. UFW (Uncomplicated Firewall) è installato di default sui sistemi operativi Ubuntu; tuttavia, non è abilitato. Uno dei grandi vantaggi di UFW è la sua semplicità, la riga di comando intuitiva e facile da usare, che lo rende ideale per i principianti in Linux e per gli utenti esperti più avanzati.
Nel seguente tutorial imparerai a installare e configurare UFW Firewall su Ubuntu 20.04 LTS Focal Fossa Desktop o Server usando il terminale di comando.
Prerequisiti
- Sistema operativo consigliato: Ubuntu 20.04
- Account utente: Un account utente con sudo o accesso root.
Aggiorna sistema operativo
Aggiorna il tuo Ubuntu sistema operativo per assicurarsi che tutti i pacchetti esistenti siano aggiornati:
sudo apt update && sudo apt upgrade -y
Il tutorial utilizzerà il comando sudo e supponendo che tu abbia lo stato sudo .
Per verificare lo stato di sudo sul tuo account:
sudo whoami
Esempio di output che mostra lo stato di sudo:
[joshua@ubuntu ~]$ sudo whoami
root
Per configurare un account sudo esistente o nuovo, visita il nostro tutorial su Come aggiungere un utente a Sudoer su Ubuntu .
Per utilizzare l'account root , usa il comando seguente con la password di root per accedere.
su
Come abilitare, installare o rimuovere UFW
Il primo passo per configurare un firewall UFW sarà abilitare il firewall.
sudo ufw enable
Esempio di output:
Firewall is active and enabled on system startup
Per impostazione predefinita, tutto il traffico in entrata viene bloccato automaticamente e tutto il traffico in uscita è consentito una volta che il firewall è attivo. Questo proteggerà istantaneamente il tuo sistema impedendo a chiunque di connettersi in remoto al tuo sistema.
Se UFW è stato rimosso in precedenza e desideri reinstallare il firewall utilizzando il comando seguente.
sudo apt install ufw -y
Successivamente, verifica lo stato di UFW per assicurarti che sia attivo e senza errori.
sudo systemctl status ufw
Esempio di output:

In futuro, se hai bisogno di disabilitare UFW per un periodo di tempo temporaneo, usa il comando seguente.
sudo ufw disable
Per rimuovere del tutto UFW dal tuo sistema Ubuntu.
sudo apt autoremove ufw --purge
Non rimuovere UFW a meno che tu non abbia una solida opzione o sappia come usare IPTables, specialmente quando esegui un ambiente server connesso al pubblico. Sarà disastroso.
Come controllare lo stato UFW
Una volta abilitato UFW, visualizza lo stato delle regole del firewall e ciò che è attivo utilizza quanto segue.
sudo ufw status verbose
Esempio di output:

L'esempio precedente utilizzava il flag dettagliato e un'opzione alternativa consiste nell'elencare le regole in sequenza numerica, che è molto più gestibile in seguito quando si eliminano le regole.
sudo ufw status numbered
Esempio di output:

Ora hai [ 1], [ 2] etichette numeriche sulle tue regole UFW per l'identificazione come l'output sopra.
Come impostare le politiche predefinite UFW
La politica predefinita del firewall UFW consiste nel negare tutte le connessioni in entrata e consentire solo le connessioni in uscita al sistema. In genere il modo predefinito più sicuro senza che nessuno possa raggiungere il tuo server a meno che tu non consenta indirizzi IP/intervalli, programmi, porte o combinazioni di tutti. Il tuo sistema, per impostazione predefinita, può accedere all'esterno, cosa che non dovresti modificare a meno che tu non abbia requisiti di sicurezza specifici.
Per riferimento, le politiche firewall UFW predefinite sono disponibili nella posizione /etc/default/ufw .
Per regolare le regole digitando il seguente comando:
Per negare tutte le connessioni in entrata:
sudo ufw default deny incoming
Per consentire tutte le connessioni in uscita:
sudo ufw default allow outgoing
Questa è già impostata come regole predefinite quando è abilitata, ma puoi utilizzare lo stesso principio per cambiarle in base al tuo scopo.
Ad esempio, tutte le comunicazioni in entrata sono bloccate per impostazione predefinita, ma desideri che tutte le comunicazioni in uscita siano bloccate e consenti solo le connessioni approvate in uscita, quindi utilizza il comando seguente.
Per bloccare tutte le connessioni in uscita:
sudo ufw default deny outgoing
Questa è una misura estrema; il blocco delle connessioni in entrata è in genere sufficiente per il server e il desktop medio, ma ambienti specifici possono trarre vantaggio dall'ulteriore precauzione di sicurezza. Lo svantaggio è che devi mantenere tutte le connessioni in uscita, il che può richiedere molto tempo e impostare continuamente nuove regole.
Come visualizzare i profili delle applicazioni UFW
Per mostrare tutti i profili dell'applicazione, puoi farlo digitando quanto segue.
sudo ufw app list
Esempio di output:

Quanto sopra è solo un esempio e ognuno avrà elenchi diversi poiché nessuno avrà le stesse applicazioni installate.
Una caratteristica utile dei profili delle applicazioni è scoprire di più sul servizio elencato nell'elenco delle applicazioni UFW.
Per fare ciò, digita il seguente comando per trovare maggiori informazioni su un profilo esistente.
sudo ufw app info CUPS
Esempio di output:

Come sopra, la stampa della descrizione generale dell'applicazione e la porta che utilizza. Questa è una funzione utile quando si esaminano le porte aperte e non si è sicuri a quali applicazioni si riferiscono e cosa fa l'applicazione.
Come abilitare IPv6 su UFW
Se il tuo sistema Ubuntu è configurato con IPv6, devi assicurarti che UFW sia configurato con supporto IPv6 e IPv4. Per impostazione predefinita, questo dovrebbe essere abilitato automaticamente; tuttavia, dovresti controllarlo e, se necessario, modificarlo. Puoi farlo nel modo seguente.
Apri il file firewall UFW predefinito.
sudo nano /etc/default/ufw
Regola la riga seguente su sì se non è impostata.
IPV6=yes
CTRL+O per salvare le nuove modifiche al file, quindi premi CTRL+X per uscire dal file.
Ora riavvia il servizio firewall UFW per rendere attive le modifiche.
sudo systemctl restart ufw
Come consentire le connessioni SSH UFW
Per impostazione predefinita, UFW non consente connessioni SSH. Se avessi già abilitato il firewall da remoto, ti saresti notato bloccato.
Per risolvere questo problema, devi impostare la seguente configurazione SSH prima di abilitare il firewall UFW, specialmente se connesso a un server remoto.
Innanzitutto, abilita il profilo dell'applicazione SSH.
sudo ufw allow ssh
Se hai impostato una porta di ascolto personalizzata per le connessioni SSH diversa dalla porta predefinita 22, ad esempio la porta 3541, aprirai la porta sul firewall UFW digitando quanto segue.
sudo ufw allow 3541/tcp
Se vuoi bloccare tutte le connessioni SSH o cambiare la porta e bloccare quelle vecchie.
Per bloccare tutte le connessioni SSH (assicurati che l'accesso locale sia possibile) , usa il comando seguente.
sudo ufw deny ssh/tcp
Se si modifica la porta SSH personalizzata, aprire una nuova porta e chiudere quella esistente; esempio di tutorial è la porta 3541.
sudo ufw deny 3541/tcp
Come abilitare le porte UFW
Con UFW, puoi aprire porte specifiche nel firewall per consentire le connessioni specificate per una particolare applicazione. È possibile impostare regole personalizzate per l'applicazione. Un ottimo esempio di questa regola è la configurazione di un server Web in ascolto sulla porta 80 (HTTP) e 443 (HTTPS) per impostazione predefinita.
Consenti porta HTTP 80
Consenti per profilo dell'applicazione:
sudo ufw allow 'Nginx HTTP'
Consenti in base al nome del servizio:
sudo ufw allow http
Consenti per numero di porta:
sudo ufw allow 80/tcp
Consenti porta HTTPS 443
Consenti per profilo dell'applicazione:
sudo ufw allow 'Nginx HTTPS'
Consenti in base al nome del servizio:
sudo ufw allow https
Consenti per numero di porta:
sudo ufw allow 443/tcp
Nota, puoi abilitare tutte le regole insieme per impostazione predefinita usando il comando seguente.
sudo ufw allow 'Nginx Full'
Intervalli di porte consentiti UFW
UFW può consentire l'accesso agli intervalli di porte. Nota, quando si apre un intervallo di porte, è necessario identificare il protocollo della porta.
Consenti intervallo di porte con TCP e UDP:
sudo ufw allow 6500:6800/tcp
sudo ufw allow 6500:6800/udp
In alternativa, puoi consentire più porte in un colpo solo, ma consentire l'intervallo potrebbe essere più accessibile come sopra.
sudo ufw allow 6500, 6501, 6505, 6509/tcp
sudo ufw allow 6500, 6501, 6505, 6509/udp
Come consentire connessioni remote su UFW
UFW Consenti indirizzo IP specifico
Ad esempio, per consentire indirizzi IP specifici, sei su una rete interna e richiedi che i sistemi comunichino tra loro, utilizza il comando seguente.
sudo ufw allow from 192.168.55.131
UFW Consenti indirizzo IP specifico su una porta specifica
Per consentire a un IP di connettersi al tuo sistema su una porta definita (porta di esempio "3900") , digita quanto segue.
sudo ufw allow from 192.168.55.131 to any port 3900
Consenti connessioni di sottorete a una porta specifica
Se hai bisogno di un'intera gamma di connessioni da una sottorete di un intervallo IP a una porta particolare, puoi abilitarla creando la seguente regola.
sudo ufw allow from 192.168.1.0/24 to any port 3900
Ciò consentirà a tutti gli indirizzi IP da 192.168.1.1 a 192.168.1.254 di connettersi alla porta 3900.
Consenti un'interfaccia di rete specifica
Ad esempio, consenti le connessioni a una particolare interfaccia di rete, "eth2" a una porta 3900 specificata. Puoi ottenere ciò creando la regola seguente.
sudo ufw allow in on eth2 to any port 3900
Come negare le connessioni remote su UFW
Secondo la politica di configurazione predefinita di UFW, una volta installata, tutte le connessioni in entrata sono impostate su "nega". Questo rifiuta tutto il traffico in entrata a meno che tu non crei una regola per consentire il passaggio delle connessioni.
Tuttavia, hai notato nei tuoi log un particolare indirizzo IP che continua ad attaccarti. Bloccalo con quanto segue.
sudo ufw deny from 203.13.56.121
Un hacker sta utilizzando più indirizzi IP dalla stessa sottorete per tentare di hackerarti. Crea quanto segue per bloccare.
sudo ufw deny from 203.13.56.121/24
È possibile creare regole specifiche se si desidera negare l'accesso a determinate porte. Digita il seguente esempio.
sudo ufw deny from 203.13.56.121/24 to any port 80
sudo ufw deny from 203.13.56.121/24 to any port 443
Come eliminare le regole UFW
Hai creato e negato le regole, ma devi eliminarle perché non ti servono più. Questo può essere ottenuto in due modi diversi.
Innanzitutto, per eliminare una regola UFW utilizzando il numero di regola, devi elencare i numeri di regola digitando quanto segue.
sudo ufw status numbered
Esempio di output:

L'esempio eliminerà la quarta regola per l'indirizzo IP 1.1.1.1 evidenziata sopra.
Digita quanto segue nel tuo terminale.
sudo ufw delete 1
In secondo luogo, puoi eliminare una regola UFW utilizzando la regola stessa.
sudo ufw delete allow 80/tcp
Quando le regole vengono eliminate e vengono eseguite correttamente, otterrai il seguente output.
Rule deleted
Rule deleted (v6)
Come accedere e visualizzare i registri UFW
Per impostazione predefinita, la registrazione UFW è impostata su bassa. Questo va bene per la maggior parte dei sistemi desktop. Tuttavia, i server potrebbero richiedere un livello di registrazione più elevato.
Per impostare la registrazione UFW su bassa (impostazione predefinita):
sudo ufw logging low
Per impostare la registrazione UFW su media:
sudo ufw logging medium
Per impostare la registrazione UFW su alto:
sudo ufw logging high
L'ultima opzione è disabilitare del tutto la registrazione, assicurati di essere soddisfatto e non richiederà il controllo del registro.
sudo ufw logging off
Per visualizzare i registri UFW, vengono mantenuti nella posizione predefinita di /var/log/ufw.log .
Un modo semplice e veloce per visualizzare i log in tempo reale consiste nell'usare il comando tail.
sudo ufw tail -f /var/log/ufw.log
In alternativa, puoi stampare una determinata quantità di righe recenti con -n
sudo ufw tail /var/log/ufw.log -n 30
Questo stamperà le ultime 30 righe del registro. Puoi perfezionare ulteriormente con GREP e altri comandi di ordinamento.
Come testare le regole UFW
I sistemi altamente critici, una buona opzione quando si gioca con le impostazioni del firewall, possono aggiungere il indicatore di funzionamento a secco . Ciò consente di vedere un esempio delle modifiche che sarebbero avvenute ma non di elaborarlo.
sudo ufw --dry-run enable
Per disattivare il indicatore di funzionamento a secco , usa il comando seguente.
sudo ufw --dry-run disable
Come reimpostare le regole UFW
Per ripristinare il firewall allo stato originale con tutti i blocchi in entrata e in uscita impostati per consentire, digita quanto segue per ripristinare.
sudo ufw reset
Conferma il ripristino, inserisci quanto segue:
sudo ufw status
L'output dovrebbe essere:
Status: inactive
Con il ripristino del firewall UFW, ora dovrai riattivare il firewall e avviare l'intero processo di aggiunta delle regole. Il comando di ripristino dovrebbe essere usato con moderazione, se possibile.
Come trovare tutte le porte aperte (controllo di sicurezza)
La maggior parte dei sistemi non si rende conto che possono avere le porte aperte. Nell'era in cui ogni indirizzo IP su Internet viene scansionato quotidianamente, è fondamentale osservare cosa sta succedendo dietro le quinte.
L'opzione migliore è installare Nmap, quindi, utilizzando questa famosa applicazione, elencare le porte aperte.
sudo apt install nmap
Quindi, trova l'indirizzo IP interno del sistema.
hostname -I
Esempio di output:
192.168.50.45
Ora usa il seguente comando Nmap con l'indirizzo IP del server.
sudo nmap 192.168.50.45
Esempio di output:

Come sopra, le porte 9090 e 80 sono aperte. Prima di bloccare le porte, verifica prima cosa sono se non sei sicuro.
Da questo punto, puoi creare regole UFW personalizzate che hai appreso nel tutorial per chiudere o limitare le porte aperte.