Introducing ZYNOO General Purpose & CPU Optimized Servers   Learn More >

Firewall di Ubuntu: come configurare UFW su un VPS

Configurare il firewall di Ubuntu con UFW (Uncomplicated Firewall) aiuta a proteggere il VPS consentendo le connessioni necessarie e bloccando il traffico in entrata non necessario. Bastano pochi comandi, ma l’ordine è importante: consenti l’accesso SSH prima di attivare il firewall, altrimenti potresti perdere l’accesso remoto.

Questa guida mostra come installare UFW, configurare impostazioni predefinite sicure, aprire le porte per il sito web, attivare il firewall e gestire le regole in seguito.

Punti chiave

  • UFW offre un modo semplice per gestire il firewall di Ubuntu dalla riga di comando.
  • Consenti l’accesso alla porta SSH effettivamente in uso prima di attivare UFW su un VPS remoto.
  • Blocca per impostazione predefinita il traffico in entrata non richiesto, quindi apri solo le porte necessarie ai tuoi servizi.
  • Verifica l’accesso da una seconda connessione e controlla le regole ogni volta che aggiungi o rimuovi applicazioni.

Che cos’è UFW su Ubuntu?

UFW è uno strumento di configurazione del firewall che gestisce le regole del sistema di filtraggio dei pacchetti del kernel Linux. Invece di scrivere regole di basso livello, puoi consentire o negare le connessioni con comandi come ufw allow e ufw delete.

Su un tipico VPS che ospita siti web, consentirai l’accesso SSH per l’amministrazione e aprirai le porte 80 e 443 per i visitatori. Le porte dei database e delle applicazioni interne dovrebbero in genere rimanere inaccessibili da Internet.

Prima di configurare il firewall di Ubuntu

Ti serviranno un VPS Ubuntu con accesso sudo e una connessione SSH funzionante. Se hai poca esperienza con l’amministrazione remota, consulta la guida di ZYNOO ai comandi SSH per principianti.

Mantieni aperta la sessione SSH corrente. Verifica che la console web o di ripristino del tuo provider VPS funzioni. I firewall di rete gestiti dal provider sono separati da UFW e potrebbero richiedere regole appropriate.

Queste istruzioni presuppongono una configurazione UFW nuova o inattiva. Se UFW è già attivo, esamina le sue regole e i requisiti dei servizi prima di modificare la politica predefinita.

Configurazione del firewall di un VPS Ubuntu con UFW

Passaggio 1: verifica e installa UFW

Verifica se UFW è disponibile:

sudo ufw status

Status: inactive significa che è installato ma non applica le regole. Se il comando non viene trovato, installalo:

sudo apt update
sudo apt install ufw

Non attivare ancora il firewall.

Passaggio 2: consenti l’accesso SSH prima di attivare UFW

Individua la porta TCP su cui SSH è in ascolto:

sudo ss -ltnp

Confronta l’output con la porta utilizzata dal tuo client SSH. La porta 22 è comune, ma le configurazioni VPS possono usarne un’altra.

Se SSH usa la porta 22, esegui:

sudo ufw allow 22/tcp

Se SSH usa invece una porta personalizzata, ad esempio 2222, consenti l’accesso a quella porta al posto della porta 22:

sudo ufw allow 2222/tcp

La porta 2222 è un esempio, non una porta aggiuntiva che tutti devono aprire. Controlla le regole in attesa di essere applicate:

sudo ufw show added

Passaggio 3: imposta le regole predefinite e controlla IPv6

Imposta una politica che neghi per impostazione predefinita le connessioni in entrata, consentendo al VPS di avviare connessioni in uscita:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Se il tuo VPS dispone di connettività IPv6 pubblica, verifica che UFW la gestisca:

grep '^IPV6=' /etc/default/ufw

Il valore previsto è IPV6=yes. Se IPv6 è in uso ma il valore è no, modifica /etc/default/ufw per abilitare la gestione di IPv6 prima di attivare il firewall.

Passaggio 4: apri le porte necessarie al tuo sito web

Se il VPS ospita un sito web pubblico, consenti il traffico HTTP e HTTPS prima di attivare UFW:

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

Le porte comunemente utilizzate su un VPS Ubuntu sono:

ServizioPortaProtocollo
SSH22 (o la tua porta personalizzata)TCP
HTTP80TCP
HTTPS443TCP

Per un’applicazione pubblica su una porta TCP diversa, la sintassi UFW per consentire l’accesso alla porta è:

sudo ufw allow 8080/tcp

Esegui questo comando di esempio solo se il tuo servizio richiede l’accesso dall’esterno sulla porta 8080. Per un servizio UDP, specifica invece /udp, ad esempio sudo ufw allow 51820/udp per un endpoint WireGuard configurato su quella porta.

Puoi anche controllare i profili delle applicazioni disponibili:

sudo ufw app list

Se Nginx Full è nell’elenco, controlla le porte del profilo con sudo ufw app info 'Nginx Full'. Il comando sudo ufw allow 'Nginx Full' può sostituire le due regole per le porte del sito web indicate sopra; non occorre usare entrambi i metodi. Le applicazioni dietro un reverse proxy Nginx locale in genere non dovrebbero esporre pubblicamente la propria porta di backend.

Passaggio 5: attiva UFW e verifica il firewall

Dopo aver consentito l’accesso SSH e alle porte necessarie ai servizi, attiva UFW:

sudo ufw enable

Potrebbe comparire un avviso che segnala possibili effetti su SSH. Procedi solo dopo aver verificato la regola SSH e la disponibilità dell’accesso di ripristino. Controlla le regole attive:

sudo ufw status verbose

Dovresti vedere Status: active, le politiche predefinite e le porte consentite. UFW si avvia automaticamente anche all’accensione del VPS.

Prima di chiudere la sessione SSH originale, connettiti di nuovo da un secondo terminale. Dal tuo computer, usa ssh -p 22 username@server-ip, sostituendo il nome utente, l’indirizzo e la porta secondo necessità. Se hai aperto le porte 80 e 443, verifica che il sito web sia raggiungibile dall’esterno. Una regola ALLOW da sola non dimostra che il servizio sia raggiungibile.

Passaggio 6: gestisci, limita ed elimina le regole UFW

Per elencare le regole del firewall con i rispettivi numeri:

sudo ufw status numbered

Per eliminare una regola di accesso non più necessaria, ad esempio quella per la porta TCP 8080:

sudo ufw delete allow 8080/tcp

Puoi anche eliminare una regola tramite il suo numero (sudo ufw delete 3), ma controlla prima l’elenco aggiornato: la numerazione può cambiare e l’eliminazione per numero potrebbe rimuovere solo una delle due regole corrispondenti per IPv4 e IPv6.

Facoltativo: limita l’accesso SSH al tuo indirizzo IP

Se il tuo indirizzo IP amministrativo è stabile, puoi limitare l’accesso SSH a quell’indirizzo. Ad esempio:

sudo ufw allow from 203.0.113.10 to any port 22 proto tcp

Sostituisci l’indirizzo IP dell’esempio con il tuo indirizzo IP pubblico effettivo. Prova a effettuare un nuovo accesso da quell’indirizzo, quindi rimuovi la precedente regola che consentiva l’accesso a tutti con sudo ufw delete allow 22/tcp. Se lasciassi attiva quella regola, chiunque potrebbe ancora accedere. Mantieni disponibili la sessione originale e la console di ripristino durante tutta la procedura.

Facoltativo: limita la frequenza dei tentativi di connessione SSH

In alternativa, se hai bisogno di accedere via SSH da indirizzi IP variabili, sostituisci la regola che consente l’accesso a tutti con un limite alla frequenza delle connessioni:

sudo ufw limit 22/tcp
sudo ufw delete allow 22/tcp
sudo ufw status numbered

Fallo solo dopo aver verificato che la connessione SSH e l’accesso di ripristino funzionino; se la tua porta SSH è diversa da 22, usa quella effettiva. In seguito, prova a effettuare un altro accesso. Questa è un’alternativa alla limitazione dell’accesso in base all’IP, non una misura da usare insieme a essa. La limitazione della frequenza non sostituisce l’autenticazione con chiave SSH.

Passaggio 7: controlla i log e risolvi i problemi di accesso

Abilita la registrazione di base quando devi analizzare il traffico bloccato:

sudo ufw logging on
sudo ufw status verbose

I log di UFW potrebbero essere disponibili nel journal di sistema o in /var/log/ufw.log, a seconda della configurazione dei log.

Se SSH diventa irraggiungibile, usa la console di ripristino del tuo provider per esaminare le regole attive. Come misura temporanea di emergenza, sudo ufw disable interrompe l’applicazione delle regole; correggi la regola SSH e riattiva UFW.

Se il sito web non si carica, controlla i servizi in ascolto con sudo ss -ltnp, le regole UFW ed eventuali firewall del provider. Aprire una porta non avvia il servizio che dovrebbe usarla.

Domande frequenti

Il firewall di Ubuntu si avvia automaticamente dopo un riavvio?

Sì. Dopo aver eseguito sudo ufw enable, UFW rimane abilitato per gli avvii successivi. Controlla la sua configurazione con sudo ufw status verbose.

Devo riavviare Ubuntu dopo aver modificato le regole UFW?

No. Le regole aggiunte o rimosse tramite UFW hanno effetto senza riavviare il VPS. Puoi controllare immediatamente la configurazione corrente.

Il firewall UFW protegge i container Docker?

Non necessariamente. Le porte pubblicate da Docker possono aggirare le normali regole UFW per il traffico in entrata, perché Docker configura le proprie regole di rete. Consulta la documentazione di Docker sui firewall prima di affidarti a UFW per limitare l’accesso ai container.

Conclusione

Per configurare in modo sicuro il firewall di Ubuntu con UFW, consenti innanzitutto l’accesso SSH, imposta una politica che neghi per impostazione predefinita le connessioni in entrata e apri solo le porte necessarie alle tue applicazioni. Dopo aver attivato UFW, verifica l’accesso da una connessione separata e rimuovi le regole obsolete man mano che la configurazione del VPS cambia.

UFW gestisce l’accesso alla rete, non gli abusi a livello applicativo. Per i siti web pubblici ospitati con Nginx, la limitazione della frequenza delle richieste è un’ulteriore misura di protezione utile.

Table of Content

La limitazione della frequenza delle richieste in Nginx è una funzionalità integrata che controlla quante

Un reverse proxy Nginx riceve le richieste dei visitatori di un sito web e le

Un errore 502 Bad Gateway in Nginx di solito significa che Nginx non è riuscito

Build your next project with ZYNOO

From your first website to demanding applications, choose the resources and control you need.

Shared Hosting

Start your blog or business website with cPanel, LiteSpeed and CloudLinux.

VPS Hosting

Grow your websites and applications with NVMe storage, KVM virtualization and full root access.

Dedicated Servers

Power demanding projects with your own physical server, dedicated resources and control over your environment.

Torna in alto