Obiettivo della procedura è reindirizzare le chiamate verso un indirizzo:porta verso un altro indirizzo2:porta2.
Passo primo: abilitare nel kernel l’ip forwarding.
Per rendere la modifica permanente dopo il riavvio, aggiungere/modificare in /etc/sysctl.conf la riga:
net.ipv4.ip_forward = 1
sysctl -p /etc/sysctl.conf
A questo punto dobbiamo solo utilizzare 2 semplici comandi per reindirizzare il traffico:
iptables -t nat -A PREROUTING -d [indirizzo] -p tcp –dport [porta] -j DNAT –to [indirizzo2]:[porta2]
iptables -t nat -A POSTROUTING -d [indirizzo2] -j MASQUERADE
Per chi ha poca familiarità con iptables aggiungo alcuni semplici comandi:
iptables -L -n per vedere l’elenco delle regole (NAT a parte)
iptables -t nat -L -n per vedere l’elenco delle regole di NAT
iptables -f per BUTTARE TUTTE le regole (NAT escluso)
iptables -t nat -f per BUTTARE TUTTE le regole di NAT.
Queste due righe mi hanno tirato fuori dai guai in parecchie occasioni! Spero possano servire anche a voi 😉
ciao, la tua guida è quello che mi serviva, ma volevo chiederti una cosa.
io dovrei reindirizzare tutti i pacchetti indirizzati alla porta 80, attraverso un proxy, installato sulla stessa macchina con impostazioni 127.0.0.1:8123
ho eseguito i primi comandi e le istruzioni di iptables le ho modificate così:
iptables -t nat -A PREROUTING -p tcp –dport 80 -j DNAT –to 127.0.0.1:8123
iptables -t nat -A POSTROUTING -d 127.0.0.1 -j MASQUERADE ( anche se credo non serva )
ma l’indirizzamento dei pacchetti dei browserweb (firefox o chromium, porta 80 ) non funziona dato che non riesco a navigare senza impostare il proxy internamente al browser…
dove sbaglio??
Grazie!
Cambia spacciatore!
Scherzo 😉 Appena ho un attimo ci penso e ti rispondo!
Ciaoooo
Mi ha salvato l vita oggi 🙂
hei! vedo solo ora che ti ho salvato nel giorno del mio compleanno! Destino? Ciao Ciro!