Este proyecto le permite configurar fácilmente un jump-host de Guacamole con proxy inverso TLS opcional (autofirmado o Let's Encrypt), integración de Active Directory, autenticación multifactor, mejoras en la interfaz de usuario de almacenamiento de grabación de historial y conexión rápida, una interfaz de usuario personalizada con temática oscura. plantilla, copia de seguridad automática de la base de datos, alertas por correo electrónico y opciones de refuerzo interno, incluido fail2ban para la defensa contra ataques de fuerza bruta. También hay opciones para implementaciones empresariales similares al Guacamole Bastion Cluster de Amazon.
Pegue el siguiente enlace en una terminal y siga las instrucciones ( NO lo ejecute como root, el script le solicitará sudo ):
wget https://raw.githubusercontent.com/itiligent/Guacamole-Install/main/1-setup.sh && chmod +x 1-setup.sh && ./1-setup.sh
Un sistema operativo compatible:
Debian: 12.x o 11.x
Variantes de Ubuntu LTS: 24.04, 23.04, 22.04
Raspbian Buster o Bullseye
1 núcleo de CPU + 2 GB de RAM por cada 25 usuarios (más RAM y espacio en disco mínimos para el sistema operativo seleccionado).
Puertos TCP abiertos: 22, 80 y 443 (ningún otro servicio utiliza 80, 8080 y 443)
Si selecciona cualquiera de las opciones de proxy inverso TLS, debe crear un registro DNS PRIVADO para el sitio proxy interno y un registro DNS PÚBLICO adicional si selecciona la opción Let's Encrypt.
Paquetes sudo y wget instalados
El usuario que ejecuta 1-setup.sh
debe tener permisos sudo
El script principal 1-setup.sh
guía la instalación con los siguientes pasos:
Configure el nombre de host del sistema y el nombre DNS local (el DNS local debe ser coherente para el proxy TLS).
Seleccione una instalación local de MySQL o utilice una instancia MySQL local o remota preexistente.
Elija una extensión de autenticación: DUO, TOTP, LDAP/Active Directory o ninguna.
Seleccione funciones opcionales de la consola: integraciones de la interfaz de usuario de conexión rápida y almacenamiento registrado en el historial.
Seleccione la interfaz de Guacamole: proxy inverso de Nginx (HTTP o HTTPS) o use la interfaz nativa de Guacamole en el puerto 8080.
Los nuevos certificados del navegador del servidor y del cliente se guardan en $HOME/guac-setup/tls-certs/[date-time]/
.
Opcionalmente, siga las instrucciones en pantalla para importar el certificado del cliente para evitar advertencias del navegador https.
Si opta por instalar Nginx con TLS autofirmado:
Para personalizar las muchas opciones de script disponibles:
Salga de 1-setup.sh
en el primer mensaje.
Todas las opciones de script configurables se muestran en Opciones de configuración silenciosa al inicio de 1-setup.sh
.
Ciertas combinaciones de las opciones de configuración silenciosa permitirán una instalación totalmente desatendida que admita una implementación masiva o compilaciones de Docker altamente personalizadas.
Vuelva a ejecutar su secuencia de comandos editada localmente después de realizar cambios (no vuelva a ejecutar el enlace web de instalación automática; consulte a continuación).
Otras notas de instalación personalizada:
Precaución: Al volver a ejecutar el instalador automático se vuelve a descargar el conjunto de scripts y esto sobrescribirá todas las ediciones de los scripts. Por lo tanto, debe ejecutar 1-setup.sh LOCALMENTE después de editarlo. Si se editan otros scripts secundarios, también se deben comentar sus enlaces de descarga correspondientes en el script 1-setup.sh.
Los scripts de actualización se personalizan automáticamente con su configuración de instalación específica para futuras actualizaciones consistentes. (Al volver a descargar desde el enlace de instalación automática después de la instalación se sobrescribirán todas las configuraciones personalizadas como se indica arriba).
El proxy inverso de Nginx está configurado de forma predeterminada con al menos TLS 1.2. Para sistemas antiguos, consulte las secciones comentadas del archivo /etc/nginx/nginx.conf
después de la instalación.
Una tarea de copia de seguridad diaria de MySQL se configura automáticamente en el crontab del propietario del script.
La opción Conexión rápida trae algunas implicaciones de seguridad adicionales; tenga en cuenta los riesgos potenciales en su entorno.
Opciones de endurecimiento manual posterior a la instalación:
add-fail2ban.sh
: agrega una política de bloqueo para Guacamole para protegerlo contra ataques de contraseña de fuerza bruta.
add-tls-guac-daemon.sh
: envuelve el tráfico interno entre el servidor guac y la aplicación guac en TLS.
add-auth-ldap.sh
: script de plantilla para una integración simplificada de Active Directory.
add-smtp-relay-o365.sh
: script de plantilla para la integración de alertas por correo electrónico con MSO65 (contraseña de la aplicación BYO).
Siga las instrucciones sobre el tema y la marca aquí. Para volver al tema predeterminado, simplemente elimine el archivo branding.jar de /etc/guacamole/extensions
, borre la memoria caché de su navegador y reinicie.
Para renovar certificados autofirmados o cambiar el nombre DNS/dirección IP local del proxy inverso:
Vuelva a ejecutar 4a-install-tls-self-signed-nginx.sh
para crear un nuevo certificado Nginx (también se actualizarán los certificados del cliente del navegador adjuntos). Borre siempre la memoria caché de su navegador después de cambiar los certificados.
Ver aquí.
ver aquí
Para actualizar Guacamole, edite upgrade-guacamole.sh
para reflejar las últimas versiones de Guacamole y MySQL Connector/J antes de ejecutarlo. Este script actualizará automáticamente las extensiones TOTP, DUO, LDAP, Quick Connect y History Recorded Storage, si están presentes.
Para una capa de BASE DE DATOS separada: use install-mysql-backend-only.sh
aquí para instalar una instancia independiente de la base de datos MySQL de Guacamole.
Para una capa de APLICACIÓN separada: ejecute 1-setup.sh
y apunte las nuevas instalaciones a su instancia de base de datos separada. Simplemente diga no a la opción "Instalar MySQL localmente" y a cualquier otra opción de instalación de proxy inverso local.
Para una capa FRONT END separada: use los scripts del instalador de Nginx incluidos para crear una capa frontal de Nginx separada y luego aplique su técnica de equilibrio de carga TLS preferida. Alternativamente, los balanceadores de carga AWS/Azure/GCP o HA Proxy pueden proporcionar una persistencia y afinidad de sesión superiores en comparación con Nginx de código abierto.
El enlace de ejecución automática descarga estos archivos en $HOME/guac-setup
:
1-setup.sh
: el script de configuración principal.
2-install-guacamole.sh
: script de instalación y compilación del código fuente de Guacamole.
3-install-nginx.sh
: script de instalación de Nginx.
4a-install-tls-self-signed-nginx.sh
: instalar/actualizar el script de certificados TLS autofirmados.
4b-install-tls-letsencrypt-nginx.sh
: script de instalación Let's Encrypt para Nginx.
add-auth-duo.sh
: script de instalación de la extensión Duo MFA.
add-auth-ldap.sh
: script de plantilla de instalación de extensión de Active Directory.
add-auth-totp.sh
: script de instalación de la extensión TOTP MFA.
add-xtra-quickconnect.sh
: script del instalador de la extensión de la consola Quick Connect.
add-xtra-histrecstore.sh
: script de instalación de la extensión de almacenamiento registrado en el historial.
add-smtp-relay-o365.sh
: Script para la configuración del relé de autenticación SMTP de O365 (contraseña de la aplicación BYO).
add-tls-guac-daemon.sh
: envuelve el tráfico interno entre el servidor guacd y la aplicación web Guacamole en TLS.
add-fail2ban.sh
: script del instalador de Fail2ban (y política de protección de Guacamole).
backup-guacamole.sh
: script de configuración de respaldo de MySQL.
upgrade-guacamole.sh
: script de actualización de la aplicación, extensión y conector MySQL de Guacamole.
branding.jar
: plantilla base para personalizar el tema de la interfaz de usuario de Guacamole.