4 069
contributi
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> |