vnc, escritorio remoto

14
VNC VNC Autor:Juan Luis Sánchez Crespo Fecha: 19-1-2012 1

Upload: juanlu991

Post on 13-Jun-2015

4.914 views

Category:

Technology


2 download

DESCRIPTION

Configuración de VNC en linux y winows , utilización de los clientes y configuración de un túnel SSH.

TRANSCRIPT

Page 1: Vnc, escritorio remoto

VNCVNC

Autor:Juan Luis Sánchez CrespoFecha: 19-1-2012

1

Page 2: Vnc, escritorio remoto

Índice de contenido1Introducción...................................................................................................................................32Escenario........................................................................................................................................33Configurar servidor VNC en Windows 7 y conexión de Windows 7 con Windows 7..................34Conexión de Debian Squeeze a Windows 7..................................................................................55Configurar servidor VNC en Debian y Conexión de Debian a Debian........................................76Conexión de Windows7 a Debian Squeeze.................................................................................127Túnel SSH para VNC. ................................................................................................................138Conclusión...................................................................................................................................13

2

Page 3: Vnc, escritorio remoto

1 Introducción.

VNC (Virtual Network Computing) es un programa se software libre, por el cual se pueden hacer conexiones de escritorio remoto a través de una LAN o internet.

En este programa participan dos maquinas:

• Servidor: es la maquina que comparte una o varias pantallas. Si comparte varios escritorios, serán por diferentes puertos ejemplo el escritorio 0 puerto 5900 tcp y el escritorio 1 puerto 5901 tcp

• Cliente: es la maquina que se conecta a el servidor. Este puede ser un mero espectador o interactuar con el servidor.

VNC, permite la conexión entre diferentes sistemas operativos, siempre y cuando el sistema soporte el cliente o el servidor VNC.

VNC utiliza el protocolo RFB (Remote FrameBuffer) para funcionar. En general, no tiene un buen sistema de seguridad, un crackeador de fuerza bruta podría descubrir la clave. Por esta razón, se recomienda utilizar claves largas para este programa. De todas maneras, VNC puede ser tunelizado sobre conexiones SSH o VPN, lo que podría agregar una capa de seguridad extra con una encriptación más potente.

Por ser de código abierto, existes múltiples implementaciones con distintas características, que permiten mas o menos seguridad.

2 Escenario.

En esta practica, vamos a utilizar dos sistemas operativos, debian squeeze y windows 7. El windows 7 es una maquina virtual, mientras que los otros dos son maquinas físicas.

Esta practica tendrá 4 tipo de conexiones:

• Windows a Windows : El cliente y el servidor son Windows 7

• Debian a Windows: En este caso el cliente es Debian y el servidor Windows

• Debian a Debian: Tanto cliente como servidor son Debian.

• Windows a Debian: Por ultimo me conectare con un cliente Windows a un Debian.

3 Configurar servidor VNC en Windows 7 y conexión de Windows 7 con Windows 7.

Para windows, hay muchos programas que nos permiten configurar a windows como servidor o como cliente VNC. En mi caso me he decantado por UltraVNC. Lo primero que hacemos es descargarlo. Este es el enlace de la pagina principal, http://support1.uvnc.com/download/10961/UltraVNC_1.0.9.6.1_update.exe .

La instalación no tiene ninguna complicación, simplemente le damos a siguiente. Si le damos a siguiente siguiente, se nos instalara tanto servidor como cliente, si nos fijamos en uno de los pasos nos da a elegir si queremos instalar solo uno de los dos.

3

Page 4: Vnc, escritorio remoto

Lo primero que vamos a hacer es configurar el servidor. Para ejecutarlo escribimos en el inicio de windows, ultravnc server.

Cuando lo ejecutamos, nos aparecerá una ventana para configurarlo. En esta ventana se configuran las opciones del servidor. Podemos cambiar el puerto de escucha, poner diferente contraseña para usuarios, desactivar el teclado y el ratón y algunas otras mas. Estas son las opciones que yo he puesto.

Con esto, tras darle a Ok, tenemos nuestro servidor VNC escuchando en el puerto que le pongamos, en mi caso el 5900.

Para el cliente simplemente tenemos que poner en el inicio de windows, utravnc viewer. Una vez lo ejecutamos, nos aparece una ventana en la que tendremos que poner la ip del servidor y el puerto. Después elegimos el tipo de conexión si queremos y le damos a Connect.

4

Page 5: Vnc, escritorio remoto

Con esto, ya estamos conectado a nuestro servidor VNC.

Una opción interesante es el chat, con el cual te puedes comunicar, con el usuario del servidor u otros usuarios.

4 Conexión de Debian Squeeze a Windows 7.

Para la conexión con Debian, voy a utilizar el cliente Remmina, el cual viene por defecto instlado en Debian Squeeze. Este es fácil de usar, para iniciarlo podemos poner en un terminar remmina o irnos a Aplicaciones>Internet>Cliente de escritorio remoto Remmina.

Este cliente soporta diferente tipo de escritorios remotos, pero a nosotros en este caso solo nos interesa VNC.

5

Page 6: Vnc, escritorio remoto

Para conectarnos por VNC simplemente le damos a Acción>Conexión rapida>VNC – Virtual Network Computing.

Ahora ponemos la dirección de el servidor y el puerto. También podemos modificar otras opciones como pueden ser la calidad o la resolución.

6

Page 7: Vnc, escritorio remoto

Y este es el resultado.

5 Configurar servidor VNC en Debian y Conexión de Debian a Debian.

Para configurar Debian Squeeze como servidor VNC tenemos varias opciones. Las opciones más sonadas son: tightvncserver, vino, vnc4server y x11vnc.

En mi caso, me he decantado por vnc4server y vino. El primero, vnc4server, lo utilizaremos para crear escritorios, diferentes del 0, a los que se conectaran los clientes. Vino lo utilizaremos para que los clientes se conecten a nuestro escritorio.

Lo primero sera instalar vnc4server:

# aptitude install vnc4server

Una vez instalado lo ejecutamos con el comando:

$ vnc4server :1

El numero, es el escritorio que se va ha crear. Esto también interfiere en el puerto por ejemplo en este caso al ser el 1 escuchara en el puerto 5901, si fuera el 2 en el 5902 y así sucesivamente. En el caso de no poner ningún puerto, se nos abrirá automáticamente en el primer puerto y escritorio que

7

Page 8: Vnc, escritorio remoto

tengamos libre, por lo que el 1 no nos hace falta. Si queremos ver las conexiones vnc que tenemos abiertas, lo podemos saber con:

$ netstat ­putan|grep vnc

La primera vez que ejecutemos el servidor con un usuario del sistema nos pedirá una contraseña. Esta contraseña es para que no se pueda conectar cualquiera a nuestra pantalla. También se nos creara unos ficheros en nuestro home, llamado .vnc. Si queremos cambiar la contraseña lo podemos hacer de la siguiente manera:

$ vncpasswd

Este comando, te pedirá la contraseña.

Para hacer la conexión, he utilizado un cliente que trae debian por defecto Remmina. Para crear una conexión VNC, le damos a Acción/Conexión rapida/VNC – Virtual Network Computing.

Ahora solo tenemos que poner la dirección de nuestro servidor y el puerto. En este caso al poner anteriormente el display 1, sera el puerto 5901. A ese escritorio se puede conectar mas de una persona a la vez y nosotros podemos tener abierto varios escritorios, siempre y cuando nuestro ancho de red nos lo permita. También podemos elegir la profundidad de color y la calidad.

Tras darle a conectar, nos aparecerá un letrero, donde pondremos la contraseña que definimos anteriormente.

8

Page 9: Vnc, escritorio remoto

Como podemos observar, nos sale una pantalla en gris, eso es debido a que no tenemos bien configurado el servidor VNC.

Para que nos funcione bien tenemos que modificar el archivo ~/.vnc/xstartup. Este archivo tiene que quedar de la siguiente manera:

#!/bin/sh 

xrdb $HOME/.Xresources 

xsetroot ­solid grey 

#x­terminal­emulator ­geometry 80x24+10+10 ­ls ­title "$VNCDESKTOP Desktop" & 

#x­window­manager & 

# Fix to make GNOME work 

export XKL_XMODMAP_DISABLE=1 

/etc/X11/Xsession 

Tras modificar el archivo reiniciamos el gdm3. Si nos conectamos ahora con el Remmina nos saldrá algo parecido a esto.

9

Page 10: Vnc, escritorio remoto

Remmina no es el único cliente vnc, por eso decidí probar otro cliente, este se llama tightVNC. Este cliente es un poco mas complicado, ya que es desde la linea de comandos. Para instalarlo es fácil:

# aptitude install xtightvncviewer

Y para ejecutarlo simplemente:

# xtightvncviewer vnc:5901

Este se ve de esta manera.

Por ultimo, si queremos cerrar la conexión de vnc4server, lo podemos hacer de dos manera. Matando la aplicación con un kill, o con una opción que trae vnc4server. En el ultimo caso tendríamos especificar el escritorio que queremos eliminar.

$ vnc4server ­kill :1

Si queremos compartir nuestra sesión de escritorio lo podemos seguir haciendo con el vnc4server de la siguiente manera:

# x0vnc4server ­PasswordFile=~/.vnc/passwd

Este comando debe de ser ejecutado desde un terminal en la maquina, los otros lo he ejecutado mediante una conexión por ssh.

Pero yo opte por por vino, ya que el x0vnc4server me funciono a lo primero, y luego me dio errores.

10

Page 11: Vnc, escritorio remoto

Vino, viene instalado en debian por defecto, así que simplemente tendremos que ejecutar el siguiente comando, con el cual nos saldrá una interfaz gráfica con el que elegimos las opciones. La razón de no utilizar vino para las otras conexiones es porque vino no puede crear otros escritorios.

El comando para vino es el siguiente:

$ vino­preferences

Y nos saldrá la siguiente interfaz gráfica.

Las opciones que tienen, están claras. Cuando terminemos, le damos a cerrar. Si queremos ver si vino esta activo, podemos verlo con el comando:

$ netstat ­putan|grep 5900

Para pararlo, simplemente hacemos un kill del proceso que nos sale en el netstat.

Si ahora nos conectamos con nuestro Remmina, se nos verá algo así.

11

Page 12: Vnc, escritorio remoto

6 Conexión de Windows7 a Debian Squeeze.

La configuración del cliente sería igual que para conectarnos a windows. Ponemos el servidor y el puerto. Después elegimos la velocidad.

Nos pide la contraseña.

12

Page 13: Vnc, escritorio remoto

Y ya estamos conectados a nuestro Servidor VNC Debian.

Por ultima, si queremos conectarnos a el escritorio 0 de una maquina virtual, en mi caso era con KVM, no lo podemos hacer con vino. En este caso la única solución que la encontré, fue con x11vnc, con el cual, con el siguiente comando, si podríamos conectarnos.

# x11vnc ­forever ­ passwd hola ­24to31

El problema que tenía este servidor es que no he conseguido hacer, que se conecte mas de un usuario a el. Solo podía conectarse un cliente, si otro cliente intentaba conectarse, era rechazado.

7 Túnel SSH para VNC.

Como he dicho anteriromente, la conexión vnc no es segura, por lo que lo idóneo, sería hacerla con un túnel ssh. Para crear un túnel ssh, tenemos que instalar un servidor ssh en la maquina donde se encuentra el servidor ssh. Para la conexión mediante un túnel ssh simplemente tenemos que ejecutar el siguiente comando en el cliente.

$ ssh ­f ­L 3000:localhost:5900 [email protected] ­N Ahora en vez de conectarnos a vnc.local:5900 nos conectamos a localhost:3000. Esto a parte de seguridad también supone un aumento del consumo de red, ya que todo esta tunelizado por ssh.

8 Conclusión.

VNC es una herramienta fácil de usar, con la cual podemos administrar gráficamente nuestro ordenadores. La utilización de esta herramienta en entornos windos y en enetornos linux, no es igual, ya que mientras que en entornos window solo tenemos un escritorios, en linux podemos tener todos los que queramos. En linux los escritorios se reparten a partir del 0:, siendo este el que abre el usuario al iniciar la sesión, estos escritorios se pueden restringir a que los clientes solo los puedan ver o también se

13

Page 14: Vnc, escritorio remoto

pueden poner para que el cliente pueda interactuar con ellos. Cuando compartimos una sesión en linux, podemos elegir que sea en el escritorio 0: o en otro que creemos. Si no hacemos nada al respecto, los puertos están relacionados con el escritorio, siendo por ejemplo el escritorio 0: el puerto 5900 o el escritorio 9: el puerto 5909. En windows solo tenemos un escritorio, el del usuario, el cual se comparte. A este escritorio se pueden conectar varios usuarios y al igual que en linux, puede ser de solo lectura o interactivo. Por ultimo, VNC es muy útil para manejar aplicaciones gráficas a distancias, pero no es muy seguro por lo que lo adecuado sería tunelizarlo por ssh. Esto aumenta el consumo de VNC.

14