Configurare un gateway con proxy server e filtro dei contenuti web: differenze tra le versioni

Riga 76: Riga 76:


Le schede di rete andranno configurate nella classica maniera Debian, agendo cioè sul file di configurazione <tt>/etc/network/interfaces</tt>.
Le schede di rete andranno configurate nella classica maniera Debian, agendo cioè sul file di configurazione <tt>/etc/network/interfaces</tt>.
<br/>
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.
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:
Iptables dovrebbe già essere stato installato nell'installazione base di Debian, ma per scrupolo effettuiamo un controllo:
Riga 88: Riga 89:


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:
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:
<pre>
#! /bin/sh
###############################
# Regole Firewall.
###############################
#  eth0: connessa a internet
#  eth1: connessa alla LAN
#  Internet Gateway: 10.0.0.1
############################
# Imposto alcune variabili
############################
ETH0IP="10.0.0.226"
ETH1IP="172.30.0.254"
LOCALNET="172.30.0.0/16"
# Il path di iptables
IPT="/sbin/iptables"
# Interfaccia di rete esterna
IFACE=eth0
########################
# Un messaggio di avvio
########################
echo -n " Loading iptables rules..."
#####################################
# Pulisco la configurazione corrente
#####################################
# Cancellazione delle regole presenti nelle chains
$IPT -F
$IPT -F -t nat
# Eliminazione delle chains non standard vuote
$IPT -X
# Inizializzazione dei contatori (utile per il debugging)
$IPT -Z
##################
# Imposto il NAT.
##################
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#########################
# Abilito IP forwarding
#########################
# Abilita il forwarding di pacchetti non locali
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/conf/all/forwarding
# Ignora finti messaggi di errore ICMP
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Non risponde ai ping inviati al broadcast della subnet
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Non accetta pacchetti ICMP di route redirection
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
</pre>