Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierDomoPi

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Guacamole a déjà fait l'objet d'une présentation, mais on revient dessus pour essayer d'aller plus loin dans son utilisation et vous montrer comment mettre en place l'authentification à deux facteurs avec un code TOTP, ainsi que la configuration d'accès en SSH ou RDP.

Guacamole, ou comment prendre le contrôle sur vos équipements SSH, RDP ou VNC via une interface Web
Vous vous êtes déjà retrouvés dans la situation où vous deviez lancer un programme, faire un dépannage, récupérer un document, ... tout en étant à distance de votre domicile ? Avec Guacamole, cela devient possible !
Guacamole, contrôler vos équipements en SSH ou RDP via une interface WebDomoPiGuillaume
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

On va en profiter pour changer d'image Docker, celle utilisée jusqu'alors n'étant plus maintenue par son développeur, oznu. Attention, celle-ci reste fonctionnelle, mais ne bénéficie pas des améliorations ou correctifs de sécurité ou de bugs qu'il pourrait y avoir ! Cela nous permet également de basculer sur les images officielles, fournies par la fondation Apache.

Nous allons donc utiliser guacd en tant que passerelle serveur et guacamole pour l'interface web, ainsi que postgres en tant que base de données.

Info ! Cet article a été écrit pour être déployé avec un fichier docker-compose et l'utilisation de dossiers en tant que volumes persistents. Pour ceux qui souhaitent déployer la stack via Portainer, il faudra penser à remplacer les dossiers (par exemple ./data) par un nom de volume (par exemple volume-guac-data), et déclarer les volumes à la fin de la stack.

Commençons par créer les répertoires nécessaires au bon fonctionnement de la stack :

mkdir -p /docker/guacamole/{data,drive,init,record}

Il faut ensuite générer le script d'initialisation de la base de données avec la commande suivante :

docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --postgres > /docker/guacamole/init/initdb.sql

Dans le cas de l'utilisation de Portainer, vous pouvez créer le fichier initdb.sql dans /tmp.

Créez le fichier docker-compose.yml et collez-y le contenu suivant :

version: '2'

services:
  guacd:
    image: guacamole/guacd
    container_name: guacd
    volumes:
      - /docker/guacamole/drive:/drive:rw
      - /docker/guacamole/record:/record:rw
    restart: unless-stopped
    
  guacamole_db:
    image: postgres:13.4
    container_name: guacamole_db
    environment:
      PGDATA: /var/lib/postgresql/data/guacamole
      POSTGRES_DB: guacamole_db
      POSTGRES_PASSWORD: GUAC_DB_PASSWORD
      POSTGRES_USER: guacdb_user
      TZ: Europe/Paris
    volumes:
      - /docker/guacamole/init:/docker-entrypoint-initdb.d:ro
      - /docker/guacamole/data:/var/lib/postgresql/data:rw
    restart: unless-stopped

  guacamole_app:
    image: guacamole/guacamole
    container_name: guacamole_app
    environment:
      GUACD_HOSTNAME: guacd
      POSTGRES_DATABASE: guacamole_db
      POSTGRES_HOSTNAME: guacamole_db
      POSTGRES_PASSWORD: GUAC_DB_PASSWORD
      POSTGRES_USER: guacdb_user
#      TOTP_ENABLED: 'true'
    depends_on:
      - guacd
      - guacamole_db
    ports:
      - 8080:8080
    restart: unless-stopped

Lançons la stack avec la commande docker-compose up -d.

Attention ! Guacamole est accessible depuis l'adresse http://IP.HOTE.DOCKER:8080/guacamole
Après ce premier lancement, vous pouvez commenter la ligne du volume init dans le conteneur guac_db en ajoutant un # en début de ligne. Ce volume n'est utile que pour initialiser la base de données et ne sera plus utilisé.
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Les identifiants par défaut sont guacadmin / guacadmin.

L'interface que vous obtenez est très sobre.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Commencez par vous rendre dans les paramètres, avec le menu disponible en haut à droite en cliquant sur le nom d'utilisateur. Dans l'onglet Utilisateurs, créez un nouvel utilisateur et donnez lui les droits Administrateurs.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Une fois le nouvel utilisateur créé, déconnectez vous et reconnectez-vous avec ce dernier. Retournez dans les réglages et bloquez ou supprimez l'utilisateur par défaut guacadmin.


Sécurité

Pour activer l'authentification à double facteur avec code TOTP et renforcer la sécurité de Guacamole, c'est très simple ! Décommentez la ligne TOTP_ENABLED: 'true' dans la stack et mettez là à jour en la relançant avec la commande docker-compose up -d.

Quand vous accéderez de nouveau à Guacamole et vous identifierez avec votre identifiant, il vous sera demandé de configurer l'authentification à double facteur. Scannez le QR Code avec votre application de gestion TOTP et renseignez le code donné pour valider.

A chaque connexion, vous devrez maintenant saisir le code fourni par l'application en plus de vos identifiant et mot de passe.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Passons maintenant à la configuration des connexions, le but de Guacamole ! Dans les paramètres, rendez-vous dans l'onglet Connexions, et cliquez sur le bouton "Nouvelle Connexion".

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Donnez un nom à la connexion, et choisissez le protocole à utiliser (au choix parmi VNC, RDP, SSH, Telnet ou Kubernetes).


SSH

Le protocole SSH permet à un client (un utilisateur ou bien même une machine) d'ouvrir une session interactive sur une machine distante fin d'envoyer des commandes ou des fichiers de manière sécurisée.

Pour le configurer, choisissez SSH en tant que protocole et renseignez dans la partie Paramètres, Réseau, l'adresse IP ou nom d'hôte ainsi que le port pour le serveur que vous êtes en train de configurer (22 étant le port standard du protocole SSH), puis dans la partie Authentification, l'identifiant et son mot de passe (si vous n'enregistrez pas de mot de passe, il vous sera demandé systématiquement, pareil pour l'identifiant). Vous pouvez également personnaliser l'affichage (utile pour différencier vos différents environnements) ou encore exécuter une commande spécifique. Enfin, enregistrez cette connexion.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

En complément, si vous cochez la case "Activer SFTP" dans la configuration de la connexion, vous aurez la possibilité de charger ou télécharger des fichiers avec votre hôte depuis votre navigateur.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

RDP

Le protocole RDP est aussi appelé communément Bureau à Distance et permet de prendre le contrôle d'un système d'exploitation comme si on était installé devant. Développé par Microsoft, il est disponible sur toutes les versions de Windows mais peut également être installé sur macOS.

Sur Windows 10 ou 11, le Bureau à Distance est disponible uniquement sur les éditions "Professionnel". Pour l'activer, rendez-vous dans le Panneau de configuration et utilisez le champ de recherche pour trouver le paramètre.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Dans Guacamole, ajoutez une nouvelle connexion et choisissez cette fois le protocole RDP. Dans la partie Paramètres, Réseau, saisissez l'adresse IP ou le nom d'hôte de la machine à connecter, ainsi que le port (le port standard du protocole RDP est le 3389). Enfin, dans la partie Authentification, indiquez le nom d'utilisateur et le mot de passe. Plusieurs options matérielles sont disponibles pour transmettre le son, le microphone, les imprimantes, ou monter un partage. D'autres options sont disponibles pour améliorer les performances de la connexion.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Connexion

En revenant sur l'accueil (accessible en cliquant sur votre nom d'utilisateur), vous retrouverez les connexions que vous aurez créé. Cliquez sur une d'entre elles pour vous retrouver connecté à l'hôte distant à travers votre navigateur web.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Astuces

Vous pouvez quitter le terminal avec la commande exit ou avec la combinaison de touches Ctrl + D. Vous pourrez alors choisir de revenir à l'accueil, de vous reconnecter, ou de vous déconnecter de Guacamole.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Lorsque vous êtes connectés, un menu contextuel est disponible en utilisant la combinaison de touches Alt + Ctrl + Shift.
Dans ce menu, vous trouverez :

  • En haut à gauche la session en cours, avec la possibilité d'en ouvrir une nouvelle, ce qui permet de naviguer entre plusieurs connexions simultanément, qui apparaîtront en bas à droite.
  • Toujours en haut, vous trouverez votre session Guacamole ou vous pouvez vous déconnecter, aller à l'accueil ou dans les paramètres.
  • Juste en-dessous, vous aurez le presse-papier Guacamole et pourrez en modifier le contenu avant de le coller dans la fenêtre.
  • Appareil correspond à la partie SFTP et vous permettra d'échanger des fichiers entre votre poste et le poste accédé à distance.
  • Vous pourrez également choisir d'afficher un clavier virtuel ou régler le zoom de l'affichage.
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Conclusion

On espère que ce tutoriel mis à jour vous sera utile et vous permettra d'accéder avec Guacamole à votre infrastructure, de manière centralisée, et surtout à travers une simple interface web. On vous conseille fortement de passer par un proxy inversé (NPM par exemple) pour y accéder de l'extérieur, tout en sécurisant la connexion en https et avec un certificat Let's Encrypt. L'utilisation de la double authentification permet également de renforcer le contrôle d'accès à votre infrastructure.

Si vous avez des questions sur cet article, n'hésitez pas à laisser des commentaires ou à venir échanger avec la communauté sur le groupe Telegram.

Comment administrer une base de données avec Adminer ?

Comment administrer une base de données avec Adminer ?

Que ce soit pour un site web ou des services auto-hébergés, vous disposez certainement d'une ou plusieurs bases de données, que vous devez administrer plus ou moins régulièrement. Vous connaissez probablement phpMyAdmin, l'un des outils les plus utilisés pour ça. Cette interface a été créée initialement pour gérer les bases de données MySQL depuis un serveur php. De nombreux hébergeurs, gratuits comme payants, le proposent, ce qui évite à l'utilisateur d'avoir à l'installer.

Comment administrer une base de données avec Adminer ?

Cette interface pratique permet d'exécuter, très facilement et sans grandes connaissances en bases de données, des requêtes comme les créations de table de données, insertions, mises à jour, suppressions et modifications de structure de la base de données, ainsi que l'attribution et la révocation de droits et l'import/export. Ce système permet de sauvegarder facilement une base de données sous forme de fichier .sql et d'y transférer ses données, même sans connaître SQL. L'utilisation de requêtes SQL reste toutefois possible.

Pour l'installation et l'utilisation de phpMyAdmin, je ne peux que vous rediriger vers la documentation officielle.

L'alternative : Adminer

Aujourd’hui je vous propose de découvrir un outil beaucoup moins connu que phpMyadmin, mais tout aussi efficace: Adminer.

Comment administrer une base de données avec Adminer ?

Adminer est outil léger et pratique qui remplit exactement le même rôle que phpMyadmin : vous permettre de gérer vos bases et tables MySQL en passant par une interface web.

Là où Adminer se démarque de phpMyAdmin, c’est par sa légèreté et sa simplicité d’installation. A l’inverse de phpMyadmin, qui nécessite un peu d’effort à l’installation et un minimum de configuration, Adminer se compose d’un seul et unique fichier php, qu’il vous suffit de déposer dans n’importe quel répertoire accessible sur le web. Adminer est disponible pour MySQL, PostgreSQL, SQLite, MS SQL et Oracle.

Pour l'installation, c'est très simple ! Il suffit de télécharger le fichier php (depuis la page github du développeur) sur votre hébergement, dans un dossier accessible et de vous rendre ensuite à l'adresse www.votresite.com/adminer.php .

Comment administrer une base de données avec Adminer ?

Il vous suffit alors de renseigner votre identifiant et mot de passe MySQL (et accessoirement un nom de base de données, mais ce n’est pas obligatoire) et de vous authentifier.

Comme vous pouvez le voir, l’interface est disponible en plusieurs langues, dont le Français. Toutes les fonctions qu’on peut attendre sont là : gestion (création, édition et suppression) de base de données, gestion des tables, des champs, importation de fichier SQL, exécution de requête SQL directe, gestion des utilisateurs MySQL, privilèges…

Comment administrer une base de données avec Adminer ?
Comment administrer une base de données avec Adminer ?
Comment administrer une base de données avec Adminer ?
Comment administrer une base de données avec Adminer ?

Il est possible d'étendre les fonctionnalités d'Adminer en lui ajoutant des plugins, pour ajouter le support d'extensions xml ou json dans les exports, ou encore changer le thème de l'interface, en ajoutant le fichier adminer.css aux côtés du fichier adminer.php.


Mise en place d'Adminer dans un environnement Docker

Avec les conteneurs que nous mettons en place au travers des articles rédigés, nous pouvons avoir besoin d'accéder à une base de données, pour corriger des entrées, exporter ou importer des données, ... Il est également possible d'ajouter Adminer en tant que conteneur Docker, dans une stack existante (ou dans sa propre stack).

Prenons l'exemple de la stack Nextcloud, qui contient une base de données mariaDB. Nous rajoutons un service adminer comme suivant :

version: '3.8'

services:
  nextcloud_db:
.....

  nextcloud_app:
.....

  adminer:
    image: adminer
    container_name: adminer
    ports:
      - 8080:8080  # Port sur lequel vous accéderez à l'interface web d'Adminer
    depends_on:
      - nextcloud_db  # Permet de s'assurer que le conteneur de la base de données est opérationnel avant de lancer le conteneur Adminer
    restart: unless-stopped

En relançant la stack avec la commande docker-compose up -d ou depuis Portainer, vous devriez pouvoir accéder à Adminer depuis votre navigateur à l'adresse http://<IP.HOTE.DOCKER>:8080. Le serveur est le nom du conteneur, et les identifiants sont ceux que vous avez défini dans le fichier .env.

Comment administrer une base de données avec Adminer ?

Conclusion

Au final, quel est l'intérêt d'Adminer par rapport à phpMyAdmin ? Comme je l'ai dit, la simplicité d'installation ! Un simple fichier php à déposer où bon vous semble, ou bien quelques lignes pour lancer un conteneur et c'est terminé ! L'autre point intéressant, c'est l'absence de configuration à faire. Adminer est immédiatement fonctionnel. Enfin, dernier point non négligeable, et vous l'aurez peut-être remarqué, mais étant bien plus léger, Adminer est également plus réactif à l'utilisation.

Si vous avez des questions sur cet article, n'hésitez pas à laisser un commentaire ou à venir nous retrouver sur le groupe Telegram de la communauté pour échanger.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Guacamole a déjà fait l'objet d'une présentation, mais on revient dessus pour essayer d'aller plus loin dans son utilisation et vous montrer comment mettre en place l'authentification à deux facteurs avec un code TOTP, ainsi que la configuration d'accès en SSH ou RDP.

Guacamole, ou comment prendre le contrôle sur vos équipements SSH, RDP ou VNC via une interface Web
Vous vous êtes déjà retrouvés dans la situation où vous deviez lancer un programme, faire un dépannage, récupérer un document, ... tout en étant à distance de votre domicile ? Avec Guacamole, cela devient possible !
Guacamole, contrôler vos équipements en SSH ou RDP via une interface WebDomoPiGuillaume
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

On va en profiter pour changer d'image Docker, celle utilisée jusqu'alors n'étant plus maintenue par son développeur, oznu. Attention, celle-ci reste fonctionnelle, mais ne bénéficie pas des améliorations ou correctifs de sécurité ou de bugs qu'il pourrait y avoir ! Cela nous permet également de basculer sur les images officielles, fournies par la fondation Apache.

Nous allons donc utiliser guacd en tant que passerelle serveur et guacamole pour l'interface web, ainsi que postgres en tant que base de données.

Info ! Cet article a été écrit pour être déployé avec un fichier docker-compose et l'utilisation de dossiers en tant que volumes persistents. Pour ceux qui souhaitent déployer la stack via Portainer, il faudra penser à remplacer les dossiers (par exemple ./data) par un nom de volume (par exemple volume-guac-data), et déclarer les volumes à la fin de la stack.

Commençons par créer les répertoires nécessaires au bon fonctionnement de la stack :

mkdir -p /docker/guacamole/{data,drive,init,record}

Il faut ensuite générer le script d'initialisation de la base de données avec la commande suivante :

docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --postgres > /docker/guacamole/init/initdb.sql

Dans le cas de l'utilisation de Portainer, vous pouvez créer le fichier initdb.sql dans /tmp.

Créez le fichier docker-compose.yml et collez-y le contenu suivant :

version: '2'

services:
  guacd:
    image: guacamole/guacd
    container_name: guacd
    volumes:
      - /docker/guacamole/drive:/drive:rw
      - /docker/guacamole/record:/record:rw
    restart: unless-stopped
    
  guacamole_db:
    image: postgres:13.4
    container_name: guacamole_db
    environment:
      PGDATA: /var/lib/postgresql/data/guacamole
      POSTGRES_DB: guacamole_db
      POSTGRES_PASSWORD: GUAC_DB_PASSWORD
      POSTGRES_USER: guacdb_user
      TZ: Europe/Paris
    volumes:
      - /docker/guacamole/init:/docker-entrypoint-initdb.d:ro
      - /docker/guacamole/data:/var/lib/postgresql/data:rw
    restart: unless-stopped

  guacamole_app:
    image: guacamole/guacamole
    container_name: guacamole_app
    environment:
      GUACD_HOSTNAME: guacd
      POSTGRES_DATABASE: guacamole_db
      POSTGRES_HOSTNAME: guacamole_db
      POSTGRES_PASSWORD: GUAC_DB_PASSWORD
      POSTGRES_USER: guacdb_user
#      TOTP_ENABLED: 'true'
    depends_on:
      - guacd
      - guacamole_db
    ports:
      - 8080:8080
    restart: unless-stopped

Lançons la stack avec la commande docker-compose up -d.

Attention ! Guacamole est accessible depuis l'adresse http://IP.HOTE.DOCKER:8080/guacamole
Après ce premier lancement, vous pouvez commenter la ligne du volume init dans le conteneur guac_db en ajoutant un # en début de ligne. Ce volume n'est utile que pour initialiser la base de données et ne sera plus utilisé.
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Les identifiants par défaut sont guacadmin / guacadmin.

L'interface que vous obtenez est très sobre.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Commencez par vous rendre dans les paramètres, avec le menu disponible en haut à droite en cliquant sur le nom d'utilisateur. Dans l'onglet Utilisateurs, créez un nouvel utilisateur et donnez lui les droits Administrateurs.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Une fois le nouvel utilisateur créé, déconnectez vous et reconnectez-vous avec ce dernier. Retournez dans les réglages et bloquez ou supprimez l'utilisateur par défaut guacadmin.


Sécurité

Pour activer l'authentification à double facteur avec code TOTP et renforcer la sécurité de Guacamole, c'est très simple ! Décommentez la ligne TOTP_ENABLED: 'true' dans la stack et mettez là à jour en la relançant avec la commande docker-compose up -d.

Quand vous accéderez de nouveau à Guacamole et vous identifierez avec votre identifiant, il vous sera demandé de configurer l'authentification à double facteur. Scannez le QR Code avec votre application de gestion TOTP et renseignez le code donné pour valider.

A chaque connexion, vous devrez maintenant saisir le code fourni par l'application en plus de vos identifiant et mot de passe.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Passons maintenant à la configuration des connexions, le but de Guacamole ! Dans les paramètres, rendez-vous dans l'onglet Connexions, et cliquez sur le bouton "Nouvelle Connexion".

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Donnez un nom à la connexion, et choisissez le protocole à utiliser (au choix parmi VNC, RDP, SSH, Telnet ou Kubernetes).


SSH

Le protocole SSH permet à un client (un utilisateur ou bien même une machine) d'ouvrir une session interactive sur une machine distante fin d'envoyer des commandes ou des fichiers de manière sécurisée.

Pour le configurer, choisissez SSH en tant que protocole et renseignez dans la partie Paramètres, Réseau, l'adresse IP ou nom d'hôte ainsi que le port pour le serveur que vous êtes en train de configurer (22 étant le port standard du protocole SSH), puis dans la partie Authentification, l'identifiant et son mot de passe (si vous n'enregistrez pas de mot de passe, il vous sera demandé systématiquement, pareil pour l'identifiant). Vous pouvez également personnaliser l'affichage (utile pour différencier vos différents environnements) ou encore exécuter une commande spécifique. Enfin, enregistrez cette connexion.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

En complément, si vous cochez la case "Activer SFTP" dans la configuration de la connexion, vous aurez la possibilité de charger ou télécharger des fichiers avec votre hôte depuis votre navigateur.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

RDP

Le protocole RDP est aussi appelé communément Bureau à Distance et permet de prendre le contrôle d'un système d'exploitation comme si on était installé devant. Développé par Microsoft, il est disponible sur toutes les versions de Windows mais peut également être installé sur macOS.

Sur Windows 10 ou 11, le Bureau à Distance est disponible uniquement sur les éditions "Professionnel". Pour l'activer, rendez-vous dans le Panneau de configuration et utilisez le champ de recherche pour trouver le paramètre.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Dans Guacamole, ajoutez une nouvelle connexion et choisissez cette fois le protocole RDP. Dans la partie Paramètres, Réseau, saisissez l'adresse IP ou le nom d'hôte de la machine à connecter, ainsi que le port (le port standard du protocole RDP est le 3389). Enfin, dans la partie Authentification, indiquez le nom d'utilisateur et le mot de passe. Plusieurs options matérielles sont disponibles pour transmettre le son, le microphone, les imprimantes, ou monter un partage. D'autres options sont disponibles pour améliorer les performances de la connexion.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Connexion

En revenant sur l'accueil (accessible en cliquant sur votre nom d'utilisateur), vous retrouverez les connexions que vous aurez créé. Cliquez sur une d'entre elles pour vous retrouver connecté à l'hôte distant à travers votre navigateur web.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Astuces

Vous pouvez quitter le terminal avec la commande exit ou avec la combinaison de touches Ctrl + D. Vous pourrez alors choisir de revenir à l'accueil, de vous reconnecter, ou de vous déconnecter de Guacamole.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Lorsque vous êtes connectés, un menu contextuel est disponible en utilisant la combinaison de touches Alt + Ctrl + Shift.
Dans ce menu, vous trouverez :

  • En haut à gauche la session en cours, avec la possibilité d'en ouvrir une nouvelle, ce qui permet de naviguer entre plusieurs connexions simultanément, qui apparaîtront en bas à droite.
  • Toujours en haut, vous trouverez votre session Guacamole ou vous pouvez vous déconnecter, aller à l'accueil ou dans les paramètres.
  • Juste en-dessous, vous aurez le presse-papier Guacamole et pourrez en modifier le contenu avant de le coller dans la fenêtre.
  • Appareil correspond à la partie SFTP et vous permettra d'échanger des fichiers entre votre poste et le poste accédé à distance.
  • Vous pourrez également choisir d'afficher un clavier virtuel ou régler le zoom de l'affichage.
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Conclusion

On espère que ce tutoriel mis à jour vous sera utile et vous permettra d'accéder avec Guacamole à votre infrastructure, de manière centralisée, et surtout à travers une simple interface web. On vous conseille fortement de passer par un proxy inversé (NPM par exemple) pour y accéder de l'extérieur, tout en sécurisant la connexion en https et avec un certificat Let's Encrypt. L'utilisation de la double authentification permet également de renforcer le contrôle d'accès à votre infrastructure.

Si vous avez des questions sur cet article, n'hésitez pas à laisser des commentaires ou à venir échanger avec la communauté sur le groupe Telegram.

Comment administrer une base de données avec Adminer ?

Comment administrer une base de données avec Adminer ?

Que ce soit pour un site web ou des services auto-hébergés, vous disposez certainement d'une ou plusieurs bases de données, que vous devez administrer plus ou moins régulièrement. Vous connaissez probablement phpMyAdmin, l'un des outils les plus utilisés pour ça. Cette interface a été créée initialement pour gérer les bases de données MySQL depuis un serveur php. De nombreux hébergeurs, gratuits comme payants, le proposent, ce qui évite à l'utilisateur d'avoir à l'installer.

Comment administrer une base de données avec Adminer ?

Cette interface pratique permet d'exécuter, très facilement et sans grandes connaissances en bases de données, des requêtes comme les créations de table de données, insertions, mises à jour, suppressions et modifications de structure de la base de données, ainsi que l'attribution et la révocation de droits et l'import/export. Ce système permet de sauvegarder facilement une base de données sous forme de fichier .sql et d'y transférer ses données, même sans connaître SQL. L'utilisation de requêtes SQL reste toutefois possible.

Pour l'installation et l'utilisation de phpMyAdmin, je ne peux que vous rediriger vers la documentation officielle.

L'alternative : Adminer

Aujourd’hui je vous propose de découvrir un outil beaucoup moins connu que phpMyadmin, mais tout aussi efficace: Adminer.

Comment administrer une base de données avec Adminer ?

Adminer est outil léger et pratique qui remplit exactement le même rôle que phpMyadmin : vous permettre de gérer vos bases et tables MySQL en passant par une interface web.

Là où Adminer se démarque de phpMyAdmin, c’est par sa légèreté et sa simplicité d’installation. A l’inverse de phpMyadmin, qui nécessite un peu d’effort à l’installation et un minimum de configuration, Adminer se compose d’un seul et unique fichier php, qu’il vous suffit de déposer dans n’importe quel répertoire accessible sur le web. Adminer est disponible pour MySQL, PostgreSQL, SQLite, MS SQL et Oracle.

Pour l'installation, c'est très simple ! Il suffit de télécharger le fichier php (depuis la page github du développeur) sur votre hébergement, dans un dossier accessible et de vous rendre ensuite à l'adresse www.votresite.com/adminer.php .

Comment administrer une base de données avec Adminer ?

Il vous suffit alors de renseigner votre identifiant et mot de passe MySQL (et accessoirement un nom de base de données, mais ce n’est pas obligatoire) et de vous authentifier.

Comme vous pouvez le voir, l’interface est disponible en plusieurs langues, dont le Français. Toutes les fonctions qu’on peut attendre sont là : gestion (création, édition et suppression) de base de données, gestion des tables, des champs, importation de fichier SQL, exécution de requête SQL directe, gestion des utilisateurs MySQL, privilèges…

Comment administrer une base de données avec Adminer ?
Comment administrer une base de données avec Adminer ?
Comment administrer une base de données avec Adminer ?
Comment administrer une base de données avec Adminer ?

Il est possible d'étendre les fonctionnalités d'Adminer en lui ajoutant des plugins, pour ajouter le support d'extensions xml ou json dans les exports, ou encore changer le thème de l'interface, en ajoutant le fichier adminer.css aux côtés du fichier adminer.php.


Mise en place d'Adminer dans un environnement Docker

Avec les conteneurs que nous mettons en place au travers des articles rédigés, nous pouvons avoir besoin d'accéder à une base de données, pour corriger des entrées, exporter ou importer des données, ... Il est également possible d'ajouter Adminer en tant que conteneur Docker, dans une stack existante (ou dans sa propre stack).

Prenons l'exemple de la stack Nextcloud, qui contient une base de données mariaDB. Nous rajoutons un service adminer comme suivant :

version: '3.8'

services:
  nextcloud_db:
.....

  nextcloud_app:
.....

  adminer:
    image: adminer
    container_name: adminer
    ports:
      - 8080:8080  # Port sur lequel vous accéderez à l'interface web d'Adminer
    depends_on:
      - nextcloud_db  # Permet de s'assurer que le conteneur de la base de données est opérationnel avant de lancer le conteneur Adminer
    restart: unless-stopped

En relançant la stack avec la commande docker-compose up -d ou depuis Portainer, vous devriez pouvoir accéder à Adminer depuis votre navigateur à l'adresse http://<IP.HOTE.DOCKER>:8080. Le serveur est le nom du conteneur, et les identifiants sont ceux que vous avez défini dans le fichier .env.

Comment administrer une base de données avec Adminer ?

Conclusion

Au final, quel est l'intérêt d'Adminer par rapport à phpMyAdmin ? Comme je l'ai dit, la simplicité d'installation ! Un simple fichier php à déposer où bon vous semble, ou bien quelques lignes pour lancer un conteneur et c'est terminé ! L'autre point intéressant, c'est l'absence de configuration à faire. Adminer est immédiatement fonctionnel. Enfin, dernier point non négligeable, et vous l'aurez peut-être remarqué, mais étant bien plus léger, Adminer est également plus réactif à l'utilisation.

Si vous avez des questions sur cet article, n'hésitez pas à laisser un commentaire ou à venir nous retrouver sur le groupe Telegram de la communauté pour échanger.

❌
❌