Cet article fait partie de notre guide: Les bases de l’administration des serveurs Linux

Administration : comment se connecter à distance à Linux via xrdp

Dans les entreprises où les administrateurs accèdent à distance aux machines Windows via RDP, il est pertinent d’utiliser aussi ce protocole pour les machines Linux. Cet article explique comment.

Que les administrateurs gèrent des serveurs en cloud ou sur site, ou qu’ils administrent des postes de travail d’utilisateurs finaux, ils sont plus susceptibles que jamais de devoir accéder à distance à une combinaison de machines Windows, Linux et macOS. Mais utiliser un protocole de contrôle distant différent pour chacune de ces plateformes n’est pas une fatalité.

Le protocole Remote Desktop Protocol (RDP) de Microsoft peut fonctionner avec de nombreux systèmes d’exploitation, pas seulement avec Windows. Si Secure Shell (SSH) reste le moyen standard de se connecter à des systèmes Linux distants, il n’est pas assez convivial pour de nombreuses personnes et n’offre pas d’interface graphique directe. À l’inverse, les connexions basées sur RDP bénéficient d’une interface graphique confortable et beaucoup plus facile à utiliser. Sous Linux, il prend la forme d’un service appelé xrdp. Il est gratuit et simple à installer.

Dans le principe, les administrateurs système installent le serveur xrdp sur un système Linux et s’y connectent à partir d’un client Windows à l’aide de l’outil RDP. Généralement, il le fait pour effectuer les tâches suivantes :

  • Modifier les fichiers de configuration.
  • Gérer les services.
  • Vérifier les informations sur les performances.
  • Consulter les fichiers journaux (logs).
  • Modifier les fichiers utilisateurs.

Outre les postes de travail et serveurs classiques, le service xrdp peut servir à accéder à un équipement de type objet connecté à base de Raspberry Pi, à une VM exécutée en cloud, à une VM d’administration du cloud, ou encore à un poste qui sert au développement en Python.

Conditions d’installation de xrdp

Les conditions d’installation de xrdp varient selon la distribution Linux. L’approche générale consiste à utiliser le gestionnaire de paquets du système choisi pour ajouter le logiciel du serveur xrdp.

Sur Fedora, Red Hat Enterprise Linux ou des distributions similaires, tapez les commandes suivantes :

$ sudo dnf upgrade
$ sudo dnf install xrdp -y

Sur Ubuntu ou sur des systèmes similaires utilisant apt, tapez ce qui suit :

$ sudo apt update
$ sudo apt install xrdp -y

Une fois l’installation terminée, démarrez et activez le service :

$ sudo systemctl start xrdp
$ sudo systemctl enable xrdp
$ sudo systemctl status xrdp

Les résultats de la commande sudo systemctl status xrdp doivent indiquer active (en cours d’exécution), comme dans la figure 1.

Figure 1. La sortie de la commande montrant que le service xrdp est installé et actif.
Figure 1. La sortie de la commande montrant que le service xrdp est installé et actif.

Linux prend en charge de nombreux environnements de bureau différents. Dans cet article, nous prenons l’exemple d’un système Linux qui utilise déjà une interface graphique. Les administrateurs qui se connectent à un serveur qui n’a pas d’interface graphique devraient utiliser Xfce, qui est une option solide pour un environnement graphique.

Les étapes ci-dessus installent l’application serveur xrdp sur la machine Linux. L’application client RDP de Microsoft est déjà installée sur les ordinateurs Windows. Les administrateurs peuvent ajouter des clients RDP à d’autres systèmes Linux ou macOS.

Voici d’autres clients RDP possibles :

  • FreeRDP.
  • rdesktop.
  • Remmina.
  • KRDC.

Lorsqu’un administrateur établit une connexion à distance à partir d’une machine Windows, il doit s’authentifier à l’aide d’un nom et d’un mot de passe reconnus par le système local. Comme dans la figure 2, utilisez les commandes suivantes pour configurer ce compte d’utilisateur si nécessaire :

$ sudo useradd rdpuser
$ sudo passwd rdpuser
Figure 2. Processus d'authentification pour xrdp avec des informations d'identification reconnues par le système local.
Figure 2. Processus d'authentification pour xrdp avec des informations d'identification reconnues par le système local.

Les administrateurs ne doivent pas utiliser l’utilisateur root pour cette connexion. L’authentification directe en tant qu’utilisateur root, en particulier pour les connexions réseau, n’est plus approuvée dans la plupart des environnements.

Les paramètres de base de xrdp

Le serveur xrdp utilise deux fichiers de configuration. Les administrateurs doivent gérer le fichier de configuration xrdp à l’échelle du système et éventuellement un fichier de session spécifique à l’utilisateur.

Le fichier de configuration du service à l’échelle du système. Le fichier de configuration du service est situé dans /etc/xrdp/xrdp.ini. Ouvrez-le à l’aide de l’éditeur de texte de votre choix, comme dans la figure 3. Le fichier contient quatre sections principales :

  • Globals. Définit les configurations globales du serveur xrdp.
  • Logging. Définit les détails de la journalisation.
  • Channels. Configure les types de canaux.
  • Session types. Inclut les paramètres de connectivité xrdp et VNC.
Figure 3. La section Globals du fichier de configuration du système xrdp.
Figure 3. La section Globals du fichier de configuration du système xrdp.

Ce fichier permet de modifier les paramètres du fichier journal, de changer le port par défaut et de configurer les options de performance.

Le fichier de configuration de la session. La connexion xrdp nécessite un gestionnaire de session ou une interface graphique. Les administrateurs peuvent le définir dans un fichier stocké dans le répertoire personnel du compte utilisateur Linux local qui doit se connecter au système. Ce fichier définit l’environnement de bureau Linux que xrdp doit utiliser ; dans le cadre de cet article, Linux a besoin d’une interface graphique. Cependant, cela n’est pas nécessaire si le Linux distant utilise déjà une interface graphique.

Si nécessaire, utilisez un éditeur de texte pour créer un fichier .xsession dans le répertoire personnel.

Ajoutez ensuite les informations relatives au gestionnaire de session, qui varient en fonction de l’interface graphique. Pour l’environnement XFCE, tapez ce qui suit :

xfce4-session

Les administrateurs peuvent également utiliser un redirecteur pour entrer les informations dans le fichier .xsession :

$ echo "xfce4-session" > .xsession

Les paramètres du pare-feu. Étant donné qu’un système Windows distant demande une connexion réseau à ce serveur Linux, les administrateurs doivent configurer le pare-feu pour autoriser la connexion. Le port RDP par défaut est 3389/tcp. Les étapes varient selon la distribution, mais les configurations sont généralement les mêmes.

Sur un système utilisant le programme firewalld, tapez ce qui suit :

$ sudo firewall-cmd --permanent --add-port=3389/tcp
$ sudo firewall-cmd reload
Figure 4. Un message vérifiant que le pare-feu est déjà actif via le port RDP.
Figure 4. Un message vérifiant que le pare-feu est déjà actif via le port RDP.

Avec Ubuntu Uncomplicated Firewall (UFW), tapez ce qui suit :

$ sudo ufw allow 3389/tcp
$ sudo ufw status

Sur certains systèmes, le processus d’installation et de configuration peut ouvrir automatiquement le port, comme le montre la figure 4. Vérifiez dans la documentation en ligne si la distribution préférée utilise un pare-feu différent.

Sur certaines distributions, les administrateurs peuvent être amenés à modifier Security-Enhanced Linux pour accéder aux ressources du système via la connexion RDP. Le système Fedora utilisé dans le cadre de cet article n’a pas nécessité de modifications. Si nécessaire, utilisez les deux commandes suivantes :

$ sudo chcon --type=bin_t /usr/sbin/xrdp
$ sudo chcon --type=bin_t /usr/sbin/xrdp-sesman

Établir une connexion RDP

Il est temps de tester la connexion. Ouvrez l’application Connexion Bureau à distance (RDC, Remote Desktop Connection) sur votre machine Windows, comme le montre la figure 5. Utilisez la fonction Recherche pour trouver l’application ou tapez mstsc dans le menu Exécuter.

Saisissez le nom d’hôte ou l’adresse IP du système Linux et le nom du compte utilisateur Linux qui se connecte. Il n’y a pas encore d’invite pour un mot de passe – le logiciel du serveur xrdp affiche cette invite juste avant d’autoriser la connexion.

Figure 5. L'interface de l'utilitaire Remote Desktop Connectionl.
Figure 5. L'interface de l'utilitaire Remote Desktop Connection.

Lors de la première connexion, Windows peut afficher un avertissement, comme dans la figure 6, qui indique que l’identité de l’ordinateur distant ne peut pas être vérifiée. C’est normal. Vérifiez à nouveau le système de destination et sélectionnez Oui s’il est exact. En outre, une case à cocher permet de ne plus être invité à le faire.

Figure 6. Fenêtre d'avertissement qui peut apparaître dans la connexion au bureau à distance concernant l'identité de l'ordinateur connecté.
Figure 6. Fenêtre d'avertissement qui peut apparaître dans la connexion au bureau à distance concernant l'identité de l'ordinateur connecté.

Cela devrait conduire à une invite de connexion xrdp demandant le nom de session défini dans le fichier ~/.xsession. Saisissez un nom et un mot de passe reconnus par le système Linux.

Le bureau du serveur Linux apparaît après avoir saisi les informations d’identification correctes. Selon la configuration de Windows, il se peut que le bureau à distance ne soit pas activé. Ouvrez les Paramètres du système, sélectionnez Bureau à distance et sélectionnez Activé si c’est le cas.

Les mêmes informations sont nécessaires pour les connexions client macOS-serveur Linux utilisant xrdp. Microsoft propose un logiciel de connexion au bureau à distance pour macOS. Il demande les mêmes informations que la version Windows. L’administrateur devrait maintenant être prêt à gérer à distance le système Linux à partir du poste de travail Windows.

Les autres paramètres de xrdp

Il existe de nombreuses options permettant d’adapter xrdp aux besoins d’une entreprise. De la sécurité à l’amélioration des performances, les administrateurs peuvent modifier les côtés client et serveur de la connexion afin d’améliorer l’expérience globale. Par exemple, les administrateurs peuvent configurer le montage de lecteurs, la redirection audio et micro, et un presse-papiers bidirectionnel pour les commandes au clavier. Ils peuvent également se reconnecter aux connexions existantes si elles cessent de fonctionner.

Les paramètres de sécurité. Le serveur xrdp nécessite quelques modifications pour le chiffrement. Les administrateurs peuvent mettre en œuvre un chiffrement basé sur des certificats ou faire passer la connexion RDP via un tunnel SSH. Les connexions non sécurisées peuvent être acceptables sur les réseaux locaux internes ou les réseaux domestiques, mais il faut se méfier des attaques par écoute de paquets réseau si l’entreprise utilise l’outil de cette manière.

Les attaques par force brute contre les comptes Linux locaux constituent un autre problème. Soyez particulièrement vigilant si vous vous connectez à des machines virtuelles en cloud fonctionnant sous Linux.

Pour connecter plutôt une station Linux à une machine Windows via RDP. Les administrateurs peuvent mettre en place une connexion client RDP Linux-serveur RDP Windows, soit l’inverse du sujet de cet article. Cela peut s’avérer pratique si un administrateur informatique est assis devant un ordinateur Linux et doit mettre à jour un poste de travail ou un serveur Windows.

Les clients Linux RDP sont les suivants :

  • Vinagre.
  • Remmina.
  • RustDesk.

Les administrateurs peuvent également utiliser une connexion RDP pour le travail de Linux à Linux. Cela permet de disposer d’un seul client et d’une seule configuration pour plusieurs options de connexion.

Pour ajuster les performances. Les administrateurs peuvent procéder à quelques ajustements de performance du côté Windows de la connexion. Dans le logiciel Connexion Bureau à distance, essayez les paramètres des onglets Expérience et Affichage. Essayez les options suivantes :

  • Activez la mise en cache des images bitmap.
  • Réglez la vitesse de connexion sur LAN (10 Mbit/s ou plus), comme dans la figure 7.
  • Modifiez la valeur de la couleur à 16 bits par pixel.
: Figure 7. Option permettant de définir une vitesse de connexion spécifique pour la session à distance.
: Figure 7. Option permettant de définir une vitesse de connexion spécifique pour la session à distance.

Pour approfondir sur Linux