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
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://
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
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>
Una vez accedamos a la web: Usuario (esquina superior derecha) > Configuración >Conexiones > Nueva Conexión
Nombre: Test Machine
Protocolo: RDP
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 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
Nombre: Linux Machine
Protocolo: SSH
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.