7.3. Filtraggio comune di iptables

Tenere gli aggressori lontani da una LAN, rappresenta un aspetto importante sulla sicurezza della rete, se non il più importante. L'integrità di una LAN dovrebbe essere protetta dagli utenti maliziosi remoti, implementando delle regole firewall rigorose. Tuttavia con una policy di default impostata in modo da bloccare tutti i pacchetti in entrata, in uscita e inoltrati, risulta impossibile per il firewall/gateway e per gli utenti interni della LAN, comunicare con se stessi o esternamente. Per permettere agli utenti di eseguire delle funzioni relative alla rete e usare le applicazioni per il networking, è fondamentale che gli amministratori aprano determinate porte per la loro comunicazione.

Per esempio, per permettere l'accesso alla porta 80 sul firewall, aggiungere la seguente regola:

iptables -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT 

Questo permette il regolare browsing del web dai siti web che comunicano tramite la porta 80. Per abilitare l'accesso ai siti web sicuri (come ad esempio https://www.example.com/), dovete anche aprire la porta 443.

iptables -A INPUT -p tcp -m tcp --sport 443 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT 

ImportanteImportante
 

Quando create una serie di regole iptables, è fondamentale ricordare che l'ordine è importante. Per esempio, una catena in grado di specificare che qualsiasi pacchetto della sottorete locale 192.168.100.0/24, deve essere escluso, successivamente aggiungere un'altra catena (-A),la quale abilita i pacchetti provenienti da 192.168.100.13 (la quale a sua volta è all'interno della sottorete esclusa), ignorando successivamente la regola aggiunta. Dovete impostare una regola per abilitare prima 192.168.100.13, e poi impostare sulla sottorete una regola per l'esclusione.

Per inserire in modo arbitrario una regola in una catena di regole già esistenti, usare -I, seguito dalla catena nella quale desiderate inserire la regola, ed il suo numero (1,2,3,...,n). Per esempio:

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

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

Potrebbe verificarsi il bisogno di richiedere un accesso remoto alla LAN dall'esterno. I servizi sicuri come ad esempio SSH, possono essere usati per il collegamento remoto cifrato per i servizi LAN. Per gli amministratori con risorse basate su PPP (come le modem bank o gli account ISP), l'accesso dialup può essere usato per aggirare in modo sicuro le barriere del firewall, in quanto i collegamenti del modem si trovano generalmente dietro un firewall/gateway, poichè essi sono dei collegamenti diretti. Tuttavia, per utenti remoti con collegamenti veloci 'broadband', si possono considerare casi particolari. Potete configurare iptables in modo da accettare i collegamenti da client SSH remoti. Per esempio, per permettere un accesso SSH remoto, bisogna usare le seguenti regole:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p udp --sport 22 -j ACCEPT

Sono presenti altri servizi per i quali è necessario definire le regole. Consultate Red Hat Enterprise Linux Reference Guide per informazioni complete su iptables e sulle sue opzioni.

Queste regole permettono l'accesso in ingresso e in uscita per un sistema individuale, come ad esempio un PC singolo collegato direttamente ad Internet o ad un firewall/gateway. Tuttavia, non permettono ai nodi presenti dietro il firewall, di accedere a questi servizi. Per permettere un accesso LAN a questi servizi, potete usare NAT insieme alle regole di filtraggio iptables.