Configurare Ubuntu come gateway
Per impostare Ubuntu come gateway utilizziamo iptables
Innanzi tutto impostiamo l’inoltro degli IP
1 |
sudo nano /etc/sysctl.conf |
E impostiamo il valore net.ipv4.ip_forward a 1 ( è possibile anche eseguire il veloce comando echo “1” > /proc/sys/net/ipv4/ip_forward ma poi la modifica si perde al riavvio della macchina )
Facciamo rileggere il file /etc/sysctl.conf
1 |
sysctl -p |
Ora abilitiamo il NAT e richiamiamolo dal file /etc/rc.local in maniera che venga richiamato ad ogni boot
1 |
sudo nano /etc/rc.local |
e inseriamo le seguenti righe
1 2 |
modprobe ip_conntrack modprobe iptable_nat |
Se è richiesto usare connessioni FTP impostare anche queste due righe
1 2 |
modprobe ip_conntrack_ftp modprobe ip_nat_ftp |
Ora occorre impostare le regole del firewall, impostiamo da subito il mascheramento sull’interfaccia WAN ( eth1 in questo caso è la scheda di rete collegata al nostro modem/router )
1 |
sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE |
Abilitiamo il forward
1 |
sudo iptables -t filter -P FORWARD ACCEPT |
Diamo poi i permessi a se stesso e ad eventuali connessioni già stabilite
1 2 3 |
sudo iptables -A INPUT -i lo -j ACCEPT sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT |
Diamo i permessi solo alla nostra LAN per evitare che da fuori si colleghino
1 |
sudo iptables -A INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT |
Dopo di chè sta solo nel giocare con le regole di iptables per abilitare o meno i servizi che ci servono.
Ovviamente le regole qui sopra se riavviamo la macchina spariscono, quindi serve salvare uno script e farlo eseguire al boot richiamato magari da /etc/rc.local o meglio quando la scheda di rete viene attivata editando /etc/network/interfaces e aggiungendo l’opzione post-up
1 2 3 4 5 6 7 |
auto eth0 iface eth0 inet static address 192.168.1.1 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 post-up iptables-restore < file-con-le-nostre-regole |
In questo caso le regole devono essere senza la chiamata a iptables, per ottenere il file adatto basta fare un dump prima
1 |
sudo iptables-save > file-con-le-nostre-regole |