7.2. Uso di IPTables

La prima fase nell'uso di IPTables è rappresentata dall'esecuzione del servizio IPTables. Questo può essere fatto con il comando:

service iptables start

AttenzioneAvvertenza
 

I servizi IP6Tables dovrebbero essere disattivati in modo da poter usare il servizio IPTables con i seguenti comandi:

service ip6tables stop
chkconfig ip6tables off

Per poter iniziare IPTables per default ogni volta che il sistema viene avviato, è necessario cambiare lo stato del runlevel sul servizio usando chkconfig.

chkconfig --level 345 iptables on

La sintassi di IPTables è separata in livelli. Il livello principale è rappresentato da unachain. Un chain specifica lo stato nel quale un pacchetto verrà manipolato. L'uso è il seguente:

iptables -A chain -j target

-A aggiunge una regola alla fine di una serie di regole esistenti. Il chain rappresenta il nome del chain per una regola. I tre chain interni di IPTables (cioè, i chain che influenzano ogni pacchetto che attraversa la rete) sono INPUT, OUTPUT, e FORWARD. Questi chain sono permanenti e non possono essere cancellati.

ImportanteImportante
 

Quando create una serie di regole IPTables, è fondamentale ricordare che l'ordine è importante. Per esempio, un chain in grado di specificare che qualsiasi pacchetto della sottorete locale 192.168.100.0/24, deve essere escluso, identificando successivamente un chain come(-A), il quale abilita i pacchetti provenienti da 192.168.100.13 (la quale è all'interno della sottorete sclusa), ignorando successivamente la regola. Dovete impostare una regola per abilitare prima 192.168.100.13, e poi impostare sulla reteuna regola per l'esclusione.

Per inserire in modo arbitrario una regola in una catena di regole già esistenti, usare -I, seguito dal chain nel quale desiderate inserire la regola, e il numero della regola (1,2,3,...,n) nel quale desiderate posizionarla. Per esempio:

iptables -I INPUT 1 -i lo -p all -j ACCEPT

La regola viene inserita come prima regola nel chain INPUT per abilitare il traffico del dispositivo loopback locale.

7.2.1. Policy di base del firewall

Alcune policy di base stabilite sin dall'inizio, possono aiutare nella creazione di regole più specifiche. IPTables usa delle policy (-P) per creare regole di default. Alcuni amministratori particolarmente attenti alla sicurezza, possono decidere di rinunciare a tutti i pacchetti, abilitando solo alcuni pacchetti a seconda del caso. Le seguenti regole bloccano tutti i pacchetti in entrata e in uscita su di un gateway della rete:

iptables -P INPUT DROP
iptables -P OUTPUT DROP

In aggiunta, è consigliato che qualsiasi pacchetto inoltrato — del traffico di rete, e che deve essere direzionato dal firewall al suo nodo di destinazione — deve essere rifiutato, in modo da limitare i client interni dall'esporsi a Internet. Per fare questo, usare la seguente regola:

iptables -P FORWARD DROP 

NotaNota Bene
 

C'è una distinzione tra le azioni dei target REJECT eDROP nel modo di affrontare le regole aggiunte. Il target REJECT rifiuta l'accesso e ritorna un errore del tipo connection refused, all'utente che cerca di collegarsi al servizio. DROP, come implica il nome, abbandona il pacchetto senza nessun preavviso per gli utenti telnet. Gli amministratori possono usare a loro discrezione questi target; tuttavia, per evitare di confondere l'utente con il susseguente e continuo tentativo di collegamento, viene consigliato l'uso del target REJECT.

Dopo aver impostato la policy dei chain, create nuove regole per la vostra rete in particolare e per la sicurezza. Le seguenti sezioni riportano alcune regole che potete implementare durante la creazione del vostro firewall IPTables.

7.2.2. Come salvare e ripristinare le regole IPTables

Le regole per il firewall sono solo valide quando il computer è alimentato. Se si riavvia il sistema, le regole vengono automaticamente cancellate e resettate. Per salvare le regole in modo da poterle caricare più in avanti, usare il seguente comando:

/sbin/service iptables save

Le regole sono conservate nel file /etc/sysconfig/iptables e vengono applicate ogni qualvolta che il servizio viene avviato o riavviato, incluso quando si riavvia la macchina.