SSH Access via tunelamento

1

Eu tenho a seguinte configuração,

Máquina A (Windows 10 e conectada a ISP (X)) e Máquina B (Windows 10 e conectada a ISP (Y)). Ambas as máquinas (A e B) não possuem conexões diretas. A Máquina A tem acesso à Máquina C (Linux Box executando o RHEL na nuvem) e, da mesma forma, a Máquina B tem acesso à Máquina C.

Agora, mantendo esta máquina C como túnel, é possível acessar uma máquina Linux (Ubuntu) rodando na Máquina B (dentro do VirtualBox) da Máquina A? Se sim, como podemos fazer isso? Eu acho que isso pode ser conseguido via tunelamento ssh reverso, mas não tenho certeza sobre os passos.

Para ter mais ideia, a configuração é semelhante à seguinte

                                   PUBLIC IP        SSH (Putty) (Machine C)
Machine A Windows 10 (192.168.1.2) --> ISP(49.xxx.xxx.xxx) ---> (34.xxx.xx.xxx)

                                 PUBLIC IP          SSH (Putty)  (Machine C)
Machine B Windows 10 (192.168.1.15) --> ISP(216.xxx.xxx.xxx) --->(34.xxx.xx.xxx)

Machine B Windows 10 (192.168.1.15) --> Virtual Box (192.168.1.100)

Agora da Máquina A, eu queria acessar 192.168.1.100 (ubuntu Machine), como posso conseguir isso? Existe apenas uma máquina (Máquina C) onde a Máquina A e a Máquina B têm acesso. Existe uma maneira de fazer algum tunelamento e acessar 192.168.1.100 da Máquina A?

Nota: Eu não tenho acesso ao roteador para fazer algum encaminhamento. Então eu tenho que de alguma forma fazer isso acontecer fazendo alguns tunelamentos.

    
por Gokulnath Kumar 28.10.2017 / 09:39

1 resposta

0

Deveria ser possível. Eu posso dar os comandos do Linux, você terá que procurar a configuração equivalente para os clientes SSH que você usa no Windows.

Da VM para B:

ssh -R localhost:2022:localhost:22 192.168.1.15

Isso encaminhará a porta 22 (presumivelmente o SSH) na VM do Ubuntu para a porta 2022 em 192.168.1.15.

De B a C:

ssh -R localhost:3022:localhost:2022 34.xxx.xx.xxx

Isso encaminhará o localhost:2022 (do qual foi encaminhado pelo comando anterior executado na VM) para 3022 em C.

De A para C:

ssh -L 4022:localhost:3022 34.xxx.xx.xxx

Isso encaminhará o localhost:3022 de C para A de 4022.

Assim, temos uma cadeia de encaminhamento:

  • 4022 em A para
  • 3022 em C para
  • 2022 em B para
  • 22 na VM

Finalmente, em A:

ssh localhost:4022

Isso deve se conectar à VM.

  • -L é LocalForward em ssh_config
  • -R é RemoteForward

Esta corrente pode ser encurtada. Por exemplo, dependendo das configurações de rede envolvidas, você poderia fazer de B para C:

ssh -R :3022:192.168.1.15:22 34.xxx.xx.xxx

B encaminhará diretamente 3022 de C para 22 na VM. E em A:

ssh 34.xxx.xx.xxx:3022
    
por muru 28.10.2017 / 09:58