jueves, 6 de marzo de 2008

Escritorio Remoto con VNC

Hola!

Hoy quiero hablaros de algo que hará vuestra vida algo mas cómoda, en el caso de que uséis varios PC's separados por una distancia considerable (1,5m ya se considera un desplazamiento grande XD).
El tema esta en conseguir un escritorio remoto de una maquina separada en la distancia (de momento dentro de la misma LAN) desde vuestro Linux. Para ello vamos a usar la aplicación VNC, que nos permitirá obtener estas conexiones de forma fácil y sencilla ;)

Cito de la wikipedia:
VNC es un programa de software libre basado en una estructura cliente-servidor el cual nos permite tomar el control del ordenador servidor remotamente a través de un ordenador cliente. También llamado software de escritorio remoto. VNC permite que el sistema operativo en cada computadora sea distinto: Es posible compartir la pantalla de una máquina de "cualquier" sistema operativo conectando desde cualquier otro ordenador o dispositivo que disponga de un cliente VNC portado.
Conociendo mas o menos la idea de lo que es VNC procedemos a obtener los paquetes que nos harán disfrutar de esto (describiré los pasos en Debian/Ubuntu, en otras distros sera similar):

apt-get install vnc
Esto instalara el paquete virtual de VNC con sus complementos habituales, tales como el vnc, sus librerías, el visor... etc.
Antes de seguir con todo esto, advertiros a los que no lo sepáis, y recordaros a los que ya lo sabéis, que el sistema de escritorios de Linux (Gnome, KDE, Flux, XFace...) utiliza una arquitectura cliente/servidor; lo cual implica que cada sesión de escritorio este escuchando de un puerto distinto y nos pone un impedimento en nuestro quehacer, pues no podremos obtener la pantalla de la sesión activa actualmente, sino que cada vez que conectemos estaremos abriendo una nueva sesión en la maquina remota.
Pero no sufráis... esto tiene solución en forma de paquete .deb ;)
Instalando el x11vnc paliaremos este efecto y podremos tener el escritorio de la sesión actual. Por tanto, antes de instalar el vncserver de toda la vida, recomiendo que instaléis esta versión ;)

La conexion con la maquina servidor se realizara mediante vncviewer, las versiones mas modernas de Ubuntu lanzan un entorno gráfico cuando ejecutas vncviewer por consola, en donde solo tienes que especificar el nombre de la máquina que actúa como servidor y, opcionalmente, el puerto de conexión:

slayer@ErhArD:~$ vncviewer NeMeSiS:8990

La primera vez que inicies el servidor x11vnc te advertirá de que no tienes asignada una contraseña para el servicio, y al mismo tiempo te proporcionara información para asignarla, sigue los pasos, no tiene mayor complicación.

Hay que tener en cuenta que la conexión con VNC no utiliza cifrado, si estamos en una red insegura cualquiera podría ver el password o todos lo que hagamos en el escritorio remoto. Una posible alternativa es utilizar los túneles SSH para que los datos viajen cifrados, para esto es necesario tener un servidor SSH configurado en la máquina que tiene instalado x11vnc.

Desde un PC ejecutaríamos en una consola:
$ ssh -L 2000:servidor:5900 user@servidor -N

Y en otra diferente:
$ vncviewer localhost:2000

El primer comando crea un túnel cifrado entre nuestra máquina y el servidor, los datos que enviemos a nuestro puerto 2000 irán a parar al puerto 5900 del ’servidor’ (también podría ser una IP) y para esto utilizaremos nuestro usuario “user” del servidor “servidor” (el mismo que el anterior). Este tipo de túneles también podríamos utilizarlos para otros servicios diferentes a VNC.
El segundo paso es conectarnos a nuestro puerto local 2000 como si tuviésemos ahí un servidor VNC.

Si buscáis en los posts pasados podréis leer algunos artículos mas sobre SSH si os interesa ;)

Con todo esto ya deberíais estar realizando vuestras propias conexiones con maquinas remotas.

Si tenéis dudas ya sabéis, comentarios o Google ;)

Hasta la próxima!

No hay comentarios: