Ce projet vous permet de configurer facilement un hôte de saut Guacamole avec un proxy inverse TLS en option (auto-signé ou Let's Encrypt), une intégration Active Directory, une authentification multifacteur, des améliorations de l'interface utilisateur de stockage de connexion rapide et d'enregistrement d'historique, une interface utilisateur personnalisée sur le thème sombre. modèle, sauvegarde automatique de la base de données, alertes par e-mail et options de renforcement interne, notamment fail2ban pour la défense contre les attaques par force brute. Il existe également des options pour les déploiements en entreprise similaires au cluster Guacamole Bastion d'Amazon.
Collez le lien ci-dessous dans un terminal et suivez les invites ( ne l'exécutez PAS en tant que root, le script vous demandera sudo ) :
wget https://raw.githubusercontent.com/itiligent/Guacamole-Install/main/1-setup.sh && chmod +x 1-setup.sh && ./1-setup.sh
Un système d'exploitation compatible :
Debian : 12.x ou 11.x
Variantes d'Ubuntu LTS : 24.04, 23.04, 22.04
Raspbian Buster ou Bullseye
1 cœur de processeur + 2 Go de RAM pour 25 utilisateurs (plus un minimum de RAM et d'espace disque pour le système d'exploitation sélectionné).
Ports TCP ouverts : 22, 80 et 443 (aucun autre service utilisant 80, 8080 et 443)
Si vous sélectionnez l'une des options de proxy inverse TLS, vous devez créer un enregistrement DNS PRIVÉ pour le site proxy interne et un enregistrement DNS PUBLIC supplémentaire si vous sélectionnez l'option Let's Encrypt.
Packages Sudo et wget installés
L'utilisateur exécutant 1-setup.sh
doit disposer des autorisations sudo
Le script principal 1-setup.sh
guide l'installation avec les étapes suivantes :
Configurez le nom d'hôte du système et le nom DNS local (le DNS local doit être cohérent pour le proxy TLS).
Sélectionnez une installation MySQL locale ou utilisez une instance MySQL locale ou distante préexistante.
Choisissez une extension d'authentification : DUO, TOTP, LDAP/Active Directory ou aucune.
Sélectionnez les fonctionnalités facultatives de la console : intégrations de l'interface utilisateur de connexion rapide et de stockage enregistré par historique.
Sélectionnez le front-end Guacamole : proxy inverse Nginx (HTTP ou HTTPS) ou utilisez l'interface native Guacamole sur le port 8080.
Les nouveaux certificats du navigateur serveur et client sont enregistrés dans $HOME/guac-setup/tls-certs/[date-time]/
.
Suivez éventuellement les instructions à l'écran pour l'importation du certificat client afin d'éviter les avertissements du navigateur https.
Si vous choisissez d'installer Nginx avec TLS auto-signé :
Pour personnaliser les nombreuses options de script disponibles :
Quittez 1-setup.sh
à la première invite.
Toutes les options de script configurables sont affichées sous Options de configuration silencieuse au début de 1-setup.sh
.
Certaines combinaisons d' options de configuration silencieuse permettront une installation entièrement sans surveillance prenant en charge un déploiement de masse ou des versions Docker hautement personnalisées.
Réexécutez votre script modifié localement après avoir apporté des modifications (ne réexécutez pas le lien Web d'installation automatique - voir ci-dessous.
Autres notes d'installation personnalisée :
Attention : la réexécution du programme d'installation automatique télécharge à nouveau la suite de scripts, ce qui écrasera toutes vos modifications de script. Vous devez donc exécuter 1-setup.sh LOCALEMENT après l'édition. Si d'autres scripts enfants sont modifiés, leurs liens de téléchargement correspondants dans le script 1-setup.sh doivent également être commentés.
Les scripts de mise à niveau sont automatiquement personnalisés avec vos paramètres d'installation spécifiques pour des mises à jour futures cohérentes. (Le nouveau téléchargement à partir du lien d'installation automatique après l'installation écrasera tous les paramètres personnalisés comme ci-dessus.)
Le proxy inverse Nginx est configuré par défaut sur au moins TLS 1.2. Pour les systèmes anciens, consultez les sections commentées du fichier /etc/nginx/nginx.conf
après l'installation.
Un travail de sauvegarde MySQL quotidien est automatiquement configuré sous la crontab du propriétaire du script.
L'option Quick Connect apporte des implications de sécurité supplémentaires, soyez conscient des risques potentiels dans votre environnement.
Options de renforcement manuel après l'installation :
add-fail2ban.sh
: Ajoute une politique de verrouillage pour Guacamole afin de se prémunir contre les attaques de mot de passe par force brute.
add-tls-guac-daemon.sh
: Encapsule le trafic interne entre le serveur guac et l'application guac dans TLS.
add-auth-ldap.sh
: Script de modèle pour une intégration simplifiée d'Active Directory.
add-smtp-relay-o365.sh
: Script de modèle pour l'intégration d'alertes par e-mail avec MSO65 (mot de passe de l'application BYO).
Suivez le thème et les instructions de marque ici. Pour revenir au thème par défaut, supprimez simplement le fichier branding.jar de /etc/guacamole/extensions
, videz le cache de votre navigateur et redémarrez.
Pour renouveler les certificats auto-signés ou modifier le nom DNS/l'adresse IP locale du proxy inverse :
Réexécutez 4a-install-tls-self-signed-nginx.sh
pour créer un nouveau certificat Nginx (les certificats clients du navigateur qui l'accompagnent seront également mis à jour). Videz toujours le cache de votre navigateur après avoir modifié les certificats.
Voir ici.
Voir ici
Pour mettre à niveau Guacamole, modifiez upgrade-guacamole.sh
pour refléter les dernières versions de Guacamole et du connecteur MySQL/J avant de l'exécuter. Ce script mettra automatiquement à jour les extensions TOTP, DUO, LDAP, Quick Connect et History Recorded Storage, le cas échéant.
Pour une couche DATABASE distincte : utilisez le install-mysql-backend-only.sh
ici pour installer une instance autonome de la base de données MySQL Guacamole.
Pour une couche APPLICATION distincte : exécutez 1-setup.sh
et pointez les nouvelles installations vers votre instance de base de données distincte. Dites simplement non à l'option "Installer MySQL localement" et à toute autre option d'installation de proxy inverse local.
Pour une couche FRONT END distincte : utilisez les scripts d'installation Nginx inclus pour créer une couche frontale Nginx distincte, puis appliquez votre technique d'équilibrage de charge TLS préférée. Alternativement, les équilibreurs de charge AWS/Azure/GCP ou le proxy HA peuvent fournir une persistance et une affinité de session supérieures par rapport à l'Open Source Nginx.
Le lien d'exécution automatique télécharge ces fichiers dans $HOME/guac-setup
:
1-setup.sh
: Le script d'installation parent.
2-install-guacamole.sh
: script de construction et d'installation des sources de Guacamole.
3-install-nginx.sh
: script d'installation de Nginx.
4a-install-tls-self-signed-nginx.sh
: Installer/actualiser le script de certificats TLS auto-signés.
4b-install-tls-letsencrypt-nginx.sh
: Let's Encrypt pour le script d'installation de Nginx.
add-auth-duo.sh
: script d'installation de l'extension Duo MFA.
add-auth-ldap.sh
: script de modèle d'installation d'extension Active Directory.
add-auth-totp.sh
: script d'installation de l'extension TOTP MFA.
add-xtra-quickconnect.sh
: script d'installation de l'extension de console Quick Connect.
add-xtra-histrecstore.sh
: script d'installation de l'extension History Recorded Storage.
add-smtp-relay-o365.sh
: Script pour la configuration du relais d'authentification SMTP O365 (mot de passe de l'application BYO).
add-tls-guac-daemon.sh
: Encapsulez le trafic interne entre le serveur guacd et l'application Web Guacamole dans TLS.
add-fail2ban.sh
: Script d'installation de Fail2ban (et politique de protection Guacamole).
backup-guacamole.sh
: script de configuration de sauvegarde MySQL.
upgrade-guacamole.sh
: script de mise à niveau de l'application Guacamole, de l'extension et du connecteur MySQL.
branding.jar
: modèle de base pour personnaliser le thème de l'interface utilisateur de Guacamole.