Cambiar la dirección IP del paquete entrante con iptables

Cambiar la dirección IP del paquete entrante con iptables

Tengo un servidor (S1) dentro de la LAN, donde un enrutador está fuera de mi control. En un servidor está instalado openvpn y puedo iniciar sesión con ssh. Hay otro servidor (S2) en la LAN y quiero reenviar el puerto del S2 al puerto S1.

Si lo hago

sudo iptables -t nat -A PREROUTING  -p tcp -m tcp -d S1 --dport 8001 -j DNAT --to-destination S2:80

y luego intento conectar S1:8001 desde mi computadora que tengo en la interfaz LAN de S1:

IP **my_vpn_ip**.48174 > S2.80: Flags [S], seq 4243753453, win 14600, options [mss 1368,sackOK,TS val 89266048 ecr 0,nop,wscale 7], length 0

Obviamente no funciona, ya que S2 no tiene ruta a mi computadora y no puede enviar una respuesta. ¿Es posible falsificar la fuente en S1 para recuperar paquetes y luego realizar NAT?

No es posible cambiar de ruta en S2, ya que es una cámara IP con funcionalidad muy limitada.

Respuesta1

Configure SNAT/Masquerading en el host al que se está conectando. Para que su dirección de origen se modifique para que aparezca como el proxy proveniente del cuadro NAT.

Una regla tan simple como esta podría hacer lo que quieras.

iptables -t nat -A POSTROUTING --destination S2 -j MASQ

información relacionada