LogMeIn no Linux
Você já deve ter ouvido falar do LogMeIn, um programa de administração remota de máquinas Windows via Web que permite trabalhar de modo seguro via proxy (https). No entanto, não existe um “LogMeIn para Linux”?
Na verdade não. Mas existe uma técnica muito interessante que combina Your Freedom, corkscrew, x11vnc e SSH, que resulta em uma solução similar ao LogMeIn.
“Os quatro manos”
- Your freedom - Serviço de tunelamento de proxy seguro (https), com clientes para Windows e Linux (requer cadastro gratuito);
- Corkscrew - Tunela o SSH via proxy (vamos usá-lo combinado com o Your Freedom);
- x11vnc - VNC para Linux (testei outros, e só esse deu certo);
- OpenSSH - Esse você já conhece, o shell seguro do Unix.
Modo de Fazer
Ao iniciar o Your Freedom pela primeira vez, um assistente te pedirá o login e a senha que você cadastrou no site e o endereço do servidor proxy da rede. Após configurado estes e escolhido o servidor YF mais rápido, clique em Ligar e a conexão será iniciada, criando um servidor proxy na sua máquina local (127.0.0.1:8080).
Só tem dois problemas: 1) A conexão tem uma banda de 64k (alguém se lembra da discada?); 2) O servidor YF é programado para derrubar a conexão após uma hora, sendo obrigatória uma reconexão. Se alguém tiver uma opção melhor (exceto o UltraSurf, que só funciona no Windows)…
De posse dessas informações, ao instalar o Corkscrew (a partir dos fontes somente), edite o arquivo ~/.ssh/config colocando a seguinte linha:
ProxyCommand /usr/bin/corkscrew 127.0.0.1 8080 %h %p
Vou supor que você usou ./configure –prefix=/usr para que o executável corkscrew fosse compilado em /usr/bin.
Acessando via SSH
Com esses dois programas configurados, abra um terminal e faça o teste:
usuario@local:~$ ssh -C usuario@endereco.fora.da.rede.com
Se te pedir a senha, está tudo certo. Você pode aproveitar a conexão para configurar o VNC na máquina alvo.
Configurando o VNC na máquina alvo
Vou considerar que você instalou o x11vnc, seja pelos fontes ou pelo pacote de sua distribuição.
Seja na própria máquina alvo, seja via acesso remoto, você pode adicionar a seguinte linha:
/usr/bin/x11vnc -display "$DISPLAY" -forever -passwd SUA_SENHA &
Você pode escolher em qual arquivo adicionar a linha, de acordo com o seu gerenciador de login gráfico, lembrando que os caminhos/arquivos variam conforme a distribuição Linux:
- GNOME (GDM): /etc/X11/gdm/Init/Default (ou :0)
- KDE (KDM): /opt/kde/share/config/kdm/Xsetup (ou /etc/kde3/kdm/Xsetup)
- XDM: /etc/X11/xdm/Xsetup (ou Xsetup_0)
Reinicie o gerenciador de login para que as mudanças tenham efeito.
usuario@endereco.fora.da.rede.com:~$ sudo killall xdm # ou kdm, gdm,...
Agora, o pulo do gato
Com outro terminal, ou com o mesmo após deslogado da máquina alvo (o cliente VNC deve estar instalado em sua máquina), digite o seguinte comando:
usuario@local:~$ vncviewer -via endereco.fora.da.rede.com localhost
A máquina alvo te pedirá duas senhas, uma para o acesso SSH e outra para o VNC (SUA_SENHA). Depois disso…
Aí está! Sua máquina alvo diante dos seus olhos. Interessante é que o próprio cliente VNC faz o tunelamento automático do SSH para você (entre o comando acima, cancele com Ctrl+C e veja o resulatado).
Com a ajuda dos “quatro manos”, conseguimos implementar uma alternativa ao LogMeIn para Linux. Agora é a sua vez de tentar.
Veja também: Utilização do x11vnc para administração remota de computadores Linux
[Atualização 23/05/08]
Se você preferir, ao invés de usar os “quatro manos”, também pode usar o SSH com X11 forwarding. Desaconselho para conexões com pouca banda disponível (como a banda do Your Freedom).
Na Internet existe vários tutoriais de como configurar o SSH, o X11, o XDMCP e o Gerenciador de Login para acesso com forwarding, lembrando que o X11 é um ambiente gráfico multisessão (não tem como interfirir na sessão de outro usuário, como no VNC). Para eu compor este artigo, o Google foi essencial.
Basta digitar dois comandos:
usuario@local:~$ ssh -C -Y usuario@endereco.fora.da.rede.com # A senha é de praxe
usuario@endereco.fora.da.rede.com:~$ Xnest -query localhost :1 # Não pode ser :0, tem que ser :1 ou superior
E pronto! Sua máquina local acessada remotamente por detrás de um firewall, agora com X11.
Etiquetas: projetos, Software Livre, TI, web

