Qu'est-ce que xRDP ?
xRDP est un serveur open source qui implémente le protocole RDP (Remote Desktop Protocol) de Microsoft sur les systèmes Linux. Il permet de se connecter à un bureau Linux distant depuis n'importe quel client RDP — Windows, macOS ou Linux — sans logiciel supplémentaire côté client.
Prérequis
- Un serveur sous Debian 13 (Trixie) avec accès root ou sudo
- Un environnement de bureau installé (XFCE recommandé pour les performances)
- Un accès réseau sur le port 3389
Installation de xRDP sur Debian 13
1. Mise à jour du système
sudo apt update && sudo apt upgrade -y
2. Installation de l'environnement de bureau
XFCE est le meilleur choix pour une connexion RDP — léger et réactif :
sudo apt install -y xfce4 xfce4-goodies
Alternatives :
# GNOME (plus lourd, plus complet)
sudo apt install -y gnome-core
# KDE Plasma
sudo apt install -y kde-plasma-desktop
3. Installation de xRDP
sudo apt install -y xrdp
sudo systemctl enable xrdp
sudo systemctl start xrdp
4. Configuration de la session
Créez le fichier .xsession dans le home de l'utilisateur :
echo "xfce4-session" > ~/.xsession
chmod +x ~/.xsession
Pour GNOME :
echo "gnome-session" > ~/.xsession
Résolution du problème d'écran noir
C'est le problème le plus courant avec xRDP. Si vous obtenez un écran noir après connexion :
# Éditer la config xRDP
sudo nano /etc/xrdp/startwm.sh
# Ajouter AVANT les lignes test/exec :
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
Puis redémarrez :
sudo systemctl restart xrdp
Connexion depuis les différents OS
Depuis Windows
Ouvrez Bureau à distance (mstsc.exe), entrez l'IP du serveur et connectez-vous avec vos identifiants Linux.
Depuis macOS
Installez Microsoft Remote Desktop depuis le Mac App Store, ajoutez un PC avec l'IP du serveur.
Depuis Linux
# Remmina (recommandé)
sudo apt install -y remmina remmina-plugin-rdp
# Ou en ligne de commande
xfreerdp /v:IP_SERVEUR /u:utilisateur /size:1920x1080
Sécurisation
Firewall
# UFW
sudo ufw allow from 192.168.1.0/24 to any port 3389
sudo ufw enable
# Ou iptables
sudo iptables -A INPUT -p tcp --dport 3389 -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 3389 -j DROP
Fail2ban contre le brute force
sudo apt install -y fail2ban
# Créer /etc/fail2ban/jail.d/xrdp.conf
sudo tee /etc/fail2ban/jail.d/xrdp.conf << 'EOF'
[xrdp]
enabled = true
port = 3389
filter = xrdp
logpath = /var/log/xrdp.log
maxretry = 3
bantime = 3600
EOF
sudo systemctl restart fail2ban
Tunnel SSH (accès sécurisé depuis l'extérieur)
# Depuis le client
ssh -L 3389:localhost:3389 user@serveur
# Puis connectez-vous en RDP sur localhost:3389
Dépannage
| Problème | Solution |
|---|---|
| Écran noir | Vérifier .xsession + variables DBUS dans startwm.sh |
| Connexion refusée | sudo systemctl status xrdp + vérifier le port 3389 |
| Session qui freeze | Utiliser XFCE au lieu de GNOME, réduire la profondeur couleur |
| Pas de son | sudo apt install -y xrdp pulseaudio-module-xrdp |