1/3/19

Apache Guacamole en Ubuntu 18.04

Una de las características que más me gusta de los fortigate es el portal que obtienes (de modo opcional) cuando generas una VPN SSL, me parece una herramienta inmensamente útil y aunque está demás aclarar que la calidad de la conexión no se compara con la obtenida cuando se utiliza forticlient (el software cliente), el SSL-VPN Portal es indudablemente útil y cualquier persona sin conocimiento técnico alguno es capaz de utilizarlo. 

Por esto llamó mi atención Apache Guacamole un proyecto de software libre que hace una tarea muy parecida y no dudé en probarlo.

Guacamole es presentado en su página web como:
Apache Guacamole es una puerta de enlace de escritorio remoto "sincliente", soporta protocolos standard como VNC, RDP y SSH, lo llamamos "sincliente" porque no requiere de ningún software cliente ni de plugins. Gracias a HTML5, una vez Guacamole es instalado en un servidor lo único que necesitaras para acceder a tu escritorio es un navegador web.
En este articulo vamos a instalar Guacamole Apache en Ubuntu Server 18.04 LTS.

Una vez tengas Ubuntu Server instalado, actualizado y con IP fija podemos comenzar con el proceso:

Instalamos dependencias:

sudo apt install -y gcc-6 g++-6 libcairo2-dev libjpeg-turbo8-dev libpng-dev libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libvncserver-dev libssl-dev libvorbis-dev libwebp-dev

Instalamos Tomcat:

sudo apt install tomcat8 tomcat8-admin tomcat8-common tomcat8-user -y

Permitimos el paso por el firewall:

sudo ufw allow 8080
sudo ufw reload


Descargamos y descomprimimos Guacamole:

wget https://sourceforge.net/projects/guacamole/files/current/source/guacamole-server-0.9.14.tar.gz
tar xzf guacamole-server-0.9.14.tar.gz
cd guacamole-server-0.9.14

Corremos el script de configuración:

./configure --with-init-dir=/etc/init.d

Compilamos:

make CC=gcc-6

Instalamos los componentes:

sudo make install

Una vez finalizada la instalación creamos los links:

sudo ldconfig

Habilitamos el inicio automático de Guacamole:

sudo systemctl enable guacd
sudo systemctl start guacd


Descargamos el cliente de Guacamole:

wget https://sourceforge.net/projects/guacamole/files/current/binary/guacamole-0.9.14.war

Creamos directorio de configuración de Guacamole:

sudo mkdir /etc/guacamole

Movemos los binarios del cliente al directorio creado anteriormente:

sudo mv guacamole-0.9.14.war /etc/guacamole/guacamole.war


Creamos el enlace simbólico:

sudo ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/

Reiniciamos Tomcat y Guacamole:

sudo systemctl restart tomcat8
sudo systemctl restart guacd


Configuramos Guacamole:

Creamos los directorios de configuración:

sudo mkdir /etc/guacamole/{extensions,lib}

Añadimos el directorio home de Guacamole al archivo de configuración de Tomcat:

sudo su
echo "GUACAMOLE_HOME=/etc/guacamole"
>> /etc/default/tomcat8

Creamos el archivo guacamole.properties

vim /etc/guacamole/guacamole.properties

Con el contenido:

guacd-hostname: localhost
guacd-port:    4822
user-mapping:    /etc/guacamole/user-mapping.xml
auth-provider:    net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider


Linkeamos el archivo de configuracion de Guacamole a Tomcat:

ln -s /etc/guacamole /usr/share/tomcat8/.guacamole

Creamos el archivo de autenticación. (Este es el archivo que alojará los datos Usuario y de las conexiones SSH, RDP y/ VNC), pero antes vamos a generar el hash md5 para la contraseña del usuario que tendrá permisos para iniciar sessión en Guacamole:

sudo echo -n CONTRASEÑA | openssl md5

El output será algo como esto:
(stdin)= f1379b1b0123458dd91fa6ebb41ec50c

Copien el hash a un txt de modo temporal y pasamos a crear el archivo de configuracion:

vim /etc/guacamole/user-mapping.xml

Con el siguiente contenido:


NOTA: Editen los datos del .xml anexando su información personal de: Usuario, IP y demás datos necesarios.

Creamos los siguientes link simbolicos para que funcione el RDP:

ln -s /usr/local/lib/freerdp/guacsnd-client.so /usr/lib/x86_64-linux-gnu/freerdp
ln -s /usr/local/lib/freerdp/guacdr-client.so /usr/lib/x86_64-linux-gnu/freerdp/


Reinciamos los servicios:

systemctl restart tomcat8
systemctl restart guacd


Y nos dirigimos a la IP:

http://IPDELSERVIDOR:8080/guacamole


 Al ingresar veremos los equipos que agregamos y con un click podremos ingresar:


Y desde cualquier equipo pueden pulsar "Ctrl" + "Alt" + "Shift" para desplegar un panel que nos mostrará algunas opciones como por ejemplo volver al home:


2 comentarios :

  1. Buen dia amigo, gran explicacion, pero si yo quiero agregar usuarios via GUI Grafico desde Settings en Guacamole como admin?? Yo instale tal cual los pasos pero para entrar como guacadmin no se puede.

    ResponderEliminar