Eu tenho o servidor A na rede A. O servidor A é capaz de se conectar a um host bastion na rede B via ssh. Este host bastion é capaz de alcançar qualquer porta em qualquer servidor na rede B.
De qualquer servidor na rede A, eu gostaria de poder fazer algo como curl server-b
ou ssh server-c
e fazer com que o tráfego seja roteado pelo servidor A, através do bastião, para a rede B e se conectar ao servidor. b e server-c nas portas corretas. Tudo bem se eu tiver que especificar o proxy no comando, por exemplo: PROXY=server-a:8080 curl server-b
etc. (ou a porta no servidor-b ou server-c)
Não consigo criar um servidor na rede B. Tudo o que tenho é o acesso por bastiões.
Suponho que há duas partes para isso que precisam ser configuradas no servidor A, um servidor proxy e um túnel ssh.
Para o servidor proxy eu estou supondo que eu poderia usar algo como o squid, e tê-lo proxy para localhost em qualquer porta que eu estou usando para o túnel ssh.
Mas não tenho certeza do que fazer para o túnel ssh
Eu normalmente iniciaria o túnel com algo como:
ssh -L 8080:<X>:<Y> bastion
Mas X e Y são variáveis ... Eu quero ser capaz de alcançar qualquer servidor na rede B. Então, eu preciso de um tipo de túnel ssh "genérico", e não tenho certeza se existe.
O acesso ao bastião também exige 2FAs, por isso não posso criar dinamicamente um novo túnel ssh sempre que quiser estabelecer uma ligação entre um servidor na rede A e um servidor na rede B.
(Sim, tenho aprovação dos chefes para fazer isso, que não é relevante aqui e não deve ser mencionado)