domingo, 14 de outubro de 2012

SSH reverso.

Muitas vezes precisamos dar acesso para outra pessoa em uma máquina mas o problema é que essa máquina não tem um "IP Válido" e nem nos é permitido instalar algo como Teamviewer ou VNC por ser um servidor e, algumas vezes, não ter ambiente gráfico.
Poucas pessoas conhecem um sistema chamado de SSH Reverso, através dele podemos abrir uma conexão para alguém a partir do servidor que está dentro de uma rede sem "IP Válido". Claro, a outra máquina tem que ter uma forma de ser acessada na internet. Sugiro que quando não possuírem "IP Válido" disponível utilizem um sistema de DNS Dinâmico para terem endereçamento real na internet, mas não se esqueçam de manter um bom firewall.

Para a explicação vamos nomear as máquinas envolvidas:
    Servidor = Será a máquina que está dentro da rede interna e da qual vamos abrir o túnel reverso para permitir que a outra máquina tenha acesso.
     Desktop = Será a máquina com endereço válido (IP ou DDNS) o qual será usado para acessar o servidor. Usaremos nele a nomenclatura de DDNS desktop.dom.info


O SSH Reverso funciona da seguinte maneira:

1- Do SERVIDOR digitaremos o seguinte comando:
     # ssh -R 2222:localhost:22  desktop.dom.info -l root

Onde:
     -R = Determina que será usado SSH Reverso;
     2222 = É a porta que será ativada no "desktop.dom.info";
     22 = É a porta utilizada pelo SSH-Server para receber a conexão de volta;
     -l root = Determina que será utilizado o usuário root para esse acesso.

2- Após digitar a senha e efetuar o acesso ao desktop.dom.info abra um terminal no desktop.dom.info e digite o seguinte comando:

$ ssh -p 2222 root@localhost 

Onde:
     -p 2222 = Indica a porta que foi aberta no desktop.dom.info para o túnel;
    root = É o usuário que efetuará a conexão, pode ser qualquer outro previamente definido;
    localhost = É a máquina local que, devido ao túnel está redirecionando tudo da porta 2222 para o Servidor.

Pronto, a partir de agora você está no servidor mesmo sem ele ter "IP Válido"