Muchas son las veces que nos vemos obligados a acceder remotamente a un ordenador, ya sea del trabajo, nuestro propio ordenador de nuestra casa, el ordenador de nuestra novia xDDDDD, el ordenador de algún amigo para ayudarle con algo, etc. Para los usuarios de windows la cosa es relativamente simple, ya que instalan un servidor vnc y luego se conectan mediante un cliente vnc desde otro ordenador. Pero en GNU/Linux la cosa es un poquito mas rebuscada, pero para nada difícil.
Existen aplicaciones para GNU/Linux que utilizan el estándar vnc, como por ejemplo, tightvnc que son facilmente instalables y muy configurables para este propósito. El “problema” aquí es que generalmente, estas aplicaciones cuando son instaladas por defecto, ejecutan el gestor de sesiones (gdm, kdm) y el usuario debe loguearse nuevamente en la pc y asi iniciar una sesión nueva para poder trabajar. Si lo que queremos es trabajar en la sesión que ya dejamos abierta en el ordenador, tal como si estuviéramos sentados frente a ese ordenador remoto, habría que retocar la configuración del servidor X (/etc/X11/xorg.conf en caso de usar xorg) para indicarle que levante el modulo de vnc. Cosa que rara vez queda perfectamente bien.
Para no complicarnos tanto tenemos algo fantástico y se llama x11vnc.
En Debian, instalarlo es tan simple como apt-get install x11vnc y ya está xD.
Para ejecutarlo debemos poner:
$ x11vnc -bg -passwd contraseña
La opción -bg hace que el proseso se ejecute en background y la opción -passwd seguida de una contraseña fuerza al usuario a introducir la contraseña para conectarse. Como no hemos especificado un puerto, se tomará el puerto por defecto que es el 5900.
La primera vez es muy recomendable añadirle la opción -gui para que nos muestre una interfase gráfica para configurar y exprimir al máximo nuestra aplicación.
Ahora para conectarnos a nuestro ordenador en donde hemos dejado escuchando el x11vnc, es tan simple como poner desde la consola:
$ vncviewer la_ip_del_ordenador:5900
Ahora nos pedirá que ingresemos la contraseña y si es correcta nos mostrará el escritorio remoto.
En el caso de querer conectarnos desde una pc con windows simplemente se debe poner como destino la ip del ordenador donde esta el x11vnc.
Recuerden abrir el puerto 5900 tanto en el firewall como en el router (si es que hubiera uno).
Es sabido que mientras mas puertos uno abre en su ordenador, mas facil (o menos dificil) es para un intruso lograr acceso al sistema explotando alguna falla de seguridad. Por tanto, cuando trabajemos mediante vnc hay un par de cosas que es obligación saber.
- Los datos tienden a viajar en texto plano, sin encriptación
- En instalaciones por defecto, no se restringe ni se filtra por ip
- Quien se conecte a un ordenador mediante vnc tiene acceso a TODO lo que tendría un usuario que esté fisicamente sentado frente al ordenador.
- Algunas versiones antiguas de RealVnc tienen fallas graves y facilmente explotables, por ejemplo mediante metasploit.
Lo que yo recomiendo al trabajar con vnc en linux es:
- No dejar nunca escuchando el vnc server. Primero loguearse en la pc mediante ssh, y ejecutarlo desde allí. Luego conectarse, y cuando se termine de trabajar matar el proseso, (killall x11vnc).
- Siempre usar la opcion -passwd para forzar una contraseña
- Trabajar con vnc mediante un tunel ssh. Para esto, loguearse primero por ssh a la pc de la siguiente manera: ssh -P -L 1900:127.0.0.1:5900 ip_de_la_pc luego ejecutar el servidor: x11vnc -bg -passwd contraseña y luego desde otra terminal conectarnos mediante el tunel que hemos creado: vncviewer 127.0.0.1:5900. Una vez que terminamos de trabajar, matamos el proseso: killall x11vnc. Esto hará que los datos viajen encriptados mediante ssh (secure shell) y sean redireccionados al puerto 5900 al llegar a destino. Esto nos permite tener cerrado el puerto 5900 en el router evitando intrusiones de extraños y en el firewall debemos configurar que acepte peticiones al puerto 5900 solamente desde localhost o 127.0.0.1.
- Nunca loguearse ni ejecutar el server como root
- Nunca dejar en el equipo remoto una shell de root abierta
Bueno mis fieles lectores, hoy hemos aprendido a trabajar con vnc de forma segura haciendo uso de x11vnc y ssh. Espero que ese minituto haya sido de utilidad. En el próximo aprenderemos a armar tuneles ssh desde windows (imposible no??? pues no!). Saludos, nos vemos en el próximo post.



5 responses so far ↓
1 plukazz // ago 5, 2007 at 20:15
muy buen tutorial!!!!!!
esperamos mas de ssh y vnc
2 wyr3x .. // ago 6, 2007 at 0:30
Que bueno actualizaste!.
Buen tuto, ya lo manejaba pero
nunca sobran otraas palabras
para hacerlo.
Saludos!
3 linuxknow // sep 12, 2008 at 20:48
muy buen tuto ya tenia algo por medio d xdm pero esto es mucho mejor.
4 slals // mar 31, 2009 at 13:24
bueno yo nos e mucho de esto pero me gusto loq eu pude aprender me gustaria que si puedes me ayudes a configurar el vncserver en mi compu es linux centos5.2 una vez me funsion en modo texto pero nuca mas despues de un nos cambis que le hice gracias magos de la informatica
5 david // jun 11, 2010 at 17:17
estoy conectado a una red local las cuales todas las maquinas tienen win xp menos el servidor principal que tine linux opensuce y quisiera saber como puedo hacer para comectarme remotamente como por ejemplo el programa vnc?
Leave a Comment