Apache Guacamole, un bastion d'administration RDP, SSH, etc.

Florian BURNEL - ITConnect - 08/11
Dans ce tutoriel, nous allons installer Apache Guacamole sur un serveur Debian pour avoir un bastion d'administration pour serveurs Windows, Linux, etc.

Sommaire

  • I. Présentation
  • II. Les fonctions clés d'Apache Guacamole
  • III. Installer Apache Guacamole sur Debian
    • A. Installer les prérequis d'Apache Guacamole
    • B. Compiler et installer Apache Guacamole "Server"
    • C. Créer le répertoire de configuration
    • D. Installer Guacamole Client (Web App)
    • E. Base de données MariaDB pour l'authentification
  • IV. Premiers pas avec Apache Guacamole
    • A. Créer un nouveau compte admin
    • B. Ajouter une connexion RDP
    • C. Apache Guacamole : erreur de connexion en RDP
    • C. Historique des connexions
  • V. Améliorer son installation d'Apache Guacamole
    • A. Mettre en place la double authentification TOTP
    • B. Créer un enregistrement vidéo des sessions
    • C. Plusieurs utilisateurs vers un même serveur
  • VI. Conclusion

I. Présentation

Dans ce tutoriel, nous allons apprendre à installer et configurer Apache Guacamole, une solution open source et gratuite que l'on peut mettre en place en tant que bastion d'administration, passerelle d'accès ou encore serveur de rebond. Une machine sous Debian 12 sera utilisée pour héberger l'application.



  • Voir la vidéo sur YouTube

Le serveur Apache Guacamole sera utilisé comme point d'entrée unique pour accéder aux serveurs et équipements de l'infrastructure que ce soit via les protocoles RDP, SSH, VNC et Telnet, et même Kubernetes. Que l'on soit en externe ou en interne, les connexions aux serveurs vont obligatoirement passer par l'hôte Apache Guacamole.

Dans l'exemple ci-dessous, l'hôte Apache Guacamole est positionné en DMZ puisqu'il doit être accessible depuis l'extérieur. L'accès depuis l'extérieur n'est pas obligatoire puisque l'on pourrait imposer une connexion VPN au réseau de l'entreprise avant de permettre la connexion sur l'interface de Guacamole. De la même manière pour publier l'hôte Guacamole sur Internet, il est recommandé de s'appuyer sur un reverse proxy en frontal (le pare-feu pourrait très bien assurer cette fonction), ce qui permettra en même temps de passer les flux en HTTPS.

Apache Guacamole devient un élément central de l'infrastructure puisqu'il sert de passerelle pour administrer les machines. Rassurez-vous, il est possible d'avoir plusieurs hôtes Apache Guacamole pour répartir la charge et assurer la haute disponibilité.

Enfin, les règles de pare-feu doivent aussi être adaptées : l'hôte Apache Guacamole doit être le seul à pouvoir se connecter en RDP/SSH/VNC/Etc. sur les machines de l'infrastructure.

Version originale de l'article : 21 juin 2023

II. Les fonctions clés d'Apache Guacamole

Apache Guacamole intègre plusieurs fonctions séduisantes qui vont nous permettre de mieux suivre les accès aux serveurs de notre infrastructure.

  • Centralisation et suivi des connexions : qui, quand, où, combien de temps, depuis où
  • Aucun client lourd à installer, l'accès s'effectue en mode web grâce au HTML5
  • Authentification multi-facteurs pour l'accès aux connexions, via un code TOTP
  • Authentification SSO, compatible avec SAML, OpenID Connect, CAS ou encore LDAP
  • Enregistrements vidéos des sessions, c'est-à-dire quand une connexion est en cours d'utilisation
  • Gestion des autorisations pour l'accès aux connexions, par groupes ou par utilisateurs

Pour les personnes qui utilisent Azure, sachez qu'Apache Guacamole représente une alternative au Bastion Azure. Si ce sujet vous intéresse, lisez cet article :

  • Apache Guacamole dans Azure

III. Installer Apache Guacamole sur Debian

A. Installer les prérequis d'Apache Guacamole

Tout d'abord, nous devons installer un ensemble de paquets indispensables au bon fonctionnement d'Apache Guacamole. Certains paquets sont spécifiques à certaines fonctionnalités, comme les connexions RDP par exemple. Cette liste de dépendance est consultable dans la documentation.

  • Documentation - Dépendances Apache Guacamole

Sur la machine Debian, on commence par installer ces fameuses dépendances avec la commande suivante :

apt-get updateapt-get install build-essential libcairo2-dev libjpeg62-turbo-dev libpng-dev libtool-bin uuid-dev libossp-uuid-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev freerdp2-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev libwebsockets-dev libpulse-dev libssl-dev libvorbis-dev libwebp-dev

On attend gentiment la fin de l'installation.

La partie "cliente" d'Apache Guacamole nécessite d'installer un serveur Tomcat, mais nous allons effectuer cette opération plus tard.

Pour effectuer l'installation depuis un compte utilisateur, sans util...
[Courte citation de 8% de l'article original]

Loading...