Configurazione del firewall ufw
, iptables
1. UFW: Uncomplicated Firewall
Perché serve un firewall?
Immagina che il tuo server sia una casa piena di cose preziose (dati, ovviamente). Se lasci le porte spalancate, chiunque potrebbe entrare, "mangiarsi" i tuoi dati e poi lasciare i piatti sporchi (o peggio). Il firewall è come quelle porte che puoi controllare: chi può entrare, da quale porta e a quali condizioni.
Linux offre due strumenti principali per configurare un firewall: ufw (Uncomplicated Firewall, cioè "firewall non complicato") e iptables. Vediamo come funzionano e quali sono le differenze.
Cos'è UFW?
UFW è uno strumento per la configurazione del firewall creato con l'idea di "rendiamolo semplice". È perfetto per chi vuole impostare rapidamente regole di accesso di base senza approfondire i dettagli complessi.
Installazione e attivazione di UFW
UFW è solitamente preinstallato nella maggior parte delle distribuzioni basate su Debian/Ubuntu. Se manca, installalo con:
sudo apt update
sudo apt install ufw
Per attivare UFW:
sudo ufw enable
Verifica lo stato:
sudo ufw status
Al primo avvio, lo stato sarà probabilmente "inactive". Dopo averlo attivato, cambierà in "active".
Configurazione delle regole UFW
Ed ecco la parte divertente: impostare le regole che definiscono quale traffico consentire e quale bloccare.
Consentire l'accesso tramite SSH (porta 22):
sudo ufw allow 22
Aprire l'accesso al web server (porta 80):
sudo ufw allow 80
Aprire HTTPS (porta 443):
sudo ufw allow 443
Bloccare l'accesso a una porta non necessaria (ad esempio, 8080):
sudo ufw deny 8080
Rimuovere una regola:
Se cambi idea, puoi rimuovere una regola usando il numero indicato dal comando sudo ufw status numbered
. Ad esempio:
sudo ufw delete 1
Verifica e test
Per assicurarti che tutto funzioni correttamente, puoi controllare di nuovo lo stato:
sudo ufw status
Vedrai un elenco di tutte le regole attive.
2. IPTABLES: più controllo, più possibilità
Che cos'è iptables?
Se UFW è una "porta semplice con serratura", allora iptables è una "guardia intelligente" che ti permette di configurare praticamente tutto. Offre un controllo totale sul traffico, inclusa la routinizzazione, il filtraggio tramite vari criteri e persino la possibilità di modificare i pacchetti.
Concetti principali di iptables
- Tabelle — un insieme di funzioni per gestire i pacchetti di rete.
filter
: gestione e filtraggio dei pacchetti (ad esempio, permettere o bloccare).nat
: conversione di indirizzi/porte (per i router, ad esempio).
- Catene — regole applicate ai pacchetti.
INPUT
: per il traffico in ingresso.OUTPUT
: per il traffico in uscita.FORWARD
: per il traffico inoltrato.
- Obiettivi (targets) — azioni eseguite sui pacchetti.
ACCEPT
: consentire il pacchetto.DROP
: scartare il pacchetto.REJECT
: scartare il pacchetto inviando una notifica.
Vediamo ora come configurare le regole di iptables.
Visualizzare le regole correnti
Per vedere quali regole sono già configurate, esegui:
sudo iptables -L
Puoi aggiungere -v
o -n
per informazioni più dettagliate sui pacchetti e sugli indirizzi IP.
Creazione di regole con iptables
Regola semplice: consentire SSH (porta 22):
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Bloccare l'accesso alla porta 8080:
sudo iptables -A INPUT -p tcp --dport 8080 -j DROP
Limitare l'accesso tramite indirizzo IP:
Se vuoi che un computer con un determinato IP possa connettersi al tuo server, mentre tutti gli altri no:
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
Eliminare regole
Per eliminare una regola, devi conoscerne il numero. Trovalo con:
sudo iptables -L --line-numbers
Poi cancellala con:
sudo iptables -D INPUT <numero_regola>
Salvare le regole
Le regole di iptables vengono "dimenticate" di default al riavvio del sistema. Per evitarlo, salvale con:
sudo iptables-save > /etc/iptables/rules.v4
Poi puoi ripristinare le regole con:
sudo iptables-restore < /etc/iptables/rules.v4
3. UFW contro IPTABLES: quale scegliere?
UFW e iptables fanno la stessa cosa: proteggono il tuo server. Quindi quale strumento scegliere?
- UFW — è uno strumento semplice per le configurazioni di sicurezza di base. Se non vuoi approfondire i dettagli di basso livello o vuoi semplicemente configurare rapidamente un firewall, scegli UFW.
- Iptables — è uno strumento potente per configurazioni più complesse. Se hai un'infrastruttura complessa (tipo NAT, routing), ti servirà iptables.
Tra l'altro, UFW in realtà funziona "sopra" iptables. Genera semplicemente regole iptables per te. Quindi, se hai imparato iptables, capisci automaticamente come funziona UFW internamente.
4. Esempi pratici: protezione del server
Esempio 1: protezione di SSH e del web server con UFW
- Assicurati che UFW sia installato e attivo:
sudo ufw enable
- Consenti accesso via SSH e al web server:
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
- Verifica le regole attive:
sudo ufw status
Esempio 2: blocco del traffico inutile con iptables
- Consenti accesso via SSH:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- Consenti traffico web:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
- Blocca tutto il resto:
sudo iptables -A INPUT -j DROP
Oggi hai imparato come proteggere un server con UFW e iptables. Entrambi gli strumenti sono potenti e utili, basta ricordarti che UFW è il tuo "amico di tutti i giorni", mentre iptables è "uno strumento potente nelle mani di un maestro". Configura il firewall, studia le tue configurazioni e lascia che il tuo server rimanga una fortezza e non un cortile aperto a tutti.
GO TO FULL VERSION