Altere o endereço IP do pacote recebido com iptables

Altere o endereço IP do pacote recebido com iptables

Tenho um servidor (S1) dentro da LAN, onde um roteador está fora do meu controle. Em um servidor, o openvpn está instalado e posso fazer login com ssh nele. Há outro servidor (S2) na LAN e desejo encaminhar a porta S2 para a porta S1.

Se eu fizer

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

e tente conectar S1:8001 do meu computador que tenho na interface LAN do 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 não funciona, pois o S2 não tem rota para o meu computador e não consegue enviar resposta. É possível falsificar a origem em S1 para receber pacotes de volta e depois fazer NAT?

Não é possível alterar rotas no S2, pois se trata de uma Câmera IP com funcionalidades muito limitadas.

Responder1

Configure o SNAT/Masquerading no host ao qual você está se conectando. Para que seu endereço de origem seja modificado para aparecer como o proxy vindo da caixa NAT.

Uma regra tão simples como esta pode fazer o que você deseja.

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

informação relacionada