Suponha que haja hosts A e B . A tem permissão de acesso SSH a B com base em seu endereço IP. Considere agora outro host C . C não tem acesso a B , mas se pudermos direcionar o tráfego por meio de A , C poderá 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
significa que C deve tentar se conectar a 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. Outro pensamento foi configurar uma VPN, mas acho que é muito complicado. Existe uma maneira legal de fazer isso, de preferência com algo tão limpo quanto o iptables?