Buenas, hoy os voy a explicar mi receta secreta para un buen guacamole, necesitamos: una maquina CentOS, un poco de tiempo, algo de ganas, y por último ir al supermercado a comprar un tarro de Guacamole.

Silencio total… un arbusto pasa rodando… más silencio.

Ahora en serio, si es que no habeis cerrado esta ventana ya, vamos a instalar Guacamole, un Remote Desktop Gateway con el que poder conectar a todas nuestras máquinas, ya sea por VNC, RDP o SSH; todo desde un mismo sitio, el navegador. Guacamole esta basado en HTML5 por lo que no necesita ningún tipo de cliente especial y puede usarse incluso desde el móvil o la tablet.

Vamos con los pasos:

  1. Instalar dependencias y otros paquetes necesarios:
    yum install -y wget vim pv dialog gcc cairo-devel libpng-devel uuid-devel freerdp-devel freerdp-plugins pango-devel libssh2-devel libvncserver-devel pulseaudio-libs-devel openssl-devel libvorbis-devel libwebp-devel tomcat gnu-free-mono-fonts
    Es recomendable consultar el manual donde se indica la función de cada dependencia, ya que es posible que alguna no nos interese y podamos obviarla.
  2. Descargar el código de Guacamole Server desde su web o desde Github. Una vez descargado lo descomprimimos:
    tar -xzf guacamole-server-0.9.10-incubating.tar.gz
    cd guacamole-server-0.9.10-incubating/
    
    
  3. Compilamos e instalamos:
    ./configure --with-init-dir=/etc/init.d
    make            # to compile guacamole-server
    make install    # to install the components that were built
    ldconfig        # to update your system's cache of installed libraries
  4. Ahora descargamos el Guacamole client, podemos construirlo nosotros mismos o descargarnos el archivo ya preparado desde su web.Una vez descargado/creado el archivo .war lo desplegamos en el tomcat:
    cp guacamole/target/guacamole-0.9.10-incubating.war /var/lib/tomcat/webapps/guacamole.war
    
    
  5. Configurar la base de datos. En este punto Guacamole esta instalado, pero hasta que no este terminado de configurar no podremos conectarnos a el.
    Instalamos la BBDD y preparamos los archivos necesarios para que Guacamole funcione con autenticación desde BBDD:
    yum -y install mariadb mariadb-server
    mkdir -p ~/guacamole/sqlauth && cd ~/guacamole/sqlauth
    wget https://sourceforge.net/projects/guacamole/files/current/extensions/guacamole-auth-jdbc-0.9.10-incubating.tar.gz
    tar -xzf guacamole-auth-jdbc-0.9.10-incubating.tar.gz
    wget http://dev.mysql.com/get/Downloads/Connector/j/mysql-connector-java-5.1.38.tar.gz
    tar -xzf mysql-connector-java-5.1.38.tar.gz
    mkdir -p /usr/share/tomcat/.guacamole/{extensions,lib}
    mv guacamole-auth-jdbc-0.9.10-incubating/mysql/guacamole-auth-jdbc-mysql-0.9.10-incubating.jar /usr/share/tomcat/.guacamole/extensions/
    mv mysql-connector-java-5.1.38/mysql-connector-java-5.1.38-bin.jar /usr/share/tomcat/.guacamole/lib/
    systemctl restart mariadb.service
    Creamos la base de datos y al usuario que va a acceder a ella:
    mysqladmin -u root password $rootDBPass
    mysql -u root -p   # Enter password
    CREATE DATABASE guacdb;
    CREATE USER 'guacuser'@'localhost' IDENTIFIED BY '$guacUserDBpass';
    GRANT SELECT,INSERT,UPDATE,DELETE ON guacdb.* TO 'guacuser'@'localhost';
    FLUSH privileges;
    quit
    Extendemos el esquema de la BBDD:
    cd ~/guacamole/sqlauth/guacamole-auth-jdbc-0.9.10-incubating/mysql/schema/
    cat ./*.sql | mysql -u root -p guacdb
  6. Creamos los directorios y archivos de configuración para Guacamole:
    mkdir -p /etc/guacamole/ && vim /etc/guacamole/guacamole.properties
    # MySQL properties
    mysql-hostname: localhost
    mysql-port: 3306
    mysql-database: guacdb
    mysql-username: guacuser
    mysql-password: $guacUserDBpass
     
    # Additional settings
    mysql-default-max-connections-per-user: 0
    mysql-default-max-group-connections-per-user: 0
    
    
    Creamos un enlace para que Guacamole pueda encontrar esta configuración:
    ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat/.guacamole/
  7. Abrimos el puerto 8080 puerto en el FW:
    firewall-cmd --add-port=8080/tcp --permanent
  8. Activamos los servicios para que arranquen en el inicio y reiniciamos para comprobar que todo funciona correctamente:
    systemctl enable tomcat.service && systemctl enable mariadb.service && chkconfig guacd on
    systemctl reboot
  9. Ahora deberíamos poder acceder a "http://IPservidor:8080/guacamole” con las claves por defecto: guacadmin:guacadmin (No olvidéis cambiarlas!!)La interfaz es muy sencilla y en un momento podemos configurar y probar nuestras conexiones:

Saludos y que la fuerza os acompañe!