51 05/04/2026 07/04/2026 7 min

Introduzione

UFW, acronimo di Uncomplicated Firewall, è il modo più semplice e pulito per gestire il firewall su Ubuntu 24.04. Se devi mettere ordine in una VPS, proteggere un server web o ridurre la superficie di attacco senza impazzire con regole complesse, UFW è spesso la scelta giusta.

Questa guida parte da un’installazione pulita e arriva a una configurazione pratica per server reali: SSH, HTTP, HTTPS, DNS, mail e controllo finale. L’obiettivo non è solo “accendere il firewall”, ma farlo senza bloccarti fuori dal server e senza aprire porte inutili.

Regola d’oro: prima autorizza l’accesso amministrativo, poi attiva il firewall. Non il contrario.

Prima di iniziare

UFW su Ubuntu 24.04 usa come base nftables tramite il sistema di gestione del firewall di Ubuntu. Nella pratica, però, tu lavorerai quasi sempre con i comandi UFW, che restano semplici e leggibili.

Ti conviene avere già:

  • accesso SSH al server come utente con privilegi sudo;
  • un secondo accesso di emergenza, se possibile, tramite console del provider;
  • un’idea chiara dei servizi che devono restare raggiungibili;
  • una finestra di manutenzione se il server è in produzione.

Se il server ospita un sito, verifica prima quali porte servono davvero. Per esempio: un sito WordPress classico richiede di solito solo 22, 80 e 443; un mail server aggiunge 25, 465, 587, 110, 995, 143 e 993; un DNS server può richiedere 53 TCP e UDP.

Installazione di UFW

Su Ubuntu 24.04 UFW spesso è già presente, ma puoi verificare e installare in pochi secondi.

sudo apt update
sudo apt install ufw

Controlla lo stato:

sudo ufw status verbose

Esito atteso: se UFW non è attivo, vedrai qualcosa come Status: inactive. Questo è normale prima della configurazione.

Configurazione sicura di base

Prima di attivare il firewall, imposta la politica di default in modo prudente. L’idea è bloccare tutto in ingresso, consentire tutto in uscita e poi aprire solo ciò che serve davvero.

sudo ufw default deny incoming
sudo ufw default allow outgoing

Questa è la base più sicura per la maggior parte dei server. In ingresso si accetta solo il traffico autorizzato, in uscita il sistema resta operativo senza problemi per aggiornamenti, DNS, repository e servizi esterni.

Autorizzare SSH prima di attivare UFW

Se lavori via SSH, questo passaggio è obbligatorio. Senza regola SSH rischi di chiuderti fuori.

Se usi la porta standard 22:

sudo ufw allow OpenSSH

Se hai cambiato porta, ad esempio 2222:

sudo ufw allow 2222/tcp

Verifica che la regola sia presente:

sudo ufw status numbered

Esito atteso: una riga che consenta OpenSSH oppure la porta TCP specifica che hai scelto.

Attivare UFW

Quando SSH è già autorizzato, puoi attivare il firewall:

sudo ufw enable

UFW chiederà conferma. Rispondi y solo se hai verificato la regola SSH. Dopo l’attivazione, controlla lo stato:

sudo ufw status verbose

Esito atteso: Status: active, con le policy di default impostate e almeno una regola per SSH.

Regole pratiche per i servizi più comuni

Qui si fa la differenza tra un firewall teorico e uno utile davvero. Apri solo le porte necessarie al servizio reale che stai eseguendo.

Sito web HTTP e HTTPS

Per un server web classico, abilita le porte standard del traffico web:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Se preferisci, puoi usare i profili applicativi disponibili:

sudo ufw app list
sudo ufw allow 'Nginx Full'
# oppure
sudo ufw allow 'Apache Full'

Esito atteso: il sito deve rispondere in HTTP e HTTPS, ma non devono esserci porte extra aperte inutilmente.

DNS

Se il server fa da resolver o da nameserver, il DNS richiede sia TCP sia UDP sulla porta 53:

sudo ufw allow 53

In molti casi UFW applica la regola a entrambi i protocolli. Se vuoi essere esplicito:

sudo ufw allow 53/tcp
sudo ufw allow 53/udp

Usa questa apertura solo se il server deve davvero rispondere a richieste DNS dall’esterno.

Mail server

Per un server di posta la configurazione varia molto, ma in genere servono queste porte:

  • 25/tcp per SMTP in ingresso tra server;
  • 465/tcp per SMTPS, se usato;
  • 587/tcp per submission;
  • 110/tcp e 995/tcp per POP3/POP3S;
  • 143/tcp e 993/tcp per IMAP/IMAPS.

Esempio:

sudo ufw allow 25/tcp
sudo ufw allow 587/tcp
sudo ufw allow 993/tcp

Apri solo ciò che il tuo stack mail usa davvero. Se usi un servizio come Postfix con Dovecot e accesso IMAPS, spesso bastano 25, 587 e 993.

Accesso remoto a database

Se il database deve essere raggiungibile dall’esterno, la scelta migliore è quasi sempre evitare l’esposizione pubblica e usare una VPN o un tunnel SSH. Se però è indispensabile, limita l’accesso a un IP preciso.

Per MySQL/MariaDB sulla porta 3306, esempio con un IP singolo:

sudo ufw allow from 203.0.113.10 to any port 3306 proto tcp

Esito atteso: solo quell’indirizzo può raggiungere il database. Tutti gli altri restano bloccati.

Gestione delle regole in modo ordinato

Con il tempo un firewall si sporca facilmente. Per evitarlo, usa regole chiare e verifica regolarmente cosa è aperto.

Mostra le regole con numerazione:

sudo ufw status numbered

Se devi rimuovere una regola, usa il numero visualizzato. Ad esempio:

sudo ufw delete 3

Prima di eliminare, controlla bene che la regola sia davvero superflua. La cancellazione è reversibile solo se sai ricrearla correttamente.

Se vuoi limitare tentativi ripetuti su SSH, puoi usare il rate limit:

sudo ufw limit OpenSSH

Esito atteso: riduce l’efficacia di brute force semplici, senza bloccare gli accessi normali.

Logging e diagnosi

I log sono la tua cassetta degli attrezzi quando qualcosa non funziona. Se un servizio non risponde, prima controlla se il firewall sta bloccando il traffico.

Abilita il logging:

sudo ufw logging on

Puoi impostare diversi livelli, ma per la maggior parte dei casi il livello low o medium è un buon compromesso:

sudo ufw logging low

Per consultare i log su Ubuntu, usa:

sudo tail -f /var/log/ufw.log

Se il file non esiste, controlla anche il journal:

sudo journalctl -u ufw -f

Esito atteso: quando una connessione viene bloccata, trovi una traccia utile con sorgente, destinazione e porta.

Verifiche finali dopo la configurazione

Un firewall ben fatto si controlla sempre dopo l’attivazione. Non basta leggere “active”. Devi verificare che i servizi critici rispondano davvero.

  1. Verifica lo stato del firewall con sudo ufw status verbose, che deve mostrare active e le regole corrette.
  2. Controlla la raggiungibilità SSH da una seconda sessione prima di chiudere quella attuale.
  3. Testa il sito con curl -I http://localhost o curl -I https://localhost, con esito atteso 200 o un redirect coerente.
  4. Se hai aperto DNS o mail, prova il servizio con strumenti dedicati o da un host esterno autorizzato.

Se qualcosa non risponde, non improvvisare: torna a controllare la regola, il servizio in ascolto e l’eventuale filtro di un altro layer, come security group cloud, firewall hardware o ACL del provider.

Rollback e ripristino

Il rollback deve essere semplice e immediato. Se dopo l’attivazione perdi accesso o un servizio essenziale smette di funzionare, hai due opzioni sicure.

Per disattivare temporaneamente UFW:

sudo ufw disable

Esito atteso: il firewall si ferma e il traffico torna gestito dagli altri livelli di rete eventualmente presenti.

Se vuoi ripartire da zero, puoi resettare la configurazione:

sudo ufw reset

Attenzione: questa operazione cancella tutte le regole UFW. Usala solo se sai esattamente cosa stai facendo e hai già un piano per ricreare le regole corrette.

Dopo un rollback, verifica sempre con:

sudo ufw status verbose

Esito atteso: inactive se hai disabilitato il firewall, oppure configurazione pulita se hai eseguito il reset.

Configurazione consigliata per un server web tipico

Se hai una VPS con un sito web, spesso questa è la base più equilibrata:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Questa configurazione è adatta a un web server standard senza servizi extra esposti. Se poi aggiungi DNS, mail o pannelli di controllo, apri solo le porte necessarie e documenta ogni modifica.

Per un server gestito con cPanel, Plesk o altri pannelli, la logica resta identica: apri solo i servizi realmente usati dal pannello e dal sito, non l’intero catalogo delle porte “per sicurezza”.

Buone pratiche da portare a casa

  • Fai sempre un backup della configurazione prima di modifiche importanti.
  • Non aprire porte solo perché “potrebbero servire”.
  • Controlla anche firewall esterni: cloud, router, security group, appliance.
  • Usa regole con IP limitato quando possibile.
  • Rivedi periodicamente le porte aperte, soprattutto dopo installazioni e migrazioni.

UFW funziona bene proprio quando resta essenziale: poche regole chiare, servizi ben definiti e controlli regolari. Su Ubuntu 24.04 è uno strumento concreto, leggero e adatto sia ai server piccoli sia alle VPS di produzione.