Suponha que existam hosts A
e B
. A
tem permissão de acesso SSH B
com base em seu endereço IP. Considere agora outro host C
. C
não tem acesso a B
, mas se pudéssemos rotear seu tráfego A
, então C
poderíamos acessar B
. O problema é: como fazer esse tipo de tradução de endereços? Não há dois hosts na mesma LAN.
Meu primeiro pensamento foi fazer SNAT com iptables em A
:
iptables -t nat -A POSTROUTING --protocol tcp --source C --destination B --sport 7777 --dport 22 -j SNAT A
ou seja, C
deveria tentar conectar, A:7777
mas percebi que rotear o pacote antes do SNAT estraga tudo, portanto a tradução do endereço deve ser feita em PREROUTING - o que infelizmente é impossível. Outra ideia foi montar uma VPN, mas acho muito complicado. Existe uma maneira legal de fazer isso, de preferência com algo tão limpo quanto o iptables?