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 |
|---|---|---|---|---|
| Protocole | RDP (standard Microsoft) | VNC/RFB | Protocole NX | Propriétaire |
| Client Windows natif | Oui (MSTSC intégré) | Non (client requis) | Non (client requis) | Non (client requis) |
| Chiffrement TLS | Oui (natif) | Optionnel (via stunnel) | Oui | Oui |
| Support multi-session | Oui | Non (affichage unique) | Oui | Oui |
| Partage du presse-papiers | Oui | Oui | Oui | Oui |
| Redirection audio | Oui (via PulseAudio) | Limitée | Oui | Oui |
| Performance sur WAN | Bonne | Mauvaise | Excellente | Bonne |
| Open source | Oui (Apache 2.0) | Oui | Partiel | Non |
| Port | 3389 | 5900 | 4000 | 5938 |
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 -yRedé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 -yAlternativement, pour MATE :
sudo apt install ubuntu-mate-desktop -yNote 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 -yLe 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 xrdpVérifiez que le service est actif et en écoute :
sudo systemctl status xrdpLa 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 3389Vous 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 xrdpRedémarrez XRDP pour appliquer le changement d’appartenance au groupe :
sudo systemctl restart xrdpNote 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.iniLocalisez 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 ~/.xsessionPour MATE :
echo "mate-session" > ~/.xsession
chmod +x ~/.xsessionSi 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 3389Si vous vous connectez depuis une seule adresse IP connue :
sudo ufw allow from YOUR.IP.ADDRESS to any port 3389Si vous devez autoriser un accès plus large temporairement (non recommandé pour la production) :
sudo ufw allow 3389/tcpRechargez et vérifiez les règles du pare-feu :
sudo ufw reload
sudo ufw status verboseRecommandations de renforcement de la sécurité :
- Changer le port par défaut : Modifiez
/etc/xrdp/xrdp.iniet définissezport=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
fail2banavec le jailxrdppour 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.1uniquement 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.iniDéfinissez :
address=127.0.0.1Puis connectez-vous via un tunnel SSH depuis votre client :
ssh -L 3389:127.0.0.1:3389 user@your-server-ip -NPointez votre client RDP vers 127.0.0.1:3389.
Étape 8 — Se connecter au bureau distant XRDP
Depuis Windows
- Appuyez sur
Win + R, tapezmstscet appuyez sur Entrée pour ouvrir Connexion Bureau à distance. - Dans le champ Ordinateur, entrez l’adresse IP de votre serveur Ubuntu (par ex.,
203.0.113.45). - Cliquez sur Connecter.
- Sur l’écran de connexion XRDP, sélectionnez le type de session (généralement
XvncouXorg), entrez votre nom d’utilisateur et mot de passe Ubuntu, puis cliquez sur OK.
Depuis Linux (Remmina)
- Ouvrez Remmina et créez un nouveau profil de connexion.
- Définissez le protocole sur RDP.
- Entrez l’IP du serveur, votre nom d’utilisateur et votre mot de passe.
- Définissez la profondeur de couleur sur Couleur vraie (32 bpp) pour une meilleure qualité visuelle.
- 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
~/.xsessionmanquant : 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*-locket 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.inisi votre client le prend en charge. - Passez du backend
XvncàXorgdans 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-chansrvS’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 -yDé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-seslistPour 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
~/.xsessionconfiguré par utilisateur (XFCE recommandé) - Utilisateur
xrdpajouté au groupessl-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.loget/var/log/xrdp-sesman.logpour 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.
