Consigo encaminhar o tráfego TCP de entrada de dispositivos IoT que atingem uma porta para outro servidor de destino usando socat usando este comando
socat TCP-LISTEN:5050,reuseaddr,fork TCP:some-random-host-in-another-network.com:5035
ondealgum-host-aleatório-em-outra-rede.comé o IP do servidor de destino. A única coisa que quero mudar é que o servidor de destino veja o tráfego vindo do servidor gateway, não do IP dos dispositivos IoT reais.
Considerando que as tabelas IP lidam com isso no nível do kernel, como faço para lidar com isso? Já tentei usar os comandos abaixo, mas não funciona com IPtables. Estou hospedando uma instância do Ubuntu no EC2 com a porta 5050 permitida para entrada através de grupos de segurança e obtenção de pacotes no 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 me ajude como o iptables será configurado para permitir múltiplas conexões no servidor e transmitir os dados para o servidor de destino apenas alterando o IP visto pelo servidor de destino a partir do servidor de instância/gateway.