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, 15:55]
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 lors de 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. +[[:tutoriel:​comment_installer_un_paquet|Installez le paquet]] ​**[[apt>xrdp]]**
-  * fait en sorte que le néo client VNCavatar du client RDP, trouve bien une session VNC fonctionnelleLe plus souvent en la créant, à l'aide des paramètres choisis dans /​etc/​xrdp/​sesman.ini ​et /​etc/​xrdp/​startwm.sh.+ 
 +<​note>​sur 14.04 Trusty server,tout fonctionne sans aucun paramétrage supplémentaire... Certe la fenêtre texte est un peu petite! </​note>​ 
 + 
 +===== Configuration ===== 
 + 
 +=== Configuration de sesman === 
 + 
 +[[:​tutoriel:​comment_modifier_un_fichier|Ouvrez le fichier]] **/​etc/​xrdp/​sesman.ini**.
  
-===== 2. Installer et (re)découvrir VNC ===== +Pour l'instant, rien ne fonctionne, car la section [Xvnc] ​ne contient que les quatre arguments :
-Comme XRDP fait appel à VNC, il n'est pas inutile de découvrir ce dernier (si vous ne le connaissez pas déjà).+
  
-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.+<​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>​
  
-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).+Il faut compléter cette section, de la manière suivante:
  
-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.+<​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>​
  
-=== 2.1. Sur le serveur ===+Personnellement,​ j'y ai aussi ajouté :
  
-<​code>​user0@serveur:​$~ sudo apt-get install vnc4server</​code>​+<​code>​ 
 +param7=-depth            /* pour forcer la profondeur de couleur */ 
 +param8=16 
 +param9=-localhost ​       /* pour contraindre la connexion via xrdp */ 
 +</​code>​
  
-installe le paquet vnc4server qui permet ​la création des machines virtuellesCréons notre première machine :+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.)
  
-<​code>​user0@serveur:​$~ vncserver :​14</​code>​+=== Menu de connexion ===
  
-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 sur "​serveur"​ par user0. 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/xrdp.ini**.
  
-L'​examen de /​home/​user0/​.vnc/​serveur:​14.log,​ montre ​les erreurs suivantes : +Conserver simplement ​les sections [globals] ​et [xrdp1] ​que l'​on ​renomme pour le fun :
-  * l'​absence du fichier /​etc/​X11/​xserver/​SecurityPolicy. **Solution :** Créer le répertoire /​etc/​X11/​xserver/ ​et y recopier le fichier SecurityPolicy ​que l'​on ​trouve sur le net. +
-  * 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>​[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 
 +</​code>​
  
-<​code>​user0@serveur:$~ vncserver :14 -fp /​usr/​share/​fonts/​X11/​misc -extension XFIXES</​code>​+Redémarrer avec :
  
 +<​code>​sudo /​etc/​init.d/​xrdp restart</​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 venons ​de créer. 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 sessionAinsi :+Une difficulté surgit si l'on veut passer, par exemple -DisconnectClients=0 ou -NerverShared=1. En 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.1265554549.txt.gz
  • Dernière modification: Le 18/04/2011, 14:45
  • (modification externe)