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 07/02/2010, 19:52]
legaub
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_leger tutoriel EN_CHANTIER}}+<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]].
Ligne 7: Ligne 10:
 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.
  
-===== Pré Requis =====+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.
  
-Savoir installer un paquetéditer ​un fichier et contrôler la machine distante ​à l'aide d'un autre protocoletypiquement ssh, en vue des tests.+Entre les deuxse 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 VNCavatar du client RDPse 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.
  
-Si le blabla ne vous intéresse pas, rendez-vous [[:​xrdp#​Noblabla|ici]].+===== Prérequis =====
  
-===== 1Structure générale =====+Installer vnc4server - Virtual network computing server software, ça fonctionne tel quel donc pas de configuration à modifier.
  
-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.+Si Vino est déjà installé et actif il n'y aura pas de conflit. Il peut donc être ignoré.
  
-Entre les deux, se glisse un gestionnaire de session dénommé sesman, qui : +===== Installation =====
-  * donne le choix, à la connexion, entre différents modules. Ceux-ci sont listés dans /​etc/​xrdp/​xrdp.ini,​ VNC en fait partie. +
-  * 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.+
  
-===== 2. Installer et (re)découvrir VNC ===== +[[:​tutoriel:​comment_installer_un_paquet|Installez ​le paquet]] **[[apt>​xrdp]]**.
-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 souhaiteAinsi"à côté"​ de la session (numérotée :0) ouverte sur la machine distante, peuvent exister d'​autres sessions :1, :2, etcqui utilisent les ressources de cette même machine.+<​note>​sur 14.04 Trusty server,tout fonctionne sans aucun paramétrage supplémentaire... Certe la fenêtre texte est un peu petite! </​note>​
  
-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).+===== Configuration =====
  
-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.+=== Configuration ​de sesman ===
  
-=== 2.1Sur le serveur ===+[[:​tutoriel:​comment_modifier_un_fichier|Ouvrez le fichier]] **/​etc/​xrdp/​sesman.ini**.
  
-<​code>​user0@serveur:$~ sudo apt-get install vnc4server</​code>​+Pour l'​instant,​ rien ne fonctionne, car la section [Xvnc] ne contient que les quatre arguments ​:
  
-installe ​le paquet vnc4server qui permet la création ​des machines virtuelles. Créons notre première machine, numérotée 14 (Pourquoi ? Parce que) :+<​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>​
  
-<​code>​user0@serveur:$~ vncserver :​14</​code>​+Il faut compléter cette section, de la manière suivante:
  
-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"​.+<​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>
  
-L'​examen de /​home/​user0/​.vnc/​serveur:​14.logmontre les erreurs suivantes : +Personnellementj'​y ​ai aussi ajouté ​:
-  * l'absence du fichier /​etc/​X11/​xserver/​SecurityPolicy. **Solution :** Créer le répertoire /​etc/​X11/​xserver/​ et 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 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>​ 
 +param7=-depth ​           /* pour forcer la profondeur de couleur */ 
 +param8=16 
 +param9=-localhost ​       /* pour contraindre la connexion via xrdp */ 
 +</​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.) 
 + 
 +=== Menu de connexion ===
  
-<​code>​user0@serveur:$~ vncserver ​:14 -fp /usr/share/fonts/​X11/​misc -extension XFIXES</​code>​+[[:tutoriel:comment_modifier_un_fichier|Ouvrez le fichier]] **/etc/xrdp/xrdp.ini**.
  
-Désormais, le log ne fait plus mention d'​aucune erreur. Mais si l'​on ​se connecte à la machine ainsi créée, on est déçu : pas d'​environnement graphique, un fond grisâtre et une pauvre console. Il faut maintenant utiliser votre éditeur préféré ​pour modifier ​le fichier /​home/​user0/​.vnc/​xstartup en sorte qu'il ressemble à ceci :+Conserver simplement les sections [globals] et [xrdp1] que l'​on ​renomme ​pour le fun :
  
-<​code>​#!/bin/sh +<​code>​[globals] 
-# Uncomment the following two lines for normal desktop: +bitmap_cache=yes 
-unset SESSION_MANAGER +bitmap_compression=yes 
-exec sh /​etc/​X11/​xinit/​xinitrc +port=3389 
-#-x /​etc/​vnc/​xstartup ​&& exec /​etc/​vnc/​xstartup ​                /* Ce répertoire n'​existe pas ou plus */ +crypt_level=low 
-[ -r $HOME/.Xresources ] && xrdb $HOME/​.Xresources +channel_code=1 
-#xsetroot -solid grey                                               /* Joli fond d'​écran gris */ +  
-#vncconfig -iconic &                                                /* Fait apparaître vncconfig sous forme de case à cocher en fond d'​écran */ +[xrdp1
-#xterm -geometry 80x24+10+10 -ls -title "​$VNCDESKTOP Desktop"​ &     /* Terminal tout pourri */ +name=legaub vous invite sur un serveur Ubuntu 
-#twm &                                                              /* twm est un ancien gestionnaire de fenêtre, très rudimentaire */+lib=libvnc.so 
 +username=ask 
 +password=ask 
 +ip=127.0.0.1 
 +port=-1
 </​code>​ </​code>​
-Il faut ensuite rendre ce fichier exécutable en lui donnant les droits 755 (s'il ne les as pas déjà). 
  
-Désespoir, l'​examen de /​home/​user0/​.vnc/​serveur:14.log montre l'​erreur suivante : +Redémarrer avec :
-  * Permission denied pour /​etc/​X11/​xinit/​xinitrc. **Solution :** Le rendre exécutable en lui donnant les droits 755.+
  
-À présent, tout doit marcher convenablementDernière commande, pour tuer la machine créée :+<​code>​sudo /etc/init.d/xrdp restart</​code>​
  
-<code>user0@serveur:​$~ vncserver -kill :14</code>+Vous pouvez désormais vous connecter à votre serveur en utilisant le protocole RDP<sup>®</sup>.
  
-=== 2.2. Sur le client ​===+=== 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.
  
-<​code>​user0@client:​$~ vncviewer serveur:​14</​code>​+===== Problème de configuration =====
  
-visualise la machine virtuelle serveur:14 que nous avons crééeIl 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 sessionAinsi :+Une difficulté surgit si l'on veut passer, par exemple -DisconnectClients=0 ou -NerverShared=1En effet, impossible de glisser ​le signe "​="​ nulle part.
  
-<​code>​user1@client:$~ vncviewer serveur:14</code>+[[:tutoriel:comment_modifier_un_fichier|Ouvrez le fichier]] **/etc/​xrdp/​startwm.sh**.
  
-accède aussi à la machine virtuelle serveur:14, sous réserve de renseigner correctement le mot de passe. On peut enfin tenter ​:+Ajouter les lignes suivantes ​:
  
-<​code>​user0@client:​$~ vncviewer serveur:0</​code>​+<​code>​vncconfig -set NeverShared=1 
 +vncconfig -set DisconnectClients=0 
 +</​code>​
  
-afin de voir la session ​"réelle" ​éventuellement ouverte sur la machine distante. Cela fonctionne si l'​utilisateur connecté à coché la case "​Autoriser ​d'autre utilisateurs à voir votre bureau"​ dans les préférences du bureau à distance.+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.
  
-===== 3. Rajouter la couche XRDP =====+<​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**.
  
-=====Noblabla=====+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 : [[:utilisateurs:​legaub|legaub]].//+//​Contributeurs principaux : [[http://​patin.gaubert.free.fr/​fiches/​fiche16.html|legaub]]//
  • xrdp.1265568772.txt.gz
  • Dernière modification: Le 18/04/2011, 14:41
  • (modification externe)