Come impostare un firewall su Ubuntu Server
Pubblicato: 15 febbraio 2025 alle ore 21:33:50 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 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 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" avendo profili per applicazioni server comuni (ad esempio, puoi abilitare "Nginx full" invece delle porte 80 e 443 separatamente) e disabilitare/abilitare l'intero firewall per ottenere l'applicazione di nuove regole non è più necessario)
Quando ho iniziato a usare i server GNU/Linux (Ubuntu), impostare un firewall implicava la creazione e la manutenzione manuale di un file di configurazione potenzialmente complesso per iptables. Tuttavia, ho scoperto di recente ufw , che è l'abbreviazione di Uncomplicated Firewall, e lo è davvero :-)
Nella mia installazione di Ubuntu Server 14.04 era già installato ufw, ma se nella tua non è così, installalo semplicemente dai repository:
UFW è in realtà solo uno strumento che semplifica la configurazione di iptables: dietro le quinte, sono ancora iptables e il firewall del kernel Linux a fare il filtraggio, quindi ufw non è né meno né più sicuro di questi. Tuttavia, poiché ufw rende molto più facile configurare correttamente un firewall, potrebbe ridurre il rischio di errore umano ed è quindi probabilmente più sicuro per gli amministratori inesperti.
Se il tuo server è configurato con IPv6 e 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à lì, ma se non lo è o se dice no, dovresti modificarlo
Quindi usa semplicemente il prompt dei comandi per abilitare le porte che vuoi aprire. Se sei connesso al tuo server tramite ssh, assicurati di consentirlo anche tu o potrebbe interrompere la tua connessione e bloccarti fuori dal tuo 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) che 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 hai finito! Il firewall è in esecuzione e si avvierà automaticamente quando riavvierai il 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.