Puedo reenviar el tráfico TCP entrante desde dispositivos IoT que llegan a un puerto hacia otro servidor de destino usando socat usando este comando
socat TCP-LISTEN:5050,reuseaddr,fork TCP:some-random-host-in-another-network.com:5035
dóndealgún-host-aleatorio-en-otra-red.comes la IP del servidor de destino. Lo único que quiero cambiar es que el servidor de destino vea el tráfico que ingresa desde el servidor de puerta de enlace, no desde la IP de los dispositivos IoT reales.
Teniendo en cuenta que las tablas de IP manejan esto a nivel de kernel, ¿cómo lo manejo? Ya intenté usar los siguientes comandos pero no funciona con IPtables. Estoy alojando una instancia de Ubuntu en EC2 con el puerto 5050 permitido para la entrada a través de grupos de seguridad y la recepción de paquetes en tcpdump.
iptables -t nat -A PREROUTING -p tcp --dport 5050 -j DNAT --to-destination some-random-host-in-another-network.com:5035
iptables -t nat -A POSTROUTING -d some-random-host-in-another-network.com -p tcp --dport 5035 -j MASQUERADE
Por favor, ayúdenme a saber cómo se configurarán iptables para permitir conexiones múltiples en el servidor y transmitir los datos al servidor de destino cambiando solo la IP vista por el servidor de destino a partir del servidor de instancia/puerta de enlace.