Interfaces X11 tradicionales en la nube

No todas las herramientas que uno quiere utilizar en la nube se han desarrollado en base a las APIs específicas, con lo cual puede ser necesario montar capas intermedias de adaptación para que al usuario final le resulte igual de cómodo.

Una de las opciones más interesantes es Guacamole, un paquete que encapsula de forma eficiente el acceso a un servicio X11. Una vez instalado, el usuario se autentica y puede disponer de un escritorio remoto como si fuese local. Eso sí, conviene delimitar sus posibilidades para que no lo utilice con fines ajenos a la aplicación.

La instalación de guacamole en Ubuntu es relativamente sencilla:

# instalar servidor VNC
apt-get install tightvncserver

# instalar dependencias del servidor Guacamole
apt-get install libjpeg-turbo8-dev libcairo2-dev libossp-uuid-dev libpng12-dev libvncserver-dev tomcat6

# "compilar" el servidor
cd guacamole-server-0.9.9/
./configure --with-init-dir=/etc/init.d
make -j 4
make install
# añadir a /etc/bash.bashrc
export LD_LIBRARY_PATH=/usr/local/lib
export GUACAMOLE_HOME=/etc/guacamole

# instalar dependencias del cliente Guacamole
apt-get install maven2

# instalar cliente
cd guacamole-client-0.9.9/
mvn package
cp guacamole/target/guacamole-0.9.9.war /var/lib/tomcat6/webapps/

# configuración básica guacamole
# guacamole.properties
guacd-hostname: localhost
guacd-port:     4822
## Auth provider class (authenticates user/pass combination, needed if using the provided login screen)
auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
basic-user-mapping: /etc/guacamole/user-mapping.xml

# user-mapping.xml - cambiar USERNAME, PASSWORD y VNCPASS 😉
<user-mapping>
    <authorize username="USERNAME" password="PASSWORD">
        <protocol>vnc</protocol>
        <param name="hostname">localhost</param>
        <param name="port">5900</param>
        <param name="password">VNCPASS</param>
    </authorize>
</user-mapping>

# configurar el conector de Tomcat en /etc/tomcat6/server.xml
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               URIEncoding="UTF-8"
               address="127.0.0.1"
     redirectPort="8443" />

# arrancar demonio guacamole y reiniciar Tomcat
/etc/init.d/guacd restart
/etc/init.d/tomcat6 restart

# instalar "escritorio ligero"
apt-get install lxde
# arrancar servidor VNC
vncserver -localhost

# configurar el proxy en apache
ProxyPass /guacamole/ http://localhost:8080/guacamole-0.9.9/ flushpackets=on
ProxyPassReverse /guacamole/ http://localhost:8080/guacamole-0.9.9/

En caso de problemas, puede obtenerse información adicional en los ficheros /var/log/tomcat6/catalina.out, /var/log/syslog, ~/.vnc/HOSTNAME.log

En “create a Guacamole appliance” vienen cómo configurar la autenticación contra una base de datos MySQL.

La guía de usuario de Guacamole está bastante completa.

Otras opciones son novnc (que parece menos maduro) y x2go (bastante potente, pero de momento require modificar el equipo cliente, aunque sólo sea para instalar el plugin para el navegador…) Dentro del software commercial: Remote visualization, de Adaptive Computing.

Deja un comentario

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