Tunelamento remoto via SSH por Socks dinâmico ou redirecionamento de porta

Bom dia galera!

 

Hoje trago um método interessante para você que quer usar uma conexão remota mas ela não te dá a camada de segurança necessária. Para isso, ainda bem que existe o SSH. Com este serviço, vamos adicionar uma camada de segurança fazendo os pacotes trafegarem criptografados. Para isso temos duas maneiras de fazer, que seria através de SOCKs dinâmico ou um simples redirecionamento de porta. Claro que para isso acontecer tem que existir um host remoto onde você possa se conectar. Para a coisa ficar um pouco mais didática, vamos supor que você esteja no trabalho e precise fazer algo no computador na sua casa que está lá, LIGADO, com o VNC habilitado e seu serviço de SSH rodando. Se vc acessar diretamente o VNC, ele vai trafegar todas as suas telas de forma aberta onde qualquer um pode interceptar e colher informações (úteis ou inúteis, hehehehe!). Para que possamos evitar isso vamos colocar esses dados dentro de um tunelamento que vai criptografar os dados trafegados. Qual o custo disso? Bem, além do trabalho do VNC de compressão das imagens, existirá também o trabalho de criptografia dos pacotes, porém acredito valer muito a pena. Vamos a melhor parte… A prática… Hehehehehe!!!

Segue abaixo o comando que será executado no seu desktop:

ssh user@ip-remoto -f -N -Lport:ip-local:port

Exemplo prático:

ssh jose@123.213.10.90 -f -N -L5900:12.21.10.90:5900

Pronto! Dessa maneira você está dizendo para o seu desktop que tudo o que for para a porta 5900 ele vai entregar no endereço 123.213.10.90 também na porta 5900 para ele tratar. Agora o tunelamento está pronto para ser usado. Mas e aí, ficou na dúvida com essas “letrinhas” aí né?! Bem, a opção “-f” coloca o processo em background, liberando o seu terminal. Já o “-N” serve para que nenhum comando seja executado remotamente, somente para ser executado o tunelamento (forwarding) em sí, mas essa opção só serve para protocolo na versão 2. O “-L” é exatamente para indicar o tunelamento (forwarding) dizendo que os dados entregues naquela porta local serão encaminhados para a porta remota. Após efetuar essa conexão, basta abrir o cliente do VNC e colocar o IP que você usou na conexão (123.213.10.90) e a porta 1, ficando desta maneira 127.0.0.1:1. Pronto, efetuado o seu tunelamento e adicionada sua camada de segurança para o uso do VNC. Ah, lembrando que tem que ser tudo junto no parâmetro -L.

Bem, esse foi o primeiro método que vimos, que é o redirecionamento direto. Agora vamos ver a mesma idéia, só que dessa vez através de SOCKs dinâmico. O processo é muito parecido porém vamos colocar numa outra situação hipotética. Supomos que você está em um lugar que tem a internet com certas limitações e você precisa usar o acesso para fazer uma pesquisa para solução de algum problema. Com este método os seus problemas acabaram. Vamos lá!

Segue abaixo o comando que será executado no seu desktop:

ssh user@ip -f -N -D port

Exemplo prático:

ssh jose@123.213.10.90 -f -N -D 6666

Agora que você já está conectado, basta ir no seu navegador, procurar as configurações de redes e no painel onde tem a configuração de proxy, colocar na caixa que está escrito SOCKs o IP 127.0.0.1 e na porta a mesma que você usou no comando, que no caso do exemplo foi a 6666. Não esqueça de selecionar a opção “Socks V5” caso a mesma exista (Estou baseado nas configurações do Firefox). Só para decifrar as letrinhas, o “-D” é utilizado para definir uma porta de SOCKs dinâmico que funciona bem parecido com o encaminhamento de porta explicado acima.

Bem, acho que é só isso. Simples e prático. Muito útil para o dia a dia e salva a pele em momentos mais complicados.

Agradecimento especial ao meu Master Jedi, Vagner Fonsseca.

 

Até a próxima pessoal!!!