Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
xrdp [Le 08/02/2010, 10:17]
legaub Mise à jour
xrdp [Le 17/02/2023, 20:47] (Version actuelle)
78.196.241.242
Ligne 1: Ligne 1:
 +{{tag>​Xenial bureau_à_distance tutoriel BROUILLON vetuste}}
 +
 +----
 ====== XRDP ou comment se connecter depuis un client RDP® sur un serveur Ubuntu====== ====== XRDP ou comment se connecter depuis un client RDP® sur un serveur Ubuntu======
  
-{{tag>Karmic ​xrdp rdp bureau_à_distance client_léger tutoriel}}+<note warning>Cette documentation est largement obsolète. Les modifications des fichiers de configuration au point 3 sont certainement inutiles et empêchent probablement le fonctionnement de xrdp.</​note>​
  
 On peut être confronté à des machines windows<​sup>​®</​sup>​ 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]]. On peut être confronté à des machines windows<​sup>​®</​sup>​ 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. Si l'on souhaite se connecter depuis ces machines sur un serveur Ubuntu, une seule solution : installer XRDP sur ce dernier.
- 
-<note warning> 
- 
-Cette page est en cours de rédaction. Le brouillon manuscrit se trouve sur ma table de travail. 
- 
-MERCI DE NE PAS MODIFIER CETTE PAGE TANT QUE CET AVERTISSEMENT SERA LÀ. 
- 
-</​note>​ 
- 
-===== Pré Requis ===== 
- 
-Savoir installer un paquet, éditer un fichier et contrôler la machine distante à l'aide d'un autre protocole, typiquement ssh, en vue des tests. 
- 
-===== 1. Structure générale ===== 
  
 Xrdp est une couche s'​installant sur le serveur. Elle fait office de serveur RDP<​sup>​®</​sup>​ pour le client qui veut se connecter, et se comporte comme un client VNC pour le serveur ubuntu. Xrdp est une couche s'​installant sur le serveur. Elle fait office de serveur RDP<​sup>​®</​sup>​ 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 : 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,​ VNC en fait partie.+  * 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.   * appelle PAM pour l'​authentification.
-  * fait en sorte que le néo client VNC, avatar du client RDP, trouve bien 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.+  * 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.
  
-===== 2. Installer et (re)découvrir VNC ===== +===== Prérequis ​=====
-Comme XRDP fait appel à VNC, il n'est pas inutile de découvrir ce dernier (si vous ne le connaissez pas déjà). Ce n'est pas indispensable non plus.+
  
-VNC permet de prendre le contrôle à distance d'une machine (comme déjà décrit [[:​vnc|ici]]) et il permet, en outre, de créer autant de machines virtuelles qu'on le souhaite. Ainsi, "à côté"​ de la session (numérotée :0) ouverte sur la machine distante, peuvent exister d'​autres sessions :1, :2, etc. qui utilisent les ressources de cette même machine.+Installer vnc4server - Virtual network computing server softwareça fonctionne tel quel donc pas de configuration ​à modifier.
  
-Pour créer une session virtuelle, ​il n'est pas nécessaire d'​être root. Il faut exécuter sur le serveur la commande "​vncserver",​ accompagnée de plusieurs paramètres,​ dont certains sont indispensables pour corriger [[https://​bugs.launchpad.net/​ubuntu/​+source/​vnc4/​+bug/​78282|(en) le bug #78282]] (voir post #57).+Si Vino est déjà installé et actif il n'y aura pas de conflit. Il peut donc être ignoré.
  
-Pour visualiser une session distante déjà créée, il faut exécuter sur le client la commande "​vncviewer"​. Celle-ci s'​accompagne inévitablement du nom de la machine distante ainsi que du n° de la session créée.+===== Installation =====
  
-=== 2.1. Sur le serveur ===+[[:​tutoriel:​comment_installer_un_paquet|Installez le paquet]] **[[apt>​xrdp]]**.
  
-<code>user0@serveur:​$~ sudo apt-get install vnc4server</code>+<note>sur 14.04 Trusty server,tout fonctionne sans aucun paramétrage supplémentaire... Certe la fenêtre texte est un peu petite! ​</note>
  
-installe le paquet vnc4server qui permet la création des machines virtuelles. Créons notre première machine, numérotée 14 (Pourquoi 14 ? Parce que) :+===== Configuration =====
  
-<​code>​user0@serveur:​$~ vncserver :​14</​code>​+=== Configuration de sesman ===
  
-Ah, surprise, lors de cette première exécution, "​vncpassword"​ se lance et demande un mot de passe qui sera celui de **toutes** les machines créées par user0 sur "​serveur"​. Il est stocké dans le fichier ​/home/user0/.vnc/passwd. Pour en changer, il faut supprimer ce fichier et exécuter à nouveau "​vncpassword"​.+[[:​tutoriel:​comment_modifier_un_fichier|Ouvrez le fichier]] ​**/etc/xrdp/sesman.ini**.
  
-L'examen de /​home/​user0/​.vnc/​serveur:​14.logmontre les erreurs suivantes : +Pour l'instantrien ne fonctionne, car la section ​[Xvncne contient que les quatre arguments ​:
-  * l'​absence du fichier /​etc/​X11/​xserver/​SecurityPolicy. **Solution :** Créer le répertoire /​etc/​X11/​xserver/​ et y copier le fichier SecurityPolicy que l'on trouve ​[[http://​ubuntuforums.org/​showthread.php?​t=186035|(en) on the net]] (voir post #5). +
-  * une liste de polices de caractères non trouvées. Il s'agit du bug déjà évoqué. **Solution ​:** Ajouter les paramètres -fp /​usr/​share/​fonts/​X11/​misc ainsi que -extension XFIXES.+
  
-La nouvelle commande ressemble donc à :+<​code>​ 
 +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 
 +</​code>​ 
 + 
 +Il faut compléter cette section, de la manière suivante:
  
-<​code>​user0@serveur:​$~ vncserver :14 -fp /​usr/​share/​fonts/​X11/​misc -extension XFIXES</​code>​+<​code>​ 
 +param3=-fp                         /* ces quatre paramètres corrigent le bug #78282 du paquet vnc4server */ 
 +param4=/​usr/​share/​fonts/​X11/​misc 
 +param5=-extension 
 +param6=XFIXES</​code>​
  
-Désormaisle log ne fait plus mention d'aucune erreur. Mais si l'on se connecte à la machine ainsi créée (cf 2.2.), on est déçu : pas d'​environnement graphique, un fond grisâtre et une pauvre console. Il faut maintenant utiliser son éditeur préféré pour modifier le fichier /​home/​user0/​.vnc/​xstartup en sorte qu'il ressemble à ceci :+Personnellementj'y ai aussi ajouté ​:
  
-<​code ​bash>#!/bin/sh +<​code>​ 
-# Uncomment the following two lines for normal desktop: +param7=-depth            ​/* pour forcer la profondeur de couleur ​*/ 
-unset SESSION_MANAGER +param8=16 
-exec sh /​etc/​X11/​xinit/​xinitrc +param9=-localhost ​       ​/* pour contraindre la connexion via xrdp */
-#[ -x /​etc/​vnc/​xstartup ] && exec /​etc/​vnc/​xstartup ​                /* Ce répertoire n'​existe pas ou plus */ +
-[ -r $HOME/​.Xresources ] && xrdb $HOME/​.Xresources +
-#​xsetroot ​-solid grey                                               /* Joli fond d'​écran gris */ +
-#vncconfig -iconic &                                                /* Fait apparaître vncconfig sous forme de case à cocher en fond d'​écran */ +
-#xterm -geometry 80x24+10+10 -ls -title "​$VNCDESKTOP Desktop"​ &     /* Terminal tout pourri */ +
-#twm &                                                              /* twm est un ancien gestionnaire de fenêtre, très rudimentaire ​*/+
 </​code>​ </​code>​
-Il faut ensuite rendre ce fichier exécutable en lui donnant les droits 755 (s'il ne les as pas déjà). 
  
-<​code>​user0@serveur:​$~ sudo chmod 755 /​home/​user0/​.vnc/​xstartup</​code>​+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.)
  
-Désespoir, l'​examen ​de /​home/​user0/​.vnc/​serveur:​14.log montre l'​erreur suivante : +=== Menu de connexion ===
-  * Permission denied pour /​etc/​X11/​xinit/​xinitrc. **Solution :** Le rendre exécutable en lui donnant les droits 755.+
  
-<​code>​user0@serveur:$~ sudo chmod 755 /etc/X11/​xinit/​xinitrc<​/code>+[[:tutoriel:​comment_modifier_un_fichier|Ouvrez le fichier]] **/etc/xrdp/xrdp.ini**.
  
-À présent, tout doit marcher convenablement. Dernière commande, ​pour tuer la machine créée ​:+Conserver simplement les sections [globals] et [xrdp1] que l'on renomme ​pour le fun :
  
-<​code>​user0@serveur:$~ vncserver ​-kill :14</​code>​+<​code>​[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=-
 +</​code>​
  
-D'​autres paramètres peuvent être passés ​avec vncserver ​: +Redémarrer ​avec :
-  * //depth// qui force la profondeur des couleurs du bureau créé. +
-  * //​localhost//​ qui n'​autorise que les connexions provenant de la même machine. +
-  * //​DisconnectClients//​ +
-  * //​NeverShared//​+
  
-Ces options seront très utiles avec XRDP. Pour les autres, on se reportera avec profit aux pages man de vncserver.+<​code>​sudo /etc/init.d/xrdp restart</​code>​
  
-=== 2.2. Sur le client ===+Vous pouvez désormais vous connecter à votre serveur en utilisant le protocole RDP<​sup>​®</​sup>​.
  
-<​code>​user0@client:​$~ vncviewer serveur:14</​code>​+=== 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) ! 
 +<​code>​sudo xrdp-genkeymap /​etc/​xrdp/​km-0409.ini</​code>​ 
 +relancer votre session distante si elle était ouverte.
  
-visualise la machine virtuelle serveur:14 que nous avons créée. Il faut saisir le mot de passe donné lors de la première exécution de vncserver. Il n'est pas obligatoire d'​être l'​utilisateur qui a créé la session. Ainsi :+===== Problème ​de configuration =====
  
-<​code>​user1@client:​$~ vncviewer serveur:​14</​code>​+Une difficulté surgit si l'on veut passer, par exemple -DisconnectClients=0 ou -NerverShared=1. En effet, impossible de glisser le signe "​="​ nulle part.
  
-accède aussi à la machine virtuelle serveur:14, sous réserve de renseigner correctement ​le mot de passeOn peut enfin tenter :+[[:tutoriel:​comment_modifier_un_fichier|Ouvrez ​le fichier]] **/​etc/​xrdp/​startwm.sh**.
  
-<​code>​user0@client:$~ vncviewer serveur:​0</​code>​+Ajouter les lignes suivantes ​:
  
-afin de voir la session ​"réelle" ​éventuellement ouverte ​sur la machine distanteCela fonctionne ​si l'​utilisateur connecté ​à coché la case "​Autoriser d'autre utilisateurs à voir votre bureau" dans les préférences du bureau à distance.+<​code>​vncconfig -set NeverShared=1 
 +vncconfig -set DisconnectClients=0 
 +</​code>​ 
 + 
 +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. 
 + 
 +<​note>​{{ :​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 : 
 +</​note>​ 
 +<​note>​meme erreur depuis Ubuntu v16.04 (client RDP Remmina) vers ubuntu 15.04 
 +</​note>​ 
 +<​note>​Il semble que les bureaux Unity et Gnome ne soient pas compatibles avec xrdp. 
 +Mais cela fonctionne ​en installant xfce4 : <​code>​sudo apt-get install xfce4</​code>​ 
 +Il faut ensuite indiquer ​à Ubuntu que c'est le bureau ​xfce qui doit être utilisé : <​code>​echo xfce4-session >​~/​.xsession</​code>​ 
 +Ensuite redémarrer xrdp : <​code>​sudo /​etc/​init.d/​xrdp restart</​code>​ 
 +NB: Et **il faut conserver le fichier /​etc/​xrdp/​sesman.ini d'​origine**. 
 +Testé avec Ubuntu 16.04 depuis un Windows 7. 
 +</​note>​ 
 +===== Utilisation en mode client ===== 
 +Installer **rdesktop**.
  
-===== 3Rajouter la couche XRDP =====+Exemple de commande: 
 +  rdesktop -u <REMOTE USER> ​ 111.222.333.444 -p <​PASSWORD>​ -f -k fr -5 -K -r clipboard:​PRIMARYCLIPBOARD ​
  
-===== Voir aussi =====+===== 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.]]   * [[http://​xrdp.sourceforge.net/​|(en) XRDP chez sourceforge.]]
   * [[:vnc|VNC (Virtual Network Computing)]] sur la documentation ubuntu-fr.   * [[:vnc|VNC (Virtual Network Computing)]] sur la documentation ubuntu-fr.
-  * [[http://​planet.ubuntu-fr.org/​post/​2007/​06/​04/​Connexion-a-Ubuntu-Linux-a-partir-de-windows-:​-xrdp|Le tuto de juin 2007]] sur planet ubuntu-fr, qui présente bien l'​aspect théorique. +  * [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=372863|RDP sur un serveur ubuntu ?]] sur le forum ubuntu-fr.
-  * [[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=372863|RDP sur un serveur ubuntu ?]] sur le forum ubuntu-fr.+
  
 ---- ----
  
-//​Contributeurs principaux : legaub.//+//​Contributeurs principaux : [[http://​patin.gaubert.free.fr/​fiches/​fiche16.html|legaub]]//
  • xrdp.1265620647.txt.gz
  • Dernière modification: Le 08/02/2010, 10:17
  • par legaub