Túnel SSH sobre vários saltos usando massa

13

Eu tenho uma situação em que quero me conectar a uma máquina Linux executando o VNC (vamos chamá-lo de VNCServer) que está por trás de duas máquinas Linux consecutivas, ou seja, para ssh no VNCServer, tenho que ssh no Gateway1 do meu laptop e depois no shell Gateway1 Eu ssh no Gateway2 e, a partir desse shell, finalmente ssh no VNCServer. Não consigo alterar o design da rede e o fluxo de acesso Laptop -> Gateway1 -> Gateway2 -> Servidor. Não tenho privilégios de root no Gateway1 e todas as portas, exceto 22 e 5901, estão fechadas.

Existe uma maneira de iniciar um visualizador VNC no meu laptop e acessar o VNCServer? Entendo que isso pode ser feito usando os recursos de encapsulamento ssh e tenho massa no meu laptop Windows (desculpe, nenhum Linux, Cygwin etc. pode ser instalado no laptop de trabalho). Qualquer ajuda será muito apreciada, pois isso tornaria minha vida mais fácil!

xkcd
fonte

Respostas:

19

O Putty suporta túneis ssh; se você expandir a árvore Connection, SSH, verá uma entrada para túneis.

Os túneis locais produzem uma porta de host local na sua máquina Windows que remota para o endereço IP e a porta que você especificar. Por exemplo, quando estou tentando fazer o RDP para um desktop em minha casa, geralmente escolho uma porta local aleatória, algo como 7789, depois coloco o endereço IP local do desktop (1.2.3.4:3389) como remoto hospedeiro. Certifique-se de clicar em "Adicionar" e depois em "Aplicar". Nesse ponto, quando você fizer o PDR para 127.0.0.1:7789, você se conectará ao 1.2.3.4:3389 na sessão de massa.

É aí que entra a diversão. Se você configurar um túnel de porta na sua caixa intermediária, configurando a porta local especificada como porta remota na massa, você poderá saltar pela sua massa, através da caixa intermediária, seu destino final. Você ainda precisará fazer algumas conexões ssh, mas poderá atravessar o vnc ou o rdp diretamente do sistema Windows assim que estiver definido, que é o que acredito que você deseja fazer.

EXEMPLO

  1. Vá para o painel de túneis no Putty (Conexões-> SSH-> Túneis acessados ​​no menu de contexto, se a sessão ssh já estiver ativa, ou na tela de conexão inicial, quando estiver iniciando o putty)
  2. Crie um encapsulamento com a fonte local 15900 e a origem remota 127.0.0.1:15900
  3. Conecte (se ainda não estiver conectado) ao Gateway1.
  4. No Gateway1, ssh -L 127.0.0.1:15900:VNCServerIP:5900 user @ Gateway2
  5. Depois que o ssh para o Gateway2 estiver ativo, tente vnc para 127.0.0.1:15900 - agora você deve ver a tela do VNC do outro lado!

BÔNUS ADICIONADO - poucas pessoas sabem disso, mas esse processo também pode ser usado para proxy de tráfego IPv6 / IPv4. O SSH não se importa com o protocolo usado para os túneis, para que você possa acessar apenas hosts IPv6 a partir de um sistema somente IPv4, dado que o servidor ssh é de pilha dupla (possui endereços IPv4 e IPv6).

Peter Grace
fonte
15

Existe uma alternativa se você deseja usar o PuTTY para os dois saltos. Neste exemplo, estamos pulando do Gateway # 1 (10.0.1.123) para o Gateway # 2 (10.0.1.456) para a porta 80 em 10.0.1.789.

  1. Primeiro, crie o salto para o gateway nº 1. Primeiro, configure a conexão com o primeiro servidor. Configure um túnel para o segundo gateway em Conexão> SSH> Túneis. Neste exemplo, estamos encaminhando a porta 2222 para o segundo gateway.

    conectar ao servert

    configurar túnel

  2. Agora vamos configurar o segundo salto. Vamos passar pelo primeiro gateway até o próximo gateway e encaminhar a porta de configuração no segundo gateway. A conexão é com o host local na porta 2222. Isso fará um túnel através da conexão ssh em execução para o segundo salto. Nesta conexão, configuramos uma porta para frente da porta 3333 para 10.0.1.789.

    insira a descrição da imagem aqui

    insira a descrição da imagem aqui

  3. Agora abra um navegador e navegue até 127.0.0.1:3333 e você fará um túnel através das duas conexões SSH para 10.0.1.789:80

Scott
fonte
1
Existe uma maneira de conseguir o mesmo usando uma única sessão de massa com dois túneis configurados no menu SSH -> Túneis? Dessa forma, você só precisa abrir uma instância de massa de vidraceiro?
18716 ulrich