quinta-feira, 12 de dezembro de 2013

Conceito SSH Tunnel




Funciona como uma VPN, podendo ‘tunelar’ apenas protocolos que usam TCP como transporte.
Inicialmente se faz então uma sessão usando um cliente de SSH, nessa demonstração, irei usar como exemplo o PuTTY, existente tanto para Windows como para Linux, mas isso pode ser realizado também por meio de um SSH padrão do Linux, mudando apenas a sintaxe... Pois o ambos são linhas de comandos e outro gráfico.

O cliente usando o Windows(PuTTY), vai fazer uma conexão de SSH, com um servidor que é visível na internet publica com um endereço IP: 200.200.200.200:22 que pode ser acessado por qualquer máquina na internet pública, o objetivo é acessar o servidor de terminal acessando o RDP (remote desktop protocol - TCP, em outras palavras é a área de trabalho do Windows) em um servidor que não tem visibilidade nenhuma (IP:192.168.200.50:3389).

A partir da sessão criada entre o cliente (Windows/PuTTY) com o servidor (SSH), podemos criar uma conexão com o servidor interno (TPC-RDP). Pelo fato do servidor SSH ter acesso à rede local onde a máquina TPC-RDP se encontra.

Em resolução, a conexão será criada do Cliente SSH -> (Internet) -> Servidor SSH na qual irá passar o tráfego de SSH, que obviamente terá que ter em mãos o usuário e a senha do servidor, no cliente SSH terá que configurar o 'Túnel'(porta 20000) usando o PuTTY. Uma das principais informações seria chegar no servidor SSH, agora realizar a configuração do Túnel, onde terá que saber o IP que seria o destino final onde quer chegar, no caso seria no servidor RDP (IP: 192.168.200.50), conseguindo então a conexão terminal.

Então o destino seria o IP do cliente que é visível apenas para o servidor SSH (200.200.200.200:22), a porta é a padrão do serviço TCP-RDP (3389). Então na criação de outra porta (porta 20000) que pode ser definida aleatoriamente, desde que não esteja ocupada no Cliente.

Contudo para que consiga finalmente chegar na máquina desejada, terá que usar o cliente de acesso de área remoto do seu Sistema o Operacional (Cliente). Assim que abrir o PuTTY na intenção de obter acesso ao RDP terá que informar o endereço do servidor onde quer chegar, então na verdade o IP colocado seria o 'localhost' e a porta 20000 (na qual foi definida), portanto quando fizer acesso para o localhost:20000 o tráfego de RDP vai passar por dentro da sessão de SSH e o papel do 'servidor de SSH' é fazer o acesso por meio de uma conexão  'local área network' (LAN) até o 'Servidor de RDP' onde a partir do LAN não terá mais SSH, somente o RDP, impossibilitando então a visão do RDP à máquina do Cliente, ele vai enxergar o 'Servidor de SSH', então no registro de log será armazenado que o IP 200.200.200.200 está acessando o terminal (TCP-RDP), quando na verdade quem está conectado é o Cliente que abriu uma sessão (Túnel) de SSH e esse Servidor de SSH que consegue ter acesso ao Servidor de RDP por meio de uma conexão LAN consegue chegar nele.

O tráfego retornado passará pela LAN, entra na sessão SSH e retornará ao Cliente, desta forma consegue acessar o serviço interno com o Cliente de SSH (PuTTY), lembrando que para ter uma conexão com o RDP pode ser usada qualquer protocolo TCP, inclusive com POP3, IMAP, TELNET, SMTP e etc... Outra coisa é que não precisa abrir publicamente, basta abrir apenas o acesso SSH e fazê-la (lógico) as configurações de segurança que podem ser colocadas.


O SSH Tunnel é basicamente isso, possibilitando fazer o tunelamento de protocolos por meio de uma sessão criada com o servidor que tem visibilidade e que tem que ter acesso ao destino que queremos que é a rede interna. 

Nenhum comentário:

Postar um comentário