Come Configurare un Firewall con UFW su Ubuntu 22.04 Server
Su Ubuntu 22.04 Server, puoi gestire il traffico di rete in entrata e in uscita utilizzando UFW (Uncomplicated Firewall). Per i server remoti, assicurati di consentire la porta SSH che stai attualmente utilizzando prima di abilitare il firewall e conferma di poter recuperare l'accesso utilizzando un altro terminale o console.
Cose da Controllare Prima di Iniziare
UFW è uno strumento per la gestione dei firewall Linux. Anche se una porta è consentita nel firewall, una connessione può essere stabilita solo se il servizio è installato, in esecuzione e in ascolto sull'indirizzo e sulla porta corretti. Se ci sono gruppi di sicurezza cloud o firewall esterni, controllane le regole separatamente.
Non cambiare arbitrariamente le politiche esistenti su un server in esecuzione. Per prima cosa, controlla lo stato attuale del firewall, le regole registrate, i servizi richiesti e le porte di accesso, e prepara un metodo di accesso che possa essere utilizzato anche se SSH è disconnesso, come tramite una console cloud o una console di gestione del server. I comandi richiedono privilegi di amministratore.
sudo ufw status verbose
sudo ufw show added
sudo ss -lntup
status verbose mostra le politiche e le regole UFW attive. Se UFW è inattivo, non è possibile verificare tutte le regole registrate solo con questa schermata, quindi fare anche riferimento a show added. ss aiuta a identificare le socket in ascolto, ma non stabilisce se un servizio è raggiungibile dall'esterno.
Attivare dopo aver consentito SSH
Segue un esempio di un nuovo server in esecuzione con SSH sulla porta TCP predefinita 22. Se la porta è diversa, cambiarla con la porta effettiva. Questa regola consente quella porta senza limitarla a un IP specifico, quindi considerare che l'intervallo di accesso è ampio. Su server già attivi, esaminare prima le regole esistenti e le priorità.
sudo ufw allow 22/tcp
Controllare le altre regole del servizio richieste e la politica predefinita, quindi attivare il firewall. Quando si attiva UFW, le connessioni SSH esistenti potrebbero essere interrotte mentre le regole vengono riapplicate. Testare una nuova connessione SSH da un terminale separato mantenendo la sessione corrente e, se fallisce, accedere con la console preparata per modificare le regole.
sudo ufw enable
sudo ufw status verbose
Verificare che lo stato sia active e che la regola SSH prevista sia visualizzata. Quindi, testare le connessioni sia dalle reti consentite che da quelle non consentite per i servizi effettivamente necessari. Questa procedura e le eccezioni possono anche essere verificate nella sezione di gestione remota della documentazione Ubuntu 22.04 UFW.
Politiche di base e regole delle porte
Le impostazioni predefinite di un UFW appena installato generalmente negano le connessioni in entrata e consentono quelle in uscita, ma questo può variare a seconda del server. Controlla le politiche effettive con status verbose. Ad esempio, per negare le connessioni in entrata di default su un nuovo server dove tutti i servizi richiesti sono stati verificati, puoi usare il comando seguente. Su un server già in funzione, rivedi prima come le modifiche alle politiche influenzeranno i servizi e le connessioni esistenti.
sudo ufw default deny incoming
Se è necessario fornire un server web esternamente, consenti le porte e i protocolli effettivamente utilizzati. I seguenti sono esempi di porte TCP per HTTP e HTTPS, e non è necessario applicarle universalmente ai server che non eseguono servizi web.
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Se il server fornisce servizi DNS, puoi consentire UDP e TCP sulla porta 53 secondo necessità. Non aprire porte su server che non forniscono servizi DNS solo perché è un esempio.
sudo ufw allow 53/udp
sudo ufw allow 53/tcp
allow aggiunge regole di consentimento, e deny aggiunge regole di negazione. Le regole di porta senza un protocollo specificato possono applicarsi sia a TCP sia a UDP, quindi è più chiaro specificare il protocollo richiesto. L'ordine delle regole è importante, e la prima regola corrispondente può essere applicata, quindi aggiungere una regola di negazione quando esistono già regole di consentimento non blocca necessariamente l'accesso.
Consenti l'accesso solo da IP specifici
Il seguente è un esempio di consentire connessioni solo alla porta TCP 22 da un singolo indirizzo IPv4. 192.0.2.10 è un indirizzo segnaposto a scopo esplicativo, quindi sostituiscilo con l'IP di accesso amministrativo reale e, se l'IP può essere modificato, prepara prima un metodo di recupero.
sudo ufw allow from 192.0.2.10 to any port 22 proto tcp
Anche se aggiungi questa regola, l'accesso potrebbe non essere limitato se rimane una regola che consente la porta 22 da tutti gli indirizzi. Controlla le regole esistenti e il loro ordine utilizzando l'elenco numerato e conserva solo le regole effettivamente necessarie. Se il server ha l'IPv6 abilitato, non dare per scontato che una regola solo IPv4 limiti l'accesso IPv6; controlla anche le politiche e le regole IPv6.
sudo ufw status numbered
Eliminazione delle regole e disattivazione del firewall
Per eliminare una regola che hai aggiunto con il contenuto esatto, usa delete nel comando originale. Ad esempio, il comando sottostante elimina una regola che consente la porta UDP 53, mentre le regole TCP sono separate.
sudo ufw delete allow 53/udp
Puoi anche eliminare per numero, ma se elimini una regola, i numeri cambiano. Controlla sempre di nuovo il numero e il contenuto corrente con sudo ufw status numbered. L'eliminazione basata sul numero elimina solo una regola IPv4 o IPv6 visualizzata, quindi verifica anche la regola corrispondente per l'altra versione IP. Dopo l'eliminazione, controlla di nuovo lo stato e testa la connessione effettiva.
Per spegnere il firewall, usa il comando seguente. Quando è disabilitato, la protezione fornita da UFW viene rimossa, quindi non assumere che sia sicuro solo perché esiste un altro firewall; prima, verifica l'ambito dell'impatto.
sudo ufw disable
Quando una regola non si comporta come previsto
Controlla se il servizio è in esecuzione, se la porta e il protocollo corretti sono consentiti, l'ordine delle regole e le politiche predefinite. Inoltre, esamina le regole del firewall cloud, del router e della rete a monte, nonché gli indirizzi IPv4 o IPv6 utilizzati per connettersi. A causa dei container o delle regole di rete gestite separatamente, potrebbe essere difficile giudicare il comportamento complessivo utilizzando solo l'elenco dello stato di UFW.
Prima di modificare effettivamente una regola, puoi visualizzare in anteprima le modifiche utilizzando --dry-run. Ad esempio, il comando seguente mostra le modifiche a una regola TCP 80 allow senza applicarle.
sudo ufw --dry-run allow 80/tcp
Lo schermo dello stato di UFW mostra principalmente le regole gestite dai comandi UFW e non rappresenta tutte le impostazioni del firewall sul sistema. Per ulteriori spiegazioni e formati dei comandi, fare riferimento a Documentazione del Firewall di Ubuntu Server.




