Come impostare un firewall su Ubuntu Server
Pubblicato: 15 febbraio 2025 alle ore 21:33:50 UTC
Ultimo aggiornamento: 12 gennaio 2026 alle ore 08:37:08 UTC
Questo articolo spiega e fornisce alcuni esempi su come impostare un firewall su GNU/Linux utilizzando ufw, abbreviazione di Uncomplicated FireWall. Il nome è appropriato: è davvero un modo molto semplice per assicurarsi di non avere più porte aperte del necessario.
How to Set Up a Firewall on Ubuntu Server
Le informazioni contenute in questo post si basano su Ubuntu Server 14.04 x64. Potrebbero essere valide o meno per altre versioni. (Aggiornamento: posso confermare che le informazioni contenute in questo post sono sostanzialmente ancora valide e funzionali a partire da Ubuntu Server 24.04; tuttavia, negli ultimi 10 anni, ufw è diventato un po' più "intelligente" grazie all'aggiunta di profili per le applicazioni server più comuni (ad esempio, è possibile abilitare "Nginx full" anziché le porte 80 e 443 separatamente) e non è più necessario disabilitare/abilitare l'intero firewall per applicare le nuove regole).
Quando ho iniziato a usare i server GNU/Linux (Ubuntu), configurare un firewall implicava la creazione e la manutenzione manuale di un file di configurazione per iptables potenzialmente complesso. Tuttavia, ho scoperto di recente ufw, abbreviazione di Uncomplicated Firewall – e lo è davvero :-)
Nella mia installazione di Ubuntu Server 14.04 era già installato ufw, ma se la tua non ce l'ha, puoi semplicemente installarlo dai repository:
UFW è in realtà solo uno strumento che semplifica la configurazione di iptables: dietro le quinte, sono sempre iptables e il firewall del kernel Linux a eseguire il filtraggio, quindi ufw non è né meno né più sicuro di questi. Tuttavia, poiché ufw semplifica notevolmente la corretta configurazione di un firewall, può ridurre il rischio di errore umano ed è quindi potenzialmente più sicuro per gli amministratori inesperti.
Se il tuo server è configurato sia con IPv6 che con IPv4, assicurati che sia abilitato anche per UFW. Modifica il file /etc/default/ufw e cerca una riga che dice IPV6=yes. Nella mia installazione era già presente, ma se non lo è o se dice no, dovresti modificarla.
Quindi, utilizza semplicemente il prompt dei comandi per abilitare le porte che desideri aprire. Se sei connesso al server tramite SSH, assicurati di abilitare anche questa funzionalità, altrimenti potrebbe interrompere la connessione e bloccarti l'accesso al server quando lo attivi. A seconda che tu abbia accesso fisico al server o meno, questo potrebbe essere un po' scomodo ;-)
Ad esempio, se si utilizza ssh sulla porta standard 22 e si sta configurando un server web che supporta sia connessioni non crittografate (HTTP sulla porta 80) sia connessioni crittografate (HTTPS sulla porta 443), è necessario immettere i seguenti comandi per configurare ufw:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Se hai bisogno di altre regole, aggiungile semplicemente come sopra.
Se hai un indirizzo IP statico e hai bisogno di connetterti tramite SSH solo da una posizione, puoi anche limitare le connessioni SSH a un singolo indirizzo di origine in questo modo:
Naturalmente, inserisci il tuo indirizzo IP.
Al termine, abilitare ufw immettendo:
E il gioco è fatto! Il firewall è in funzione e si avvierà automaticamente al riavvio del server :-)
Se apporti modifiche alla configurazione ufw, potrebbe essere necessario disabilitarla e abilitarla nuovamente per renderle effettive, in questo modo:
sudo ufw enable
Per visualizzare la configurazione attuale, è sufficiente immettere:
Se ufw non è abilitato, verrà semplicemente visualizzato un messaggio "inattivo", altrimenti verranno elencate le regole attualmente definite.
