Tutorial: Acessando remotamente via VNC um computador com linux que está protegido por um firewall que não é controlado por você

Posted by Paulo Arruda | Posted in Linux | Posted on 14-07-2009

Tags:, , , ,

0

Sim, eu tenho controle sobre o firewall da minha empresa. Mas a questão é: e se eu não tivesse? E se eu fosse um funcionário de outro departamento senão o de informática e precisasse terminar um serviço de casa? Se minha estação de trabalho fosse Windows seria fácil. A solução seria usar o LogmeIn. Mas FELIZMENTE, é Ubuntu. Então vamos lá.

Ingredientes

1. PC no trabalho, com o Ubuntu e o compartilhamento de Área de Trabalho ativado:

Sistema > Preferencias > Área de Trabalho Remota

Deixe como na figura abaixo, setando sua própria senha, é claro:

Preferências da Área de Trabalho Remota

Não esqueça de setar uma senha!

2. PC da minha casa, com Ubuntu e os pacotes openssh-server e xtightvncviewer instalados

Como root, instale os pacotes:

apt-get install openssh-server xtightvncviewer

Procedimento

A mágica funciona assim: você faz uma conexão ssh para o PC da sua casa. Com alguns parâmetros passados na linha de comando do ssh, você consegue fazer com que o ssh-server da sua casa fique escutando em uma determinada porta XXXX com o IP 127.0.0.1, e todo tráfego para o IP 127.0.0.1 na porta XXXX no PC da sua casa será direcionado pelo túnel ssh que liga o PC da sua casa ao PC do seu trabalho (em uma porta específica).

Pareceu complicado? Vamos ver na prática!

1. Do PC do seu trabalho, execute o comando:

ssh -C -N -R 5905:localhost:5900 seuusuario@ip.da.sua.casa

E misteriosamente, nada acontece… o prompt fica piscando…

A explicação:

-C Ativa a compressão dos dados trafegados pela conexão do ssh

-N Faz com que nenhum comando seja executado ao estabelecer a conexão. Ou seja, você não vai cair num shell na sua casa

-R 5905:localhost:5900 Aqui está a mágica. Esta opção diz que todo tráfego realizado em direção ao PC da sua casa, na porta 5905, será redirecionado pelo túnel para o PC do seu trabalho, na porta 5900 (porta padrão do VNC)

Obs.: Por default, o openssh-server da sua casa vai ficar escutando na porta que você indicou apenas na interface de loopback (127.0.0.1 ou localhost)

2. Agora vá pra casa! Quando chegar lá, presumindo que você também instalou o xtightvncviewer como eu escrevi, rode o comando:

xtightvncviewer -encodings tight -quality 7 -compresslevel 9 -depth 8 localhost::5905

Digite a senha que você setou nas Preferências da Área de Trabalho Remota e… Voilá!