In questo tutorial, ti mostreremo come configurare un firewall con iptables su un VPS Linux che esegue Ubuntu o CentOS come sistema operativo. Iptables è uno strumento di amministrazione per il filtraggio dei pacchetti IPv4 e NAT e viene utilizzato per impostare e gestire le tabelle delle regole del filtro dei pacchetti IPv4 nel kernel Linux.
La corretta configurazione e configurazione di un firewall è una delle cose più importanti e cruciali che devi fare per proteggere il tuo server.
Con iptables, vengono definite diverse tabelle di corrispondenza dei pacchetti e ciascuna tabella può contenere un numero di catene integrate e alcune catene definite dall'utente. Le catene sono in realtà elenchi di regole che corrispondono a un insieme di pacchetti e ogni regola specifica cosa fare con il pacchetto abbinato.
La tabella predefinita è il filter
tabella e contiene le catene integrate INPUT, FORWARD e OUTPUT. La catena INPUT viene utilizzata per i pacchetti destinati ai socket locali, la catena FORWARD viene utilizzata per i pacchetti instradati attraverso la scatola mentre la catena OUTPUT viene utilizzata per i pacchetti generati localmente.
Collegati al tuo server tramite SSH ed elenca le regole definite in una catena specifica utilizzando la seguente sintassi:
sudo iptables -L CHAIN
Sostituisci CHAIN con una delle catene integrate per vedere le regole definite. Se nessuna catena è selezionata, tutte le catene verranno elencate nell'output.
sudo iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
Le regole del firewall specificano cosa fare con un determinato pacchetto se soddisfa determinati criteri e nel caso in cui il pacchetto non soddisfi i criteri, verrà esaminata la successiva regola del firewall definita nella catena. Questa è una cosa molto importante da sapere quando si definiscono le regole del firewall perché puoi facilmente bloccarti fuori dal tuo server se definisci la regola che accetta i pacchetti dal tuo indirizzo IP locale dopo la regola di blocco.
I target che puoi utilizzare per le regole del firewall sono ACCEPT, DROP, QUEUE e RETURN. ACCEPT lascerà passare il pacchetto, DROP eliminerà il pacchetto, QUEUE passerà il pacchetto allo spazio utente mentre RETURN interromperà l'attraversamento del pacchetto della catena corrente e riprenderà alla regola successiva nella catena precedente. La policy della catena predefinita definirà cosa fare con un pacchetto se non corrisponde a determinate regole del firewall. Come puoi vedere nell'output del primo comando, la politica predefinita per tutte le catene integrate è impostata su ACCEPT. ACCEPT lascerà passare il pacchetto, quindi praticamente non c'è protezione.
Prima di aggiungere qualsiasi regola specifica, aggiungi la seguente:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Ciò impedirà l'interruzione delle connessioni già stabilite e la tua sessione SSH corrente rimarrà attiva.
Quindi, aggiungi le regole per consentire il traffico sulla tua interfaccia di loopback:
sudo iptables -A INPUT -i lo -j ACCEPT sudo iptables -A OUTPUT -o lo -j ACCEPT
Quindi, consenti l'accesso al tuo server tramite SSH per il tuo indirizzo IP locale in modo che solo tu possa accedere al server:
sudo iptables -A INPUT -s 111.111.111.111 -p tcp --dport 22 -j ACCEPT
Dove 111.111.111.111
è il tuo indirizzo IP locale e 22
è la porta di ascolto del tuo demone SSH. Nel caso in cui il tuo indirizzo IP locale cambi dinamicamente, è meglio omettere il -s 111.111.111.111
parte e utilizza un metodo diverso per proteggere il servizio SSH dal traffico indesiderato.
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Quindi, consenti l'accesso ai tuoi servizi importanti come il server HTTP/HTTPS:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
[ecko_alert color=”blue”]Bloccato da qualche parte? Ottieni un VPS da noi e proteggeremo adeguatamente il tuo server e configureremo un firewall per te, gratuitamente![/ecko_alert]
Ora, elenca le regole attuali e controlla se tutto è a posto. Per un output dettagliato puoi usare il seguente comando:
sudo iptables -nvL
Se disponi di altri servizi a cui desideri consentire l'accesso, è meglio farlo ora. Una volta terminato, puoi impostare la politica predefinita per la catena incorporata INPUT su DROP.
sudo iptables -P INPUT -j DROP
Questo eliminerà qualsiasi pacchetto che non corrisponde ai criteri delle regole del firewall. L'output finale dovrebbe essere simile al seguente:
Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0
Tuttavia, se ora riavvii il server perderai tutte le regole del firewall che hai definito, quindi è davvero importante rendere le regole permanenti.
Nel caso in cui utilizzi un Ubuntu VPS, devi installare un pacchetto aggiuntivo a tale scopo. Vai avanti e installa il pacchetto richiesto usando il seguente comando:
sudo apt-get install iptables-persistent
Su Ubutnu 14.04 puoi salvare e ricaricare le regole del firewall usando i comandi seguenti:
sudo /etc/init.d/iptables-persistent save sudo /etc/init.d/iptables-persistent reload
Su Ubuntu 16.04 usa invece i seguenti comandi:
sudo netfilter-persistent save sudo netfilter-persistent reload
Se utilizzi un CentOS VPS, puoi salvare le regole del firewall utilizzando il comando seguente:
service iptables save
Ovviamente, non devi fare nulla di tutto ciò se utilizzi uno dei nostri servizi di hosting VPS completamente gestiti, nel qual caso puoi semplicemente chiedere ai nostri esperti amministratori Linux di aiutarti a configurare i tuoi iptables sul tuo server. Sono disponibili 24 ore su 24, 7 giorni su 7 e si prenderanno immediatamente cura della tua richiesta.
PS . Se ti è piaciuto questo post su Come configurare un firewall con iptables su Ubuntu e CentOS, condividilo con i tuoi amici sui social network utilizzando i pulsanti qui sotto o lascia semplicemente un commento nella sezione commenti. Grazie.