15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer
12.12.2023

Comment installer et configurer XRDP sur Ubuntu 22.04

XRDP est une implémentation open-source du serveur Remote Desktop Protocol (RDP) de Microsoft pour Linux. Il permet à tout client compatible RDP — notamment Windows Remote Desktop Connection, Remmina et FreeRDP — d’établir une session de bureau graphique complète sur une machine Linux distante. Sur Ubuntu 22.04, XRDP fait office de pont entre le client RDP et une session d’affichage X11 ou Xorg sous-jacente, offrant une expérience de bureau distant réactive et chiffrée sans nécessiter VNC ni logiciel propriétaire.

Ce guide couvre l’installation complète, la configuration des certificats SSL, le renforcement du pare-feu, l’intégration de l’environnement de bureau et la procédure de connexion pour XRDP sur Ubuntu 22.04 LTS — y compris les cas particuliers et les problèmes post-installation que la plupart des tutoriels omettent.

Qu’est-ce que XRDP et comment fonctionne-t-il

XRDP fonctionne selon un modèle client-serveur. Le démon xrdp écoute sur le port TCP 3389 et gère la négociation RDP, la négociation de session et le chiffrement du transport via TLS. En interne, il génère un gestionnaire de session xrdp-sesman qui authentifie les utilisateurs via PAM (Pluggable Authentication Modules) et lance une session X11 via un backend configurable — généralement Xvfb (framebuffer virtuel) ou une session Xorg directe.

Les composants architecturaux clés sont :

  • démon xrdp — gère la négociation du protocole RDP et la terminaison TLS
  • xrdp-sesman — gère le cycle de vie des sessions utilisateur et l’authentification PAM
  • backend X11 — fournit le framebuffer graphique (Xvfb, Xorg ou X11rdp)
  • chansrv — gère le partage du presse-papiers, la redirection audio et le mappage des lecteurs

Cette architecture signifie que XRDP ne remplace pas votre gestionnaire d’affichage — il fonctionne en parallèle, créant des sessions graphiques isolées par utilisateur authentifié.

XRDP vs. Alternatives : Comparaison des protocoles et des fonctionnalités

FonctionnalitéXRDP (RDP)x11vnc (VNC)NoMachine (NX)TeamViewer
ProtocoleRDP (standard Microsoft)VNC/RFBProtocole NXPropriétaire
Client Windows natifOui (MSTSC intégré)Non (client requis)Non (client requis)Non (client requis)
Chiffrement TLSOui (natif)Optionnel (via stunnel)OuiOui
Support multi-sessionOuiNon (affichage unique)OuiOui
Partage du presse-papiersOuiOuiOuiOui
Redirection audioOui (via PulseAudio)LimitéeOuiOui
Performance sur WANBonneMauvaiseExcellenteBonne
Open sourceOui (Apache 2.0)OuiPartielNon
Port3389590040005938

Pour les équipes utilisant déjà une infrastructure Windows, XRDP est le choix le plus efficace sur le plan opérationnel, car il ne nécessite aucun logiciel client supplémentaire sur les machines Windows.

Prérequis

Avant de continuer, assurez-vous des points suivants :

  • Un serveur ou une instance de bureau Ubuntu 22.04 LTS en cours d’exécution
  • Un compte utilisateur avec les privilèges sudo
  • Un environnement de bureau installé (GNOME, XFCE ou MATE — détails ci-dessous)
  • Un accès SSH au serveur pour la configuration initiale
  • UFW ou iptables disponible pour la gestion du pare-feu

Si vous utilisez un VPS sans interface graphique sans environnement de bureau préinstallé, vous devez en installer un avant que XRDP puisse fournir une session graphique. Une installation minimale de XFCE est fortement recommandée pour l’utilisation du bureau distant en raison de sa faible empreinte mémoire.

Étape 1 — Mettre à jour les paquets système

Synchronisez toujours votre index de paquets et appliquez les mises à jour en attente avant d’installer de nouveaux logiciels. Cela évite les conflits de dépendances et garantit que vous recevez la dernière version corrigée de XRDP.

sudo apt update && sudo apt upgrade -y

Redémarrez si une mise à jour du noyau a été appliquée :

sudo reboot

Étape 2 — Installer un environnement de bureau (serveurs sans interface graphique uniquement)

Si votre instance Ubuntu 22.04 ne dispose pas d’interface graphique, installez un environnement de bureau léger. XFCE4 est le choix le plus fiable pour XRDP sur les serveurs sans interface graphique — les sessions GNOME via XRDP sur Ubuntu 22.04 présentent des problèmes de rendu connus liés aux conflits Wayland/GDM3.

sudo apt install xfce4 xfce4-goodies -y

Alternativement, pour MATE :

sudo apt install ubuntu-mate-desktop -y

Note critique pour les utilisateurs de GNOME : Ubuntu 22.04 utilise par défaut une session Wayland. XRDP ne prend pas en charge Wayland nativement. Si vous souhaitez utiliser GNOME, vous devez forcer les sessions Xorg en modifiant /etc/gdm3/custom.conf et en décommentant WaylandEnable=false. Même dans ce cas, GNOME via XRDP sur la version 22.04 produit fréquemment un écran noir à la connexion — XFCE élimine entièrement ce type de problème.

Étape 3 — Installer XRDP

Installez XRDP depuis les dépôts officiels d’Ubuntu :

sudo apt install xrdp -y

Le gestionnaire de paquets installera xrdp ainsi que sa dépendance xorgxrdp, qui fournit le backend du pilote d’affichage basé sur Xorg. L’installation se termine généralement en moins de deux minutes sur un VPS avec cPanel standard ou un serveur bare-metal avec une connexion internet stable.

Étape 4 — Activer et démarrer le service XRDP

Activez XRDP pour qu’il démarre automatiquement au démarrage, puis lancez-le immédiatement :

sudo systemctl enable xrdp
sudo systemctl start xrdp

Vérifiez que le service est actif et en écoute :

sudo systemctl status xrdp

La sortie attendue inclut Active: active (running) et une ligne confirmant que le processus est en écoute. Pour confirmer explicitement la liaison du port :

sudo ss -tlnp | grep 3389

Vous devriez voir une sortie similaire à :

LISTEN  0  10  0.0.0.0:3389  0.0.0.0:*  users:(("xrdp",pid=XXXX,fd=12))

Si le port n’est pas lié, vérifiez /var/log/xrdp.log pour les erreurs de démarrage avant de continuer.

Étape 5 — Configurer les permissions du certificat SSL

Lors de l’installation, XRDP crée un utilisateur système dédié nommé xrdp. Le démon utilise la clé de certificat à /etc/ssl/private/ssl-cert-snakeoil.key pour le chiffrement des sessions TLS. Par défaut, ce fichier appartient au groupe ssl-cert, et l’utilisateur xrdp n’en fait pas partie — ce qui provoque des échecs de négociation TLS ou un repli vers des sessions non chiffrées.

Ajoutez l’utilisateur xrdp au groupe ssl-cert :

sudo usermod -a -G ssl-cert xrdp

Redémarrez XRDP pour appliquer le changement d’appartenance au groupe :

sudo systemctl restart xrdp

Note de production : Le certificat ssl-cert-snakeoil est un certificat auto-signé généré par le paquet ssl-cert. Pour les environnements de production ou tout serveur exposé à internet, remplacez-le par un certificat valide émis par une autorité de certification de confiance. Si votre serveur dispose d’un domaine public, vous pouvez utiliser un certificat de votre fournisseur de certificats SSL et configurer XRDP pour le référencer via les directives certificate et key_file dans /etc/xrdp/xrdp.ini.

Pour utiliser un certificat personnalisé :

sudo nano /etc/xrdp/xrdp.ini

Localisez et mettez à jour ces lignes :

certificate=/etc/ssl/certs/your-domain.crt
key_file=/etc/ssl/private/your-domain.key

Étape 6 — Configurer la session de bureau pour XRDP

XRDP lit un fichier de configuration de session par utilisateur à ~/.xsession ou ~/.Xclients pour déterminer quel environnement de bureau lancer. Sans ce fichier, de nombreuses configurations Ubuntu 22.04 produisent un écran gris ou noir après l’authentification.

Pour XFCE, créez le fichier de session pour votre utilisateur :

echo "xfce4-session" > ~/.xsession
chmod +x ~/.xsession

Pour MATE :

echo "mate-session" > ~/.xsession
chmod +x ~/.xsession

Si vous configurez cela pour plusieurs utilisateurs sur un Serveur Dédié, automatisez cette étape avec une boucle shell ou un outil de gestion de configuration tel qu’Ansible.

Étape 7 — Configurer le pare-feu

XRDP écoute sur le port TCP 3389. Vous devez explicitement autoriser ce port via UFW. Cependant, exposer RDP directement à internet sur 0.0.0.0 représente un risque de sécurité important — RDP est l’un des services les plus activement ciblés par les attaques par force brute sur internet.

Approche recommandée : restreindre l’accès à une plage d’IP spécifique ou à un sous-réseau VPN.

Autoriser l’accès uniquement depuis un sous-réseau de confiance spécifique :

sudo ufw allow from 192.168.1.0/24 to any port 3389

Si vous vous connectez depuis une seule adresse IP connue :

sudo ufw allow from YOUR.IP.ADDRESS to any port 3389

Si vous devez autoriser un accès plus large temporairement (non recommandé pour la production) :

sudo ufw allow 3389/tcp

Rechargez et vérifiez les règles du pare-feu :

sudo ufw reload
sudo ufw status verbose

Recommandations de renforcement de la sécurité :

  • Changer le port par défaut : Modifiez /etc/xrdp/xrdp.ini et définissez port=33890 (ou tout port non standard), puis mettez à jour votre règle UFW en conséquence. Cela réduit considérablement le bruit de scan automatisé.
  • Utiliser fail2ban : Installez et configurez fail2ban avec le jail xrdp pour bloquer les IP après des tentatives d’authentification répétées échouées.
  • Tunneliser via SSH : Pour une sécurité maximale, liez XRDP à 127.0.0.1 uniquement et accédez-y via un tunnel SSH. Cela élimine entièrement l’exposition directe à internet.

Pour lier XRDP uniquement à localhost :

sudo nano /etc/xrdp/xrdp.ini

Définissez :

address=127.0.0.1

Puis connectez-vous via un tunnel SSH depuis votre client :

ssh -L 3389:127.0.0.1:3389 user@your-server-ip -N

Pointez votre client RDP vers 127.0.0.1:3389.

Étape 8 — Se connecter au bureau distant XRDP

Depuis Windows

  1. Appuyez sur Win + R, tapez mstsc et appuyez sur Entrée pour ouvrir Connexion Bureau à distance.
  2. Dans le champ Ordinateur, entrez l’adresse IP de votre serveur Ubuntu (par ex., 203.0.113.45).
  3. Cliquez sur Connecter.
  4. Sur l’écran de connexion XRDP, sélectionnez le type de session (généralement Xvnc ou Xorg), entrez votre nom d’utilisateur et mot de passe Ubuntu, puis cliquez sur OK.

Depuis Linux (Remmina)

  1. Ouvrez Remmina et créez un nouveau profil de connexion.
  2. Définissez le protocole sur RDP.
  3. Entrez l’IP du serveur, votre nom d’utilisateur et votre mot de passe.
  4. Définissez la profondeur de couleur sur Couleur vraie (32 bpp) pour une meilleure qualité visuelle.
  5. Connectez-vous.

Depuis macOS

Utilisez Microsoft Remote Desktop depuis le Mac App Store — il prend en charge RDP nativement et fonctionne parfaitement avec XRDP.

Résolution des problèmes courants de XRDP sur Ubuntu 22.04

Écran noir après la connexion

C’est le problème le plus courant sur Ubuntu 22.04. Causes et solutions :

  • Fichier ~/.xsession manquant : Créez-le comme indiqué à l’étape 6.
  • Conflit de session Wayland : Désactivez Wayland dans /etc/gdm3/custom.conf.
  • Fichier de verrouillage X obsolète : Supprimez les fichiers /tmp/.X*-lock et redémarrez XRDP.

Échec d’authentification malgré des identifiants corrects

  • Vérifiez que PAM ne bloque pas le processus xrdp-sesman : consultez /var/log/xrdp-sesman.log.
  • Assurez-vous que le compte utilisateur n’est pas verrouillé : sudo passwd -S username.
  • Confirmez que l’utilisateur n’est pas obligé de changer son mot de passe à la prochaine connexion.

Mauvaises performances ou latence élevée

  • Réduisez la profondeur de couleur dans les paramètres du client RDP (16 bits au lieu de 32 bits).
  • Activez RemoteFX ou le codec H.264 dans /etc/xrdp/xrdp.ini si votre client le prend en charge.
  • Passez du backend Xvnc à Xorg dans le sélecteur de session XRDP pour de meilleures performances sur les serveurs avec accélération matérielle.

Port 3389 inaccessible

  • Confirmez que XRDP est en cours d’exécution : sudo systemctl status xrdp
  • Confirmez que UFW ne bloque pas : sudo ufw status
  • Vérifiez les groupes de sécurité du fournisseur cloud ou les ACL réseau — de nombreux fournisseurs de VPS disposent d’une couche de pare-feu supplémentaire au niveau de l’hyperviseur, indépendante de UFW.

Options de configuration avancées

Activation du partage du presse-papiers

La redirection du presse-papiers entre le client RDP et le bureau distant nécessite le service de canal xrdp-chansrv. Il démarre automatiquement avec la session, mais si le presse-papiers ne fonctionne pas, vérifiez que le processus est en cours d’exécution :

ps aux | grep xrdp-chansrv

S’il ne fonctionne pas, recherchez les erreurs dans les fichiers journaux ~/.xrdp/ dans le répertoire personnel de l’utilisateur.

Activation de la redirection audio

Installez le module RDP PulseAudio :

sudo apt install pulseaudio-module-xrdp -y

Déconnectez-vous et reconnectez-vous. La sortie audio du bureau distant sera redirigée vers les haut-parleurs de votre client local.

Sessions simultanées multi-utilisateurs

XRDP prend en charge plusieurs sessions simultanées par défaut. Chaque utilisateur authentifié reçoit une session X11 isolée. Pour vérifier les sessions actives :

sudo xrdp-seslist

Pour les environnements avec de nombreux utilisateurs simultanés — tels que les postes de travail de développeurs ou les environnements de formation — un Serveur Dédié fournit les ressources CPU et RAM nécessaires pour maintenir plusieurs sessions graphiques sans contention.

Points clés et liste de contrôle décisionnelle

Avant de déployer XRDP en production, vérifiez chacun des points suivants :

  • Environnement de bureau installé et ~/.xsession configuré par utilisateur (XFCE recommandé)
  • Utilisateur xrdp ajouté au groupe ssl-cert — omettre cette étape provoque des erreurs TLS
  • Wayland désactivé si vous utilisez GNOME (/etc/gdm3/custom.conf)
  • Les règles du pare-feu restreignent le port 3389 aux seules IP de confiance — n’exposez jamais RDP à 0.0.0.0 sur un serveur public
  • Certificat auto-signé remplacé par un certificat valide émis par une CA pour les déploiements en production
  • fail2ban configuré avec un jail XRDP pour atténuer les attaques par force brute
  • Tunnel SSH envisagé comme alternative à l’exposition directe du port pour les environnements à haute sécurité
  • Pare-feu au niveau de l’hyperviseur vérifié — les groupes de sécurité du fournisseur cloud sont indépendants de UFW
  • Fichiers journaux surveillés à /var/log/xrdp.log et /var/log/xrdp-sesman.log pour les erreurs de session

Foire aux questions

XRDP prend-il en charge Ubuntu 22.04 avec Wayland ?

Non. XRDP nécessite une session X11/Xorg. Ubuntu 22.04 utilise Wayland par défaut sous GNOME. Vous devez soit désactiver Wayland dans /etc/gdm3/custom.conf, soit utiliser un environnement de bureau qui utilise Xorg par défaut, tel que XFCE ou MATE.

Quelle est la différence entre les types de session Xvnc et Xorg dans XRDP ?

Le backend Xvnc crée un framebuffer virtuel en utilisant VNC en interne, ce qui est compatible avec la plupart des configurations mais présente une charge CPU plus élevée. Le backend Xorg utilise le pilote xorgxrdp pour le rendu Xorg direct, offrant de meilleures performances et une prise en charge de l’accélération matérielle. Utilisez Xorg lorsque disponible.

Plusieurs utilisateurs peuvent-ils se connecter à XRDP simultanément ?

Oui. XRDP crée une session X11 séparée et isolée pour chaque utilisateur authentifié. Les sessions sont indépendantes et n’interfèrent pas les unes avec les autres, ce qui rend XRDP adapté à l’accès distant multi-utilisateurs sur un seul serveur.

Est-il sûr d’exposer le port XRDP 3389 directement à internet ?

Non. RDP est l’un des protocoles les plus ciblés par les attaques par force brute et les exploits. Restreignez toujours le port 3389 aux adresses IP connues via des règles de pare-feu, utilisez fail2ban et envisagez de tunneliser XRDP via SSH pour tout déploiement exposé à internet.

Comment désinstaller XRDP d’Ubuntu 22.04 ?

Exécutez sudo apt purge xrdp -y && sudo apt autoremove -y. Cela supprime les paquets XRDP et leurs dépendances. Supprimez également les fichiers de configuration résiduels avec sudo rm -rf /etc/xrdp et retirez la règle UFW avec sudo ufw delete allow 3389/tcp.

15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer