Enreas
Advertisement

Introducción[]

Acceder mediante VNC sin ninguna protección a unos servidores destinados a la producción no es la mejor idea que se nos pueda ocurrir.

Para empezar, la contraseña necesaria para identificarse y lograr que el servidor VNC nos permita la conexión (casi) no está cifrada, de manera que cualquiera que pueda espiar el tráfico de la red puede obtener dicha contraseña y después conectar con el servidor.

Pero eso no es todo: de igual forma, tras establecer la conexión, un espía tendría acceso a todos los datos que circulasen entre cliente y servidor. Estos datos pueden ser contraseñas aún más importantes que la de acceso al VNC del servidor, como la propia del administrador.

Por fortuna, podemos utilizar túneles sobre SSH para cifrar los datos enviados entre el cliente y el servidor y así poder estar (un poco) tranquilos si damos acceso mediante VNC sin restricciones de IP.

Programas necesarios[]

El primer paso consiste en descargarse los siguientes programas para Windows:


Si vamos a acceder desde Linux la historia es diferente, ya que todos los programas necesarios suelen estar incluidos en la mayoría de las distribuciones.


Instalación de TightVNC[]

Este programa dispone de un asistente de instalación que facilita enórmemente la tarea. Sólo hemos de seleccionar la carpeta en la que se instalará y, una vez terminado el proceso, tendremos acceso al cliente a través del menú Inicio.

Instalación de PuTTY[]

No necesita instalación, basta con que creemos una carpeta para él dentro de Archivos de programa, que suele estar en la unidad C:, y copiemos el ejecutable en ella. Podemos llamar a esta carpeta PuTTY, con lo que la ruta completa sería: C:\Archivos de programa\PuTTY\

Configuración de PuTTY[]

PuTTY es un cliente libre de telnet y SSH. Lo que nos interesa a nosotros es esto último.

Datos de conexión[]

Ejecuta PuTTY haciendo doble clic sobre él en la carpeta en la que lo hayas guardado. Podrás ver su ventana de configuración, algo parecido a lo que aparece en la figura 1.

Putty 01

Figura 1. Configuración de PuTTY.

Vamos a rellenar los huecos. En primer lugar hemos de introducir el nombre del servidor al que nos queremos conectar, por ejemplo example.com. En segundo lugar, hemos de indicar el protocolo mediante el cual conectaremos, se trata de SSH. Por último, necesitamos dar un nombre a esta conexión, de forma que no tengamos que volver a introducir estos datos en posteriores conexiones. Para ser originales, ese nombre puede ser example.com.

Guardar la configuración[]

Cuando hayas introducido todos los datos, haz clic en Save. Así guardarás la configuración de esta conexión.

Si cierras la ventana de configuración de la conexión y vuelves a ejecutar PuTTY verás que example.com aparece en la lista de sesiones guardadas (Saved Sessions). Puedes seleccionarla de la lista y hacer clic en el botón Load para ver sus opciones. Lo hemos hecho para que puedas verlo en la figura 2 y compruebes que los datos son correctos.

Putty 02

Figura 2. Conexión.

Conexión mediante SSH[]

Para conectar mediante SSH con el servidor sólo tienes que hacer doble clic sobre la conexión guardada que desees. PuTTY intentará establecer la conexión con dicho servidor y, cuando lo logre te pedirá tu nombre de usuario y tu contraseña. Una vez introduccidos, tendrás acceso al intérprete de comandos del servidor. Pero aunque esto es interesante, no es lo que nos interesa... o al menos, no del todo.

Túneles[]

Cierra la sesión que has abierto con el servidor: puedes hacerlo escribiendo logout, exit o pulsando la combinación de teclas Control-D. Vuelve a la pantalla de configuración de PuTTY y carga la sesión example.com. Una vez cargada dicha sesión, haz clic en el elemento Tunnels dentro del árbol de nodos de la izquierda, lo que te mostrará una nueva ventana de opciones. Vamos a crear el tunel que nos permitirá usar VNC.

Para crear el túnel del servidor de páginas HTTP, escribe 5970 en el cuadro de texto Source Port y 192.168.1.2:5970 en el cuadro de texto Destination y haz clic en el botón Add. Repite la operación con los valores 5980 y 192.168.1.3:5980 para crear el túnel del servidor SQL. La figura 3 muestra el aspecto que debería tener esta ventana tras añadir los dos túneles.

Putty 03

Figura 3. Túneles.

Recuerda seleccionar de nuevo el nodo Sessión, en el panel de la izquierda, y hacer clic en el botón Save para que los túneles que acabas de añadir sigan disponibles en posteriores usos de PuTTY, de forma que no sea necesario volver a introducir estas opciones.

Conexión mediante VNC[]

A partir de ahora, antes de realizar una conexión mediante VNC necesitaremos abrir una sesión mediante SSH con las opciones de configuración anteriores. Entonces, lanzaremos el cliente VNC. Deberás conectar con localhost:70 si quieres conectar con el servidor HTTP o localhost:80 para el servidor SQL. La figura 4 muestra el aspecto del cliente VNC (en este caso, TightVNC) con la cadena conexión introducida.

Putty 04

Figura 4. Conexión VNC.

Haz clic en OK. Si todo ha ido bien, el servidor VNC al que intentes conectar te pedirá la contraseña de acceso.

Gestión de claves[]

Por hacer. Descripción de cómo utilizar PuTTY Key Generator y Pageant para hacer más seguras las conexiones SSH.

Linux[]

Para crear una pareja de claves pública/privada:

$ ssh-keygen -d

La clave pública estará en ~/.ssh/id_dsa.pub.

Para añadir esa clave al agente ssh:

$ ssh-add ~/.ssh/id_dsa

Para establecer el tunel:

$ ssh usuario@example.com -L 5970:192.168.1.2:5970
Advertisement