Instalar Apache Guacamole en Debian Linux

May 9, 2021 - Reading time: 6 minutes

¿Qué es Apache Guacamole?

Apache Guacamole es una pasarela de escritorio remoto que no necesita clientes y soporta protocolos estándar como RDP, SSHJ y VNC. Lo único que necesitaremos para acceder es un navegador de internet

Script de instalación

Pasos

Descargamos el script. El Script nos permite instalar todo lo necesario autenticación OTP, base de datos MariaDB, la última versión de apache tomcat, etc.

wget https://git.io/fxZq5 -O guac-install.sh

Permisos de ejecución sobre el script

chmod +x guac-install.sh

A continuación tenemos dos opciones para instalarlo, de forma interactiva o mediante parámetros.

Instalación interactiva (si no tenemos una base de datos ya instalada recomiendo la forma interactiva)

./guac-install.sh

Mediante parámetros

./guac-install.sh -n -o -h [mysql host] -p [puerto] -r [mysql password] --guacdb [nombre de la base de datos] --guacuser [usuario con acceso a la base de datos] --guacpwd [contraseña de la base de datos]

Una vez terminada la instalación podemos acceder a guacamole a través de: http://:8080/guacamole

Si nos da un error es posible que se deba a este bug con la zona horario, para solucionarlo:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

A continuación tenemos que editar el archivo 50-server.cnf con nuestro editor de texto favorito:

vim mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

Y añadimos la siguiente línea:

`default_time_zone='Europe/Madrid'

Finalmente reiniciamos la base de datos

systemctl restart mysql

Si queremos configurar la página /guacamole como principal tenemos que modificar el directorio /var/lib/tomcat9/webapps

    cd /var/lib/tomcat9/webapps
    mv ROOT ROOT.BAK
    cp guacamole.war ROOT.war
    cp guacamole ROOT

Para acceder desde cualquier sitio deberíamos instalar un proxy inverso (Apache2, NGINX, Caddy) para continuar con apache2

Instalar Apache2

apt install apache2

Activamos los siguientes módulos

    a2enmod rewrite
    a2enmod proxy_http
    a2enmod proxy_wstunnel

Editamos 000-default.conf si no tenemos otras páginas o servicios

vim /etc/apache2/sites-enabled/000-default.conf

    <VirtualHost *:443>
        ServerAdmin [email protected]
        ServerName guac.hostname.org
        ProxyRequests Off

        <Location />
                ProxyPreserveHost On
                ProxyPass http://server-ip:8080/guacamole/
                ProxyPassReverse http://server-ip:8080/guacamole/
        </Location>

        <Location /websocket-tunnel>
                Order allow,deny
                Allow from all
                ProxyPass ws://server-ip:8080/guacamole/websocket-tunnel
                ProxyPassReverse ws://server-ip:8080/guacamole/websocket-tunnel
        </Location>

Configurar conexión a máquina

Una vez accedamos a la web: Usuario (esquina superior derecha) > Configuración >Conexiones > Nueva Conexión

Windows

Editar Conexión
Nombre: Test Machine
Protocolo: RDP
Parámetros

Red

    Nombre de host: IP o nombre de la máquina
    Puerto: 3389

Autenticación

    Usuario: nuestro usuario
    Contraseña: secret
    Dominio: Dominio al que pertenece la máquina o nombre de la máquina
    Modo seguridad: Si pertenece a un dominio NLA (autenticación a nivel de red), si no podemos utilizar todo
    Ignorar certificado del servidor: activado

Es posible que no podamos establecer conexión en remoto si no deshabilitamos el audio o configuramos el color a 16-bit

    Profundidad de color: Color (16-bit)
    Deshabilitar audio: activado

Linux

Linux es más sencillo dependiendo si queremos conectarnos por SSH, VNC o incluso con RDP, en este último caso debemos instalar xrdp o alguna alternativa en la máquina a la que queremos conectarnos.

Conexión SSH

Editar Conexión
Nombre: Linux Machine
Protocolo: SSH
Parámetros

Red

    Nombre de host: IP o nombre de la máquina
    Puerto: 22

Autenticación

    Usuario: nuestro usuario
    Contraseña: secret
    Llave Privada: Podemos utilizar una private key si la tenemos.

Si utilizamos VNC hay que cambiar el puerto (5901), , y si utilizamos xRDP la configuración es similar a la de WIndows.

About

I am a system administrator, everything is hosted in my home.
I document my projects here, sometimes I will write about other things.