# # Abilito il traffico di loopback # iptables -A INPUT -i lo -j ACCEPT # # Permetto le connessioni attive e quelle provenienti dalla LAN # iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m state --state NEW -i ! eth1 -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED, \ RELATED -j ACCEPT # # Peretto connessioni dalla LAN a internet # iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT # # Configuro la funzione di mascheramento # iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE # # Impedisco il forward da internet verso la LAN # iptables -A FORWARD -i eth1 -o eth1 -j REJECT # # Abilito il routing # echo 1 > /proc/sys/net/ipv4/ip_forward
Il mascheramento IP di Linux utilizzato nello script è un metodo per eseguire una traduzione dell'Indirizzo di Rete (in breve NAT, Network Address Translation) affinché anche macchine alle quali non è stato assegnato un indirizzo internet possano utilizzare tutti i servizi disponibili in rete, grazie ad una workstation Linux che funzioni come gateway. Tutta internet vedrà le richieste dell'intera LAN come se provenissero dalla sola macchina gateway poiché gli indirizzi IP originari dei vari client saranno stati mascherati da iptables.
A questo punto non resta che salvare il file come /etc/init.d/firewall, renderlo eseguibile con il comando:
# chmod +x /etc/init.d/firewall
e automatizzarlo:
# update-rc.d firewall defaults
La nostra macchina Debian è ora un gateway per tutta la rete LAN.
Il proxy server Squid
Un caching proxy server come Squid è un software che si interpone tra un client ed un server web, inoltrando le richieste e le risposte dall'uno all'altro:
- il client si collega al proxy invece che al server web, e gli invia delle richieste;
- il proxy a sua volta si collega al server web e inoltra la richiesta del client;
- il proxy riceve poi la risposta e la inoltra al client.