Tornando o proxy disponível no servidor remoto através do tunelamento ssh

4

Eu sei que posso usar o tunelamento ssh para criar um "proxy" na minha máquina para que eu possa fazer todo o tráfego gerado localmente passar por um servidor remoto. Assim:

$ ssh -D 12345 myuser@remote_ssh_server

Mas e se eu precisar criar um "proxy" no servidor remoto, para que todo o tráfego que eu enviar para ele passe pela minha máquina local? Isso é possível com ssh?

Essencialmente, eu quero usar minha conexão de internet local com alguns comandos específicos para rodar remotamente, já que o servidor não tem acesso direto à internet.

    
por Filipe Correia 28.08.2014 / 13:18

1 resposta

5

A maneira mais simples de fazer isso é uma porta e um host de cada vez. Por exemplo, para encaminhar o tráfego do remoto: 8001 para intraserver: 80,

ssh -R 8001:intraserver:80 myuser@remote

Mas se você quiser encaminhar todo o tráfego do remoto e tiver um servidor ssh em execução no seu host local,

ssh -R 2200:localhost:22 myuser@remote ssh -D 10800 -p 2200 localhost

Desempacotando isso:

  • -R 2200:localhost:22 configura um encaminhamento do remoto: 2200 para localhost: 22.
  • ssh -p 2200 localhost executa ssh no remoto, para conectar-se ao remoto: 2200 e assim de volta ao localhost: 22 (encapsulado na primeira conexão ssh).
  • -D 10800 tunnels SOCKS do remoto: 10800, através da conexão do remoto de volta ao host local.
por 28.08.2014 / 14:04