Introduzione
Nel kernel Linux il controllo del traffico di rete e il filtraggio dei pacchetti è controllato dal sottosistema Netfilter, il firewall di casa Linux. La configurazione di Netfilter è possibile grazie all'interfaccia nello spazio utente di nome Iptables. Il software che andremo a illustrare nei passi successivi ha una caratteristica fondamentale, cioè quella che ci da la possibilità di poterlo trovare in più versioni, che cambiano nell'interfaccia e nella semplificazione per l'utente. Andiamo a vedere più nel dettaglio come configurare il firewall su Linux.
.
Impostazione delle policy
Il primo passo consiste nell'impostazione delle policy attraverso una serie di comandi, il cui elenco è disponibile tramite il comando "$ sudo iptables -L" (senza virgolette).
Digitando questo comando si otterrà come output una sequenza di questo genere:
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
Questo indica che il programma non presenta nessuna configurazione già attiva, e ogni pacchetto può transitare liberamente in entrata e in uscita. Per impedire che questo avvenga e permettere solo il transito dei pacchetti sicuri si può seguire questo metodo. L?output del comando è diviso in tre parti distinte: Chain INPUT, ossia flusso di pacchetti in entrata verso il nostro computer; Chain FORWARD, ossia flusso di pacchetti di solo transito ma non indirizzati a noi; Chain OUTPUT, ossia flusso di pacchetti in uscita dalla macchina.
Blocco delle connessioni in entrata
È quindi possibile configurare questi aspetti in modo totalmente separato bloccando o permettendo una o più delle impostazioni precedenti. Si può optare per una configurazione robusta, bloccando tutte le connessioni in entrata tranne delle eccezioni che saranno gestite manualmente in seguito. Per prima cosa andiamo a bloccare tutto il traffico verso il server, digitando questi comandi:
"$ sudo iptables -P INPUT DROP", "$ sudo iptables -P FORWARD DROP", dove il secondo permette di negare il traffico in transito.
Abilitazione di specifiche connessioni
Ora possiamo abilitare determinati tipi di connessioni tramite l?apertura del traffico attraverso alcune porte, seguendolo schema proposto: "$ sudo iptables -A INPUT -p [PROTOCOLLO] --dport [PORTA] -j ACCEPT"
I valori da andare a editare sono il tipo di protocollo da abilitare (UDP o TCP) e la porta di transito del traffico, diversa per ogni servizio abilitato.