Solution communautaire

Installer Apache Guacamole sur CasaOS ou ZimaOS en toute sécurité

A 2023 CasaOS tutorial introduced Apache Guacamole through BigBearCasaOS as a browser gateway for VNC, RDP and SSH.

En bref : Guacamole moderne est un service en trois parties, pas seulement un conteneur web

Apache Guacamole vous donne accès à RDP, VNC et SSH depuis un navigateur, sans client de bureau. Un déploiement Docker de type production comprend généralement l’application web Guacamole, guacd et une base de données telle que PostgreSQL ou MySQL/MariaDB. L’ancien paquet BigBearCasaOS de 2023 doit être considéré comme une solution pratique historique, et non comme une référence architecturale.

Utilisez les conteneurs Guacamole officiels

Le projet Apache publie les images prises en charge guacamole/guacamole et guacamole/guacd. La pile Docker Guacamole décrit l’architecture officielle. Les modes d’installation de Guacamole expliquent pourquoi l’authentification par base de données est préférable pour les déploiements réels.

Architecture de conteneurs recommandée

guacamole-web
    |
    +-- guacd
    |
    +-- postgres ou mariadb

Gardez les trois services sur un réseau Docker privé. Ne publiez que le point de terminaison web de Guacamole. N’exposez pas la base de données ni guacd sur le réseau local, sauf si un autre composant en a réellement besoin.

Initialisez la base de données avant la première connexion

L’extension d’authentification par base de données de Guacamole nécessite le chargement de son schéma avant que l’application web puisse enregistrer les utilisateurs et les connexions. Utilisez les fichiers d’initialisation SQL correspondant exactement à la version de Guacamole et au type de base de données utilisés. Conservez le répertoire de données de la base de données sur un stockage persistant.

Placez HTTPS en amont avant toute exposition distante

Guacamole peut transporter des mots de passe administrateur et des sessions de bureau à distance. L’exposer en HTTP non chiffré constitue donc une mauvaise limite de sécurité. Utilisez un proxy inverse avec HTTPS et une authentification forte. Le proxy HTTPS de ZimaOS fournit le modèle de proxy inverse de ZimaOS.

Utilisez la MFA ou le SSO lorsque Guacamole est accessible depuis Internet

Apache Guacamole prend en charge des extensions pour TOTP, OpenID Connect, SAML et d’autres systèmes d’authentification. L’accès aux bureaux à distance est une fonction d’administration : protégez-le en conséquence au lieu de vous reposer uniquement sur un mot de passe local court.

Quand exécuter Guacamole dans une machine virtuelle

Si vous souhaitez isoler Guacamole du moteur Docker du NAS, ou si vous disposez déjà de plusieurs services d’infrastructure, une petite machine virtuelle Debian/Ubuntu vous offre une limite claire pour les mises à jour et le pare-feu. La page Configuration requise pour les machines virtuelles de ZimaOS présente les ressources nécessaires sur l’hôte pour cette séparation.

La page Configuration requise pour les applications ZimaOS est utile lorsque Guacamole partage le NAS avec des bases de données, des serveurs multimédias et des outils de surveillance.

Conservez séparément la base de données et la configuration de Guacamole

Ne considérez pas le conteneur web comme la partie persistante de Guacamole. Les comptes utilisateur, les connexions enregistrées et les données d’authentification résident dans la base de données, tandis que les extensions et la configuration personnalisée peuvent se trouver dans des répertoires montés. Sauvegardez ces composants persistants avant de remplacer les images. Tirer une nouvelle image de conteneur devrait être une opération courante ; devoir recréer de mémoire chaque connexion distante ne devrait pas l’être.

Configurez correctement les WebSockets du proxy inverse

Guacamole utilise des connexions persistantes dans le navigateur et la prise en charge des WebSockets pour les sessions interactives. Si la connexion fonctionne, mais que les bureaux à distance se déconnectent, se figent ou offrent de mauvaises performances derrière un proxy, vérifiez la transmission des WebSockets et les délais d’expiration du proxy avant d’accuser RDP ou VNC. Gardez le chemin ou le nom d’hôte de Guacamole stable afin que le comportement des rappels et des sessions du navigateur ne change pas à chaque mise à jour.

Séparez l’accès à Guacamole des identifiants des systèmes cibles

Un compte Guacamole contrôle l’accès à la passerelle ; le système cible Windows/Linux possède toujours ses propres identifiants et règles RDP, VNC ou SSH. Évitez de réutiliser un même mot de passe administrateur partout. Pour un accès partagé au sein d’un foyer ou d’une équipe, créez des utilisateurs Guacamole nominatifs et accordez à chacun uniquement les connexions dont il a besoin.

Testez la passerelle avant de l’exposer

Avant d’ajouter un DNS public, testez une connexion SSH ou RDP depuis le réseau local, vérifiez le fonctionnement du presse-papiers et des sessions, redémarrez chaque conteneur Guacamole et assurez-vous que les connexions enregistrées fonctionnent toujours. Testez ensuite la sauvegarde et la restauration de la base de données. Une passerelle qui résiste à la recréation des conteneurs est bien plus proche d’un déploiement maintenable qu’une passerelle qui ne fonctionne que jusqu’à la prochaine mise à jour de l’image.

FAQ

Guacamole nécessite-t-il un client de bureau ?

Non. Les utilisateurs se connectent depuis un navigateur web, tandis que Guacamole convertit le trafic du navigateur en sessions RDP, VNC ou SSH.

Guacamole nécessite-t-il une base de données ?

Pour une gestion des utilisateurs et des connexions de type production, oui. La méthode simple d’authentification XML convient principalement aux tests de base.

Dois-je exposer guacd sur Internet ?

Non. Gardez guacd privé, derrière l’application web Guacamole.

Guacamole peut-il remplacer un VPN ?

Il peut fournir un accès depuis un navigateur aux bureaux à distance configurés, mais ce n’est pas un tunnel réseau privé général pour tous les services.

Puis-je utiliser MariaDB à la place de PostgreSQL ?

Oui. Les options d’authentification par base de données prises en charge comprennent les bases de données compatibles avec MySQL et PostgreSQL, à condition de les configurer avec l’extension et le schéma correspondants.