Déployer RustDesk avec Docker – serveur d’accès à distance auto-hébergé

Dans ce tutoriel, nous allons voir comment déployer un serveur RustDesk avec Docker afin de disposer d’une solution d’accès à distance auto-hébergée.

RustDesk est une alternative open source à des outils comme TeamViewer ou AnyDesk, offrant une prise de contrôle à distance sécurisée sans dépendre d’un service tiers.

Grâce à Docker, le déploiement du serveur RustDesk (composé des services HBBS et HBBR) devient simple, rapide et reproductible.

Nous verrons étape par étape comment installer, configurer et lancer votre propre instance RustDesk pour prendre le contrôle de vos ordinateurs à distance en toute sécurité depuis votre infrastructure.

Présentation de RustDesk et de ses composants (HBBS / HBBR)

RustDesk est une solution open source d’accès à distance qui permet de prendre le contrôle d’un ordinateur à travers Internet, de manière similaire à TeamViewer ou AnyDesk, mais sans dépendre d’un service cloud tiers.

Elle est conçue pour être auto-hébergée, garantissant ainsi la confidentialité des connexions et des données.

RustDesk se compose de deux services principaux : HBBS et HBBR.

HBBS – RustDesk Signal Server

Le service HBBS (RustDesk Signal Server) joue le rôle de serveur de signalisation.
Il est chargé de :

  • gérer la découverte et l’enregistrement des clients RustDesk,
  • transmettre les informations de connexion entre les postes clients et hôtes,
  • rediriger les connexions vers le bon serveur relais si nécessaire.

En résumé, c’est le point d’entrée qui permet aux clients RustDesk de se trouver mutuellement.

HBBR – RustDesk Relay Server

Le service HBBR (RustDesk Relay Server) agit comme relais de communication.
Il est utilisé lorsque la connexion directe (peer-to-peer) entre les deux appareils n’est pas possible — par exemple à cause du NAT ou d’un pare-feu.
Dans ce cas, le flux de données (écran, clavier, souris) transite par HBBR.

Ce serveur assure donc :

  • la communication sécurisée entre les clients RustDesk,
  • le transfert des flux lorsque la connexion directe échoue,
  • la redondance et la stabilité de l’accès à distance.

Fonctionnement global

  1. Le client RustDesk contacte HBBS pour obtenir les informations de connexion.
  2. Si une connexion directe est possible, elle est établie en P2P.
  3. Sinon, la communication passe par HBBR qui relaie le trafic entre les deux machines.

Cette architecture garantit une connexion rapide et fiable, tout en permettant de garder le contrôle total du serveur d’accès à distance.

Prérequis

Avant de commencer le déploiement de RustDesk avec Docker, assurez-vous de disposer des éléments suivants :

  • Un serveur Linux avec un accès Internet pour le téléchargement des images Docker
  • Docker et Docker Compose d’installés : https://rdr-it.com/ubuntu-24-04-installation-de-docker-et-docker-compose/
  • Un nom de domaine ou un sous-domaine pointant vers votre serveur
  • Les ports suivants d’ouvert :
    • 21115/tcp → RustDesk Relay (HBBR)
    • 21116/tcp → RustDesk Signal (HBBS)
    • 21117/tcp → RustDesk NAT traversal (UDP possible)

Concernant les ressources systèmes :

  • 1 vCPU
  • 1 Go de RAM
  • 10 Go d’espace disque

Déploiement de RustDeck

Sur le serveur créé un dossier où l’on va mettre le fichier docker-compose.yml.

sudo mkdir -p /containers/rustdeck

Aller dans le dossier :

cd /containers/rustdeck

Créer et éditer le fichier docker-compose.yml :

sudo nano docker-compose.yml

Voici le contenu du fichier docker-compose.yml :

services:
  hbbs:
    container_name: hbbs
    image: rustdesk/rustdesk-server:latest
    environment:
      - ALWAYS_USE_RELAY=Y
    command: hbbs
    volumes:
      - ./data:/root
    network_mode: "host"

    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    image: rustdesk/rustdesk-server:latest
    command: hbbr
    volumes:
      - ./data:/root
    network_mode: "host"
    restart: unless-stopped

Télécharger les images :

sudo docker compose pull

Démarrer les conteneurs :

sudo docker compose up -d

Pour configurer le client, nous allons avoir besoin de la clé, pour la récupérer il faut afficher le contenu du fichier ./data/id_ed25519.pub

sudo cat ./data/id_ed25519.pub

Le serveur RustDeck est maintenant installé.

Installer et configurer le client RustDeck sur Windows

Pour continuer, installer le client RustDeck sur au moins deux ordinateurs.

Le client est disponible : https://github.com/rustdesk/rustdesk/releases

Une fois installé, aller dans les paramètres du client , dans la partie Serveur ID et Serveur relais 1 entrer l’enregistrement DNS du serveur et dans le champ Key 2 entrer la clé du fichier id_ed25519.pub et cliquer sur Appliquer 3.

Si le client est communique correctement avec le serveur, sur l’Accueil on peut voir le client : Prêt.

Prendre la main sur un ordinateur avec le client RustDeck

Depuis le client, entrer l’ID de l’ordinateur 1 et cliquer sur Se connecter 2.

Une nouvelle s’ouvre sans attente de la session distante ….

Sur l’autre ordinateur, l’utilisateur doit Accepter 1 la connexion.

On peut maintenant agir sur l’ordinateur distant.

Déploiement du client par GPO

Le client est disponible au format msi, il peut donc être déployer par GPO.

Il faut ensuite appliquer la configuration à l’aide la commande suivante :

Set-Location $env:ProgramFiles\RustDesk\
.\rustdesk.exe --config "CONFIG-HASH"

CONFIG-HASH est récupérable à l’aide du bouton copier dans un client RustDeck sur la page de configuration.

Conclusion

En suivant ce tutoriel, vous avez mis en place un serveur RustDesk auto-hébergé à l’aide de Docker, comprenant les services HBBS et HBBR.
Cette solution vous permet de prendre le contrôle à distance de vos postes sans dépendre d’un service tiers, tout en maîtrisant la sécurité et la confidentialité de vos connexions.

Grâce à la simplicité de Docker, le déploiement, la mise à jour et la maintenance du serveur sont facilités.
RustDesk constitue aujourd’hui une alternative open source sérieuse à des solutions propriétaires comme TeamViewer ou AnyDesk, idéale pour les environnements professionnels ou personnels souhaitant garder la maîtrise totale de leur infrastructure d’accès à distance.

Romain Drouche
Architecte Système | MCSE: Core Infrastructure
Expert en infrastructures IT avec plus de 15 ans d’expérience sur le terrain. Actuellement Chef de projet Systèmes et Réseaux et Référent SSI (Sécurité des Systèmes d’Information), je mets mon expertise au service de la fiabilité et de la sécurité des environnements technologiques.

Laisser un commentaire