Como redirecionar o site em rede restrita por meio do túnel ssh

0

Eu estabeleci um túnel ssh reverso em uma rede restrita para um servidor aws , ou seja, para acessá-lo, eu ssh no servidor aws e de lá eu obtive acesso à máquina na rede restrita em algum servidor personalizado porta.

Nesta rede restrita, existem dispositivos que podem ser configurados através de um navegador da Web.

Eu acredito que eu poderia fazer algo como ssh -R 8080:deviceIP:80 user@aws para ser encaminhado para aws machine mas então eu ainda não posso acessá-lo (exceto pelo X remoto que é terrivelmente lento). Como posso canalizar deviceIP:80 para meu navegador em casa via aws ?

Eu tentei o comando ssh acima e direcionei o brower no meu computador para aws:8080 , mas isso não carregou nenhuma página ...

    
por cerr 06.11.2018 / 14:43

2 respostas

3

Os túneis SSH são úteis para cruzar redes inseguras, aproveitando a criptografia de ponta a ponta, conectando dois end-points que ocupam redes confiáveis distintas.

EDITADO

Tanto quanto eu posso dizer (graças aos comentários), o que você tem é:

  • Um host-A local: seu localhost , em sua rede local (provavelmente por trás do firewall / NAT)
  • Um host-B publicamente acessível: o aws server
  • Um host-C acessível não publicamente: na rede remota restrita (provavelmente por trás do firewall / NAT)
  • Um host-D acessível publicamente: aquele a que você se refere como deviceIP , que escuta na porta 80 e está na rede restrita remota

Se você quiser conectar seu host A ao host D, permitindo que o seu navegador o alcance na porta 80 , será necessário:

1) Um túnel do host-A para o host-B, que:

  • Permite que o host-A ouça na porta 8080
  • Envia tráfego dessa porta pelo túnel
  • No host-B ( aws ), redireciona o tráfego proveniente do túnel para a porta local (ou seja, no host-B) 15872 (tirei de seus comentários; você pode escolher qualquer porta disponível; garantir que seja o mesmo em todos os comandos)
# Execute on host-A
$ ssh -L 8080:localhost:15872 user@host-B

2) Um túnel do host-C para o host-B, que:

  • Permite que o host-B ouça na porta 15872
  • Envia tráfego dessa porta pelo túnel
  • No host-C (seu servidor linux), redireciona esse tráfego para a porta 80 no host-D
# Execute on host-C
$ ssh -R *:15872:host-D:80 user@host-B

Desta forma, as solicitações feitas para o host-A na porta 8080 serão encapsuladas para o host-B, redirecionadas para a porta 15872 no mesmo host-B, encapsuladas para o host-C e redirecionadas no host-C para porta 80 do host-D.

    
por 07.11.2018 / 11:03
2

Você não redireciona um servidor para o seu navegador - você redirecionaria as solicitações do seu navegador para o servidor da web. É um proxy para frente, não um reverso que você precisa.

Isso criará um soquete de escuta na porta do seu cliente 8080 e encaminhará esse encaminhamento pelo ssh tunnel para deviceIP port 80:

ssh -L 8080:deviceIP:80 user@aws
    
por 06.11.2018 / 15:13