{{tag>Xenial bureau_à_distance tutoriel BROUILLON}} ---- ====== 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 [[wpfr>Remote_Desktop_Protocol|RDP®]] est disponible. Par exemple des [[wpfr>Client_léger|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|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. Comment configurer vnc4server? Quel est sont interaction avec Vino? Faut-il oui ou non utiliser Vino? Les réponses que l'on peut trouver sur les différentes pages existantes sont disparates, brouillons et inadaptées à l'usage précis avec Xrdp. Il faut donc préciser pour qu'un utilisateur moyen puisse faire fonctionner XRDP. ===== Installation ===== [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>xrdp]]**. sur 14.04 Trusty server,tout fonctionne sans aucun paramétrage supplémentaire... Certe la fenêtre texte est un peu petite! ===== Configuration ===== === Configuration de sesman === [[:tutoriel:comment_modifier_un_fichier|Ouvrez le fichier]] **/etc/xrdp/sesman.ini**. Pour l'instant, rien ne fonctionne, car la section [Xvnc] ne contient que les quatre 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 */ param3=-nolisten param4=tcp 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 === [[:tutoriel:comment_modifier_un_fichier|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®. === Configuration du clavier === Les configurations du clavier en local et en distant sont différentes. Ainsi si Ubuntu est en anglais à la base et même si en local, vous avez bien configuré le clavier en azerty, le clavier distant reste en qwerty. Voici la commande à exécuter **en local**, (pas en session distante) ! sudo xrdp-genkeymap /etc/xrdp/km-0409.ini relancer votre session distante si elle était ouverte. ===== 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. [[:tutoriel:comment_modifier_un_fichier|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. {{ :capture2.jpg?nolink&300|}} Essais sur ubuntu 16.04 depuis Windows 7 : Le log de connexion me renvois une erreur après une autentification réussie, même en apportant les modifications à sesman.ini décrites plus haut : meme erreur depuis Ubuntu v16.04 (client RDP Remmina) vers ubuntu 15.04 Il semble que les bureaux Unity et Gnome ne soient pas compatibles avec xrdp. Mais cela fonctionne en installant xfce4 : sudo apt-get install xfce4 Il faut ensuite indiquer à Ubuntu que c'est le bureau xfce qui doit être utilisé : echo xfce4-session >~/.xsession Ensuite redémarrer xrdp : sudo /etc/init.d/xrdp restart NB: Et **il faut conserver le fichier /etc/xrdp/sesman.ini d'origine**. Testé avec Ubuntu 16.04 depuis un Windows 7. ===== Désinstallation ===== Et si vous voulez désinstaller xrdp tapez: apt-get remove xrdp ===== Pour en savoir plus ===== * [[http://xrdp.sourceforge.net/|(en) XRDP chez sourceforge.]] * [[:vnc|VNC (Virtual Network Computing)]] sur la documentation ubuntu-fr. * [[http://forum.ubuntu-fr.org/viewtopic.php?id=372863|RDP sur un serveur ubuntu ?]] sur le forum ubuntu-fr. ---- //Contributeurs principaux : [[http://patin.gaubert.free.fr/fiches/fiche16.html|legaub]]//