Cette page est en cours de rédaction.
Apportez votre aide…
Ceci est une ancienne révision du document !
XRDP ou comment se connecter depuis un client RDP® sur un serveur Ubuntu
On peut être confronté à des machines windows® verrouillées, sur lesquelles on ne peut rien installer, et où seul le protocole RDP® est disponible. Par exemple des clients légers.
Si l'on souhaite se connecter depuis ces machines sur un serveur Ubuntu, une seule solution : installer XRDP sur ce dernier.
Xrdp est une couche s'installant sur le serveur. Elle fait office de serveur RDP® pour le client qui veut se connecter, et se comporte comme un client VNC pour le serveur ubuntu.
Entre les deux, se glisse un gestionnaire de session dénommé sesman, qui :
- donne le choix, à la connexion, entre différents modules. Ceux-ci sont listés dans /etc/xrdp/xrdp.ini, on y trouve bien sûr VNC.
- appelle PAM pour l'authentification.
- fait en sorte que le néo client VNC, avatar du client RDP, se connecte à une session VNC fonctionnelle. Le plus souvent en la créant, à l'aide des paramètres choisis dans /etc/xrdp/sesman.ini et /etc/xrdp/startwm.sh.
Prérequis
Avoir un serveur VNC fonctionnel (avec par exemple vnc4server) et les droits administrateurs sur le serveur. Savoir installer un paquet, éditer un fichier et éventuellement contrôler la machine distante à l'aide d'un autre protocole, typiquement ssh.
Installation
La dernière version de XRDP est la 0.4.1, elle est présente dans les dépôts.
Configuration
Configuration de sesman
Ouvrez le fichier /etc/xrdp/sesman.ini.
Pour l'instant, rien ne fonctionne, car la section [Xvnc] ne contient que deux arguments :
param1=-bs /* désactive le "backing store support" sur tous les écrans */ param2=-ac /* interdit l'édition des listes de contrôle d'accès par le client */
Il faut compléter cette section, de la manière suivante:
param3=-fp /* ces quatre paramètres corrigent le bug #78282 du paquet vnc4server */ param4=/usr/share/fonts/X11/misc param5=-extension param6=XFIXES
Personnellement, j'y ai aussi ajouté :
param7=-depth /* pour forcer la profondeur de couleur */ param8=16 param9=-localhost /* pour contraindre la connexion via xrdp */
On peut aussi ajuster les autres paramètres à sa convenance (sections [Globals], [Security], etc. …). ATTENTION, certaines options sont ignorées. (Voir la man page de sesman.ini.)
Menu de connexion
Ouvrez le fichier /etc/xrdp/xrdp.ini.
Conserver simplement les sections [globals] et [xrdp1] que l'on renomme pour le fun :
[globals] bitmap_cache=yes bitmap_compression=yes port=3389 crypt_level=low channel_code=1 [xrdp1] name=legaub vous invite sur un serveur Ubuntu lib=libvnc.so username=ask password=ask ip=127.0.0.1 port=-1
Redémarrer avec :
sudo /etc/init.d/xrdp restart
Vous pouvez désormais vous connecter à votre serveur en utilisant le protocole RDP®.
Problème de configuration
Une difficulté surgit si l'on veut passer, par exemple -DisconnectClients=0 ou -NerverShared=1. En effet, impossible de glisser le signe "=" nulle part.
Ouvrez le fichier /etc/xrdp/startwm.sh.
Ajouter les lignes suivantes :
vncconfig -set NeverShared=1 vncconfig -set DisconnectClients=0
Attention, l'utilisation de "vncconfig" fait que le nouveau paramètre ne sera pris en compte que lors du démarrage d'une nouvelle session.
Désinstallation
Pour en savoir plus
- VNC (Virtual Network Computing) sur la documentation ubuntu-fr.
- Le tuto de juin 2007 sur planet ubuntu-fr, qui présente bien l'aspect théorique.
- RDP sur un serveur ubuntu ? sur le forum ubuntu-fr.
Contributeurs principaux : legaub