Premetto che ho avuto non poche difficoltà nel trirar su questa configurazione, tra problemi di dns e dhcp.
L’intenzione è di far in modo che il server ubuntu risponda come gateway tra due schede di rete, eth0 e eth1.
eth0 e’ collegata al modem/router adsl ed eth1 invece e’ collegata allo switch che serve la rete LAN (o in alternativa un cavo di rete “cross” che serve un solo PC connesso ad eth1) con il dhcp abilitato in questa porta.
quindi la rete sara’ cosi’ configurata:
linea ADSL > Router ADSL-> “eth0-Server Gateway-eth1” > rete LAN
Parametri gateway (esempio):
IP uscita da modem/router: 192.168.1.1
IP scheda eth0: 192.168.1.20 – Netmask: 255.255.255.0
IP scheda eth1: 192.168.4.1 – Netmask: 255.255.255.0
DNS primario: quello del vostro provider (oppure 212.216.112.112)
DNS secondario: quello del vostro provider (oppure 212.216.172.62)
Parametri LAN (da configurare sugli altri PC della rete senza dhcp abilitato lato server):
indirizzi IP: 192.168.1.x (da 2 a 253)
Gateway: 192.168.4.1
Netmask: 255.255.255.0
DNS primario: quello del vostro provider (oppure 212.216.112.112)
DNS secondario: quello del vostro provider (oppure 212.216.172.62)
Lanciare la console terminale e digitare (da root) i seguenti comandi di configurazione della rete del nostro gateway:
sudo ifconfig eth0 192.168.1.20 netmask 255.255.255.0 up
sudo ifconfig eth1 192.168.4.1 netmask 255.255.255.0 up
sudo route add default gw 192.168.1.1 eth0
sudo route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.20
editiamo quindi i parametri per i DNS aprendo il file di configurazione
( Attenzione qui perche il resolv.conf puo cambiare se viene abilitato il dhcp lato server naturalmente).
sudo nano /etc/resolv.conf
dentro copiamo quanto segue (sostituite eventualmente gli IP con quelli del vostro provider):
nameserver 212.216.112.112
nameserver 212.216.172.62
Creiamo uno script di avvio automatico dentro inseriamo le seguenti righe
sudo nano /etc/init.d/gateway.sh
#!/bin/bash PATH=/usr/sbin:/sbin:/bin:/usr/bin # # delete all existing rules # iptables -F iptables -t nat -F iptables -t mangle -F iptables -X # Always accept loopback traffic iptables -A INPUT -i lo -j ACCEPT # Allow established connections, and those not coming from the outside iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #iptables -A INPUT -m state --state NEW -i ! eth0 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED # ALLOW outgoing connections from the LAN side iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT iptables -A FORWARD -o eth0 -i eth1 -s 192.168.4.0/24 -m conntrack --ctstate NEW -j ACCEPT iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # Maquerade. iptables -t nat -F POSTROUTING iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # Don't forward from the outside to the inside. #iptables -A FORWARD -i eth0 -o eth0 -j REJECT # Enable routing echo 1 > /proc/sys/net/ipv4/ip_forward
salviamo e chiudiamo l’editor
poi diamo i permessi di esecuzione allo script:
sudo chmod a+x /etc/init.d/gateway.sh
da Webmin in Sistema Bootup and Shutdown dovrebbe comparire il nome gateway.sh accedendoci e selezionando Start at boot time SI, al riavvio lo script verra attivato!
poi editiamo il file “/etc/sysctl.conf” per abilitare il forwarding dei pacchetti verso la LAN:
nano /etc/sysctl.conf
e inseriamo o modifichiamo se gia esiste la seguente linea come qui sotto riportato:
net.ipv4.ip_forward = 1
Salviamo e chiudiamo l’editor, eseguiamo un bel:
service network restart
a questo punto (se non ci sono stati intoppi si puo gia navigare attraverso il server).