Como fazer o SOCKS em um túnel SSH reverso?

0

Eu tenho duas coisas funcionando, mas gostaria de fazer uma terceira coisa: eu gostaria de usar um Raspberry Pi remoto (rodando Raspbian), que tem um IP dinâmico, como um proxy SOCKS para navegar. Mas eu só posso acessar essa Rpi através de um túnel reverso.

Então eu tenho:

  • minha área de trabalho local (por trás de um IP dinâmico)
  • um Raspberry Pi em outro país (por trás de um IP dinâmico)
  • um servidor dedicado com um IP fixo

Eu tenho controle total sobre todas essas máquinas, mas não dos roteadores na frente da minha área de trabalho local e remoto Raspberry Pi.

O seguinte funciona bem:

ssh -D 5222 [email protected] -N [email protected]

Isso permite navegar usando, digamos, o Firefox ou o Chromium, como se eu estivesse navegando do meu servidor no IP aaa.bbb.ccc.ddd (tudo que eu preciso fazer é configurar o SOCKS para usar o host local com a porta 5222).

O seguinte também funciona bem:

ssh -t [email protected] "ssh rspi@localhost -p 32402"

O Raspberry Pi usa autossh para sempre estabelecer um túnel reverso para o servidor com um IP fixo (neste caso eu sei que está na porta 32402: ele me informa sobre qual porta está usando quando a porta muda, então não há problema ).

Então, com esse "comando double ssh", posso controlar meu Rapsberry Pi a partir de um terminal da minha área de trabalho local, transitando pelo servidor com um IP fixo.

Até aí tudo bem. Agora sabendo que estes dois funcionam bem, eu gostaria de saber qual é o encantamento mágico para me permitir surfar usando o Raspberry Pi remoto como um proxy SOCKS (tendo em mente que eu sempre conheço a porta na qual o Raspberry Pi estabelece o túnel SSH reverso) em)?

Existe alguma modificação / configuração que eu deva fazer no Raspberry Pi remoto ou no servidor dedicado ou é apenas uma questão de configurar corretamente o meu desktop local?

    
por Cedric Martin 07.11.2017 / 17:53

1 resposta

2
desktop$ ssh -J [email protected] -D 5222 -p 32402 rspi@localhost

Hum, isso é tudo que é necessário.

Se o seu ssh é muito antigo para o comando -J , você pode substituir a linha acima por esses dois comandos (em dois terminais ou com opções como -f -N para colocar o primeiro em segundo plano):

desktop$ ssh -L 32402:localhost:32402 [email protected]
desktop$ ssh -D 5222 -p 32402 rspi@localhost

A opção -J é apenas um atalho para evitar a execução do primeiro comando no segundo método anterior.

    
por 07.11.2017 / 18:31