tunelamento SSH através de um roteador busybox

1

Eu tenho um roteador busybox e consigo acessar o console usando o telnet & Eu também tenho acesso à interface da web.

A minha pergunta é: como posso criar um túnel ssh a partir da minha rede local através do router para poder aceder remotamente ao meu computador? Estou procurando uma solução baseada em linha de comando & Também estou ciente do fato de que os roteadores têm pouca memória e um conjunto muito limitado de utilitários. Mas embora seja um sistema linux minimalista, tendo apenas um pequeno subconjunto de ferramentas, mas eles têm utilitários como route, iptables, etc., então acho que pode ser possível.

Além disso, meu conhecimento do sistema busybox é bastante baixo, por isso, se estiver errado em algum lugar, sinta-se à vontade para me corrigir.

    
por irenicus09 02.07.2013 / 13:38

2 respostas

2

ssh -L é o que você está procurando.

Vamos desenhar uma imagem com 4 hosts no total, A, B, X, Y.

  • A é a máquina que tem seu cliente regular, digamos, navegador da Web
  • B é sua máquina com capacidade para SSH local mais próxima, que pode ser o mesmo que A.
  • X é sua máquina com capacidade SSH remota
  • Y é a máquina que hospeda o serviço (digamos, servidor da web) que você deseja acessar a partir do A. Y pode ser o mesmo host que o X.

Em B:

ssh -Nn -L 8080:Y:80 username@X

Isso estabelece um túnel:

B:8080 <--- encrypted over ssh ---> X < ---- unencrypted ----> Y:80

Então A pode se conectar a B: 8080 e ver Y: 80:

A <--- unencrypted ---> B:8080 <--- encrypted over ssh ---> X < ---- unencrypted ----> Y:80

Se A é a mesma máquina que X e B é a mesma máquina que Y, então as pernas não criptografadas nunca passam por uma rede real; seu navegador se conecta ao localhost: 8080 (início do túnel); o servidor ssh no X conecta-se ao localhost: 80.

    
por 02.07.2013 / 15:22
1

Eu desenhei alguns esboços

A máquina em que o comando ssh tunnel é digitado chama-se »seu host« .

Introdução

  1. local: -L Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.

    ssh -L sourcePort:forwardToHost:onPort connectToHost significa: se conectar com ssh para connectToHost , e encaminhar todas as tentativas de conexão à Local sourcePort a porta onPort sobre a máquina chamada forwardToHost , que pode ser alcançado a partir da máquina connectToHost .

  2. remoto: -R Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.

    ssh -R sourcePort:forwardToHost:onPort connectToHost significa: conecte-se com ssh a connectToHost e encaminhe todas as tentativas de conexão para o remoto sourcePort para a porta onPort na máquina chamada forwardToHost , que pode ser alcançado a partir de sua máquina local.

Seu exemplo

O computador doméstico executa o linux

Esta é a imagem número três dos meus esboços. O seu computador de casa está executando o linux? E você tem um remotehost em algum lugar na internet que tem ssh e você pode simplesmente acessá-lo do seu computador em casa usando

ssh remotehost

Então, você certamente instalou o ssh e nem precisa do roteador para criar seu túnel. Use o seguinte comando no seu computador (a caixa azul chamada yourhost representa seu computador doméstico):

ssh -R 11111:localhost:22 remotehost

Agora, se você está sentado no remotehost e deseja se conectar ao seu computador doméstico via ssh, use este comando

ssh -p 11111 homeuser@localhost

que irá iniciar uma conexão ssh para o verde porta 11111 no seu remotehost, que é encaminhado através do túnel ssh (que ainda passa seu roteador busybox) e se conectar à rosa porta 22 do localhost do seu computador de casa ( qual é o seu próprio computador em casa).

É claro que o busybox também pode estabelecer o túnel

Esta é a imagem número 4 dos meus esboços. Você está agora sentado (ou logado) no busybox. Então, yourhost é o roteador do busybox.

ssh -R 11111:nearhost:22 remotehost

Agora, quando você está no remotehost, você digita novamente

ssh -p 11111 busyboxuser@localhost

para se conectar à porta verde 11111 , que é então encaminhada através do túnel para o busybox, e a partir daí é conectada à porta cor-de-rosa 22 do nearhost (representando seu computador doméstico).

    
por 14.03.2014 / 18:57