Guacamole: Un visor Html5 de VNC y RDP

¿Qué es Guacamole?

Seguramente os sonará a la salsa de la cocina mexicana a base de aguacates, que por cierto está muy buena, pero no, Guacamole es un proyecto que consiste en una aplicación web HTML5 que permite acceder a máquinas que utilizan protocolos de escritorio remoto (como VNC o RDP).guacamole-systerminal

La principal razón para usar Guacamole es el libre acceso a tus equipos desde cualquier dispositivo, ¿el único requisito? que el navegador soporte html5.

Este proyecto aún no está maduro, por lo que sus servicios no son fiables 100%. Pero creo que dentro de no mucho, será una herramienta muy útil a los sysadmin.

En este pequeño post instalaremos  Guacamole y configuraremos una conexión remota a tavés de VNC y otra respecto RDP.

Instalación de Guacamole en Debian 7

Antes de instalarlo mostraremos como funciona con una imagen:

guac-arch-systerminal

 

Como se puede observar en la imagen,  Guacamole esta compuesto por un demonio que se comunica con la máquina con la que se conectará con su respectivo protocolo y por otra parte se conecta con un servlet que hace que  muestre por pantalla el escritorio. Así que como requisito, necesitaremos tomcat.

Empezaremos instalando Guacamole, que para mi asombro ya está en los repositorios de Debian 7. Por lo que con un simple aptitude lo tendremos instalado:

root@systerminal:~# aptitude install guacamole

Como avisamos antes, para que se visualice por el navegador hace falta tomcat. Aquí hay dos variantes, la primera es una vez instalado tomcat, añadirle los enlaces simbólico a la aplicación:

ln -s /var/lib/guacamole/guacamole.war /var/lib/tomcat6/webapps
ln -s /etc/guacamole/guacamole.properties /var/lib/tomcat6/common/classes

O si no,como segunda variante, si no tenemos instalado tomcat, podemos instalarlo con los enlaces ya creados:

root@systerminal:~# aptitude install guacamole-tomcat

Una vez instalado, poniendo http://ipdelhost:8080/guacamole/, accederemos a la web de Guacamole:

guacamole-systerminal

 

¿Cual es el usuario y la contraseña? la tenemos que definir con un archivo XML. El fichero a modificar es /etc/guacamole/user-mapping.xml e introduciremos dentro de las etiquetas ya creadas:

<authorize username="USERNAME" password="PASSWORD">
</authorize>

Siendo el usuario USERNAME y la contraseña PASSWORD. Reiniciamos el demonio guacd:

root@systerminal:~# /etc/init.d/guacd restart
[....] Restarting Guacamole proxy server: guacdguacd[7233]: INFO:  Unable to bind socket to host ::1, port 4822: Address family not supported by protocol
guacd[7233]: INFO:  Successfully bound socket to host 127.0.0.1, port 4822
. ok 

Accedemos con nuestro usuario, aunque de momento no tengamos ninguna configuración:

guacasysterminal

 

Antes de pasar a la configuración de las conexiones, quiero comentar que es posible la creación de varios usuarios, conectandose así cada uno a sus máquinas. Solo tenemos que crear mas etiquetas como la anterior.

 

Conexión a través de VNC

Pués esta configuración se hace de nuevo en /etc/guacamole/user-mapping.xml, teniendo que añadir  dentro del usuario que queramos las siguientes etiquetas XML:

<connection name="Raspberry VNC">
<protocol>vnc</protocol>
<param name="hostname">192.168.1.250</param>
<param name="port">5901</param>
<param name="password">quique</param>
</connection>

Connection name: Nombre de la conexión. Puede haber mas de una pero si solo hay una, el usuario entrará directo. Si hay más de una, habrá un menú.
Protocol: Protocolo que se usará.
param name=”hostname”: Ip de la máquina con VNC.
param name=”port”: Puerto donde se conectará para visualizar el escritorio.
param name=”password”: Contraseña para conectarse a VNC.

Reiniciamos el servicio, accedemos y veremos ( es la única conexión que tenemos) como accedemos a nuestra raspberry que tiene VNC (tightvncserver):

 

raspberryguasysterminal

Conexión a través de RDP

Antes de nada instalaremos la libreria que conecta guacd y rdp (VNC viene incluido en el paquete):

root@systerminal:~# aptitude install libguac-client-rdp0

De nuevo añadiremos las lineas a /etc/guacamole/user-mapping.xml dentro del usuario que queramos, en mi caso USERNAME:

<connection name="Windows7RDP">
<protocol>rdp</protocol>
<param name="hostname">192.168.1.14</param>
<param name="port">3389</param>
</connection>

Como vemos, cambiamos el protocolo, la ip y el puerto. Así pues reiniciamos , accedemos via web y observaremos que tenemos dos conexiones:

guacadosconexsysterminal

 

Probaremos la conexión de Windows:

windowsguasysterminal

 

Y como no, pondré una imagen de como accedo desde mi móvil ( un poco para demostrar que se puede acceder desde cualquier dispositivo sin ningún software):

guacamoleandroidsysterminal.com

 

Guacamole también permite conexiones SSH y Telnet.

Y esto es todo lo que tenía que contar de Guacamole, aunque solo ha sido una pasada superficial.

Siento no haber podido formatear como es debido las etiquetas xml 🙁

Espero que sirva de ayuda y os animeis a probarlo 🙂

Realizado por:

Jose Enrique Ruiz Navarro

Fuentes:

http://guac-dev.org/

 

3 Responses

  1. Javier 9 Agosto, 2014 / 9:39 am

    Gracias por compartir con todos nosotros toda esta amena información. Con estos granitos de arena hacemos màs grande la montaña Internet. Enhorabuena por este blog.

    Saludos

  2. Diego Redero 26 Septiembre, 2015 / 10:25 am

    A mi me sale el siguiente error:

    “Los siguientes paquetes tienen dependencias incumplidas:
    guacamole-tomcat : Depende: tomcat6 pero no va a instalarse
    E: No se pudieron corregir los problemas, usted ha retenido paquetes rotos.”

  3. eduardo 23 Diciembre, 2015 / 7:10 pm

    Excelente aporte muchas gracias

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *