quinta-feira, 7 de julho de 2016

Tunelamento SSH :: Tunelamento de Protocolos e Serviços utilizando o SSH


Uma forma muito bacana, porém não tão amigável para o usuário de criptografar conexões e qualquer tipo de comunicação com qualquer tipo de protocolo é utilizando uma conexão SSH para criar um túnel seguro entre sua máquina e o host em questão.

Por exemplo: Você possui na sua empresa algum serviço de rede de storage, database, consulta ou qualquer que seja rodando em um servidor interno, ou você possui algum painel ou serviço acessível somente dentro da VPN do seu cluster em cloud, porém esses serviços não são liberados para acesso direto a internet por motivos óbvios, e você precisa acessá-los de forma segura mesmo assim. Estranho, não? Pois é...Mas isso é possível.

Porém é possível utilizar um servidor SSH para rotear essa conexão do serviço para uma porta da máquina local, fazendo com que todos os requests e sockets passem antes de qualquer coisa pela conexão encriptada do SSH que você criou com a máquina servidor.

Vamos ao exemplo prático:

Dentro de um ambiente de teste, eu tenho um serviço de Owncloud hospedado em um servidor Web. Por enquanto, esse serviço está somente dentro da minha rede interna e eu posso acessá-lo pelo Browser tranquilamente através do IP http://192.168.0.200/owncloud quando estou na minha rede interna, porém esse mesmo servidor foi aberto externamente somente a porta 22 referente ao serviço SSH.


Para realizar o roteamento pela conexão SSH, basta realizar a seguinte sintaxe:
  # ssh -p [PORTA DO SSH] -L[PORTA DE LISTENING]:[IP/HOST]:[PORTA A SER MAPEADA] [USUARIO]@[HOST]
  # ssh -p 22 -L666:192.168.0.200:80 matheus@192.168.0.200   

Neste caso eu estou criando um LISTENING na porta '666' da MINHA máquina para a porta '80' do HOST '192.168.0.200' utilizando minhas credenciais de usuário 'matheus'. Ou seja, após a autenticação bem sucedida, o conteúdo da porta 80 do host estará disponível na porta '666' da minha máquina, com toda a comunicação sendo encriptada por meio da conexão segura do SSH, como podemos ver a seguir:

http://localhost:666/owncloud



Espero ter ajudado :)

SOBRE O AUTOR

Matheus Fidelis

http://msfidelis.github.io/

Power Ranger, Piloto de Helicópteros e Astronauta da NASA. Desenvolvedor Web PHP com foco em Backend e POO, Linux SysAdmin DevOps e Entusiasta Python. Criou esse site pra contribuir com a comunidade com coisas que aprende dentro de um setor maluco de TI :)

3 comentários:

  1. Excelente, já conhecia o processo de tunelamento via SSH, muito bom mesmo, artigo muito bem explicado, direto e sem complicações, eu custei a aprender sobre esse assunto, se tivesse acesso a esse material alguns anos atraz seria ótimo, meus parabens seu site é excelente, seus artigos ajudam muito, agora me resta aprender a criar uma vpn usando SSH.
    Meus parabens pelo site e pelos artigos.

    ResponderExcluir
    Respostas
    1. Poxa, muito obrigado, mesmo!! É bom receber feedbacks assim :D
      Eu já fiz algo parecido uma vez pra acessar burlar o proxy da minha faculdade, usei o próprio SSH pra fazer isso e mapear a porta. Funciona no mesmo esquema, vou dar uma buscada aqui nas minhas bagunças e faço algo legal assim em breve :D

      Obrigado pela sugestão!

      Excluir
  2. Como sempre um excelente e esclarecedor artigo, parabéns Matheus me ajudando muito....
    @pentest box
    sobre criar uma vpn usando ssh tambem tenho minhas duvidas pois preciso ter acesso a todos endereços internos da minha rede quanto na rede da minha filial, a principio preciso disso para facilitar meu acesso remoto por VNC e abandonar o TeamViewer... ja noz aprende ! rsrs

    ResponderExcluir

 
Nanoshots | Open Source Security, Linux e Tutoriais © 2015 - Designed by Templateism.com