Control remoto de sesiones

Hola gente!

Mis padres son bastante negados en lo que respecta a los ordenadores, que le vamos a hacer. El mayor problema es que siempre me toca a mi intentar solucionarles sus "problemas". Hasta ahora había intentado hacer esto hablando con ellos por teléfono o skype, pero la verdad es que resulta muy tedioso, dado que ni aun así me suelen entender ni encuentran en la pantalla lo que se que esta allí.

Así que definitivamente me decidí a hacer algo que me resulte más cómodo y me permita intentar explicarme mejor, a la vez que estar seguro de ver lo mismo que ellos. ¿Qué necesitaba? Un sistema de control remoto. Por si alguno lo dudaba, mis padres tienen instalado linux como sistema por defecto (también Windows, pero no lo usan).

Así las cosas, se me ocurrían dos opciones:
  • Conectarme a una sesión remota (XDMCP)
  • Controlar su sesión vía VNC
La primera opción, con la que ya trabaje y configure en mi antigua compañía, permite conectarse a un equipo remoto y trabajar como local. Tendría la misma pantalla que mis padres, pero ellos no podrían ver lo que estaba haciendo. Consiste básicamente en configurar dos o tres archivos y reiniciar el servidor X. Nada demasiado difícil.

Esta opción no me satisfacía completamente, dado que mis padres no podrían ver cómo hacer las cosas y tendría que seguir explicándoselas completamente, asi que decidi probar la segunda opción. Y aquí volvemos a tener dos opciones: usar vnc con una nueva sesión gráfica o usar vnc con la sesión gráfica previamente abierta. Como podreis adivinar, la opción interesante es la segunda.

Y ahora viene lo importante: ¿cómo hacer esto en Linux? Sencillo. Sólo necesitamos instalar los programas (paquetes necesarios). En el ordenador cuyo funcionamiento queremos controlar debemos instalar un servidor de vnc y en aquel desde el que queremos controlar un cliente. Para ello instalamos en ambos el paquete común para vnc, que instala tanto servidor como cliente.

apt-get install vnc-common

Con esto tenemos un servidor vnc, pero este nos permite acceso a la sesión gráfica en uso, asi que tenemos que instalar otro programa.

apt-get install x11vnc

Ya tenemos la instalación. Ahora solo queda arrancar el servidor y conectarnos desde el cliente. Pero antes, un poco de seguridad. VNC no encripta los datos transmitidos, así que para ganar un poco de seguridad, podemos crear un tunel SSH (desde el cliente).

ssh -L 5900:localhost:5900 usuario@maquina_a_controlar

Con esto redirigimos las peticiones al puerto 5900 (VNC) de nuestra maquina al 5900 de la maquina a controlar a través de SSH (encriptado). Una vez conectados creamos una contraseña para la conexion VNC, simplemente con

vncpasswd

Arrancamos el servidor con algunas opciones

x11vnc -bg -nap -many -rfbauth ~/.vnc/passwd -desktop -permitfiletransfer

y finalmente desde el cliente nos conectamos

vncviewer localhost

Notese que usamos localhost dado que ya hemos creado el tunel SSH que nos redirige a la máquina que queramos. Meter la contraseña creada anteriormente, y a controlar el ordenador remotamente. Yo todavia tengo algun problemilla con la configuración de rutado, porque el ordenador al que quiero conectar esta detras de un router y un gateway que hace NAT con iptables. Tengo que pegarme un poco con ellas, pero cuando lo consiga, ya os comentare :-)

2 comentarios:

IBAN 10 de febrero de 2009, 21:38  

sudo apt-get format telecoed
sudo apt-get install winxp

Anónimo 12 de febrero de 2009, 11:51  

FRIKY!!!!!!!!!!!!!!!!!!!!!