Debian come gateway
Configurare la nostra Debian box come gateway per la rete LAN interna è il primo passo per raggiungere l'obiettivo di un firewall che filtri i contenuti indesiderati. Questo renderà inoltre la nostra rete molto più flessibile di quanto non sarebbe con l'utilizzo di un firewall hardware dedicato e ci permetterà, qualora ne avessimo la necessità, di aggiungere in futuro ulteriori servizi senza bisogno di nuovo hardware.
Per trasformare un PC Debian in un gateway abbiamo bisogno innanzitutto di due schede di rete:
- eth0 sarà la scheda di rete connessa alla nostra LAN e in questo articolo avrà indirizzo IP 192.168.1.1;
- eth1 sarà la scheda di rete connessa al modem/router del nostro ISP e andrà configurata in base ai parametri di rete forniti al momento della stipula del contratto ADSL.
Le schede di rete andranno configurate nella classica maniera Debian, agendo cioè sul file di configurazione /etc/network/interfaces.
Perché la nostra Debian funzioni come gateway e instradi correttamente i pacchetti dalla nostra LAN verso internet e viceversa, abbiamo bisogno che siano abilitate le funzionalità di IP forwarding e che siano stabilite alcune regole di instradamento. Tutto questo può essere fatto grazie a iptables, il programma che consente la configurazione di netfilter, il componente del kernel Linux che permette il filtraggio (con e senza stati) dei pacchetti, la traduzione degli indirizzi di rete e di porta e altre forme di manipolazione dei pacchetti IP.
Iptables dovrebbe già essere stato installato nell'installazione base di Debian, ma per scrupolo effettuiamo un controllo:
# apt-get install iptables
Abbiamo inoltre bisogno di stabilire un insieme di regole da dettare a iptables:
- disabilitare le connessioni entranti da internet sulla scheda eth1;
- permettere l'instradamento dei pacchetti in uscita dalla LAN (scheda eth0) verso internet;
- permettere alle connessioni stabilite di ricevere i pacchetti di ritorno.
Iptables si configura generalmente costruendo degli script di regole da attivare all'avvio della macchina gateway. Le regole logiche definite al paragrafo precedente conducono alla stesura di uno script simile a questo:
#!/bin/sh PATH=/usr/sbin:/sbin:/bin:/usr/bin # # Elimino eventuali regole esistenti # iptables -F iptables -t nat -F iptables -t mangle -F iptables -X