Estou tentando configurar o encaminhamento de porta para que um IP específico (por exemplo, 1.2.3.4/32) possa executar o SSH por meio de um bastião (por exemplo, 5.5.5.5:2222) em um servidor de aplicativos (10.3.3.3:22). O bastião e o servidor de aplicativos estão sendo executados em uma VPC na Amazon com apenas o bastião exposto à Internet.
Estou usando a seguinte regra no bastião (deixei de fora o IP de origem até que ele funcione):
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 2222 -j DNAT --to 10.3.3.3:22
mas quando tento me conectar, não obtenho resposta.
A execução do tcpdump no bastião mostra que o tráfego está passando, então presumo que estou atingindo os grupos de segurança VPC do servidor de aplicativos e não chegando até a porta 22 nele. Acho que isso está acontecendo porque, embora o bastião tenha permissão para acessar a porta 22 no servidor de aplicativos, o IP 1.2.3.4 não funciona.
Então, minha pergunta é: O NAT-ing como eu o configurei automaticamente muda o IP de origem dos pacotes para que eles pareçam vir do bastião, ou eles conterão o IP de origem original, neste caso 1.2 .3.4?
Se os pacotes contêm 1.2.3.4 como o IP de origem depois de encaminhá-los, como posso alterar o endereço de origem para ser o bastião?
Atualizar
Eu acredito que, especificamente para o SSH, eu poderia configurar o tunelamento SSH, mas também preciso de uma solução semelhante para permitir o acesso à porta 443 em vários servidores de aplicativos diferentes.
Eu já tentei adicionar o SNAT também com:
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 10.2.2.2
mas ainda não funciona (10.2.2.2 é o IP interno do bastião).