Comment configurer un bureau à distance avec X2Go sur Debian 8

introduction

Pour plus d’efficacité, de sécurité et la possibilité de tout faire à partir de la ligne de commande, de nombreux serveurs n’utilisent pas d’interface utilisateur graphique. Toutefois, vous voudrez peut-être exécuter des applications à interface graphique sur vos serveurs distants, par exemple lorsque vous testez des sites Web dans des navigateurs ou que vous souhaitez configurer un poste de travail accessible à distance avec un environnement de bureau complet.

Virtual Network Computing (VNC) est la solution classique pour interagir avec une interface graphique sur un ordinateur distant exécutant Linux ou d’autres variantes * nix. Malheureusement, VNC est notoirement lent, peu sûr par défaut et nécessite beaucoup de configuration manuelle pour être opérationnel.

En revanche, X2Go offre plusieurs avantages:

  • Au lieu d’envoyer des images de la machine distante à votre ordinateur tel que VNC, X2Go utilise une version modifiée du serveur X (graphique) et le protocole X11 afin de minimiser la quantité de données échangées entre le client et le serveur. Cela vous donne une expérience de bureau presque locale. La seule condition requise pour ce type de performances est que la distance réseau entre le client et le serveur ne soit pas trop grande. Lorsque vous envoyez une requête ping au serveur à partir de la machine cliente, le temps d’aller-retour ne doit pas dépasser 100 millisecondes. Près de 50 ms serait optimal, et 200 ms seraient acceptables mais pas géniaux.

  • X2Go fonctionne avec votre démon SSH existant, chiffrant tout le trafic entre le client et le serveur tout en s’appuyant sur le même mécanisme d’authentification éprouvé et sécurisé.

  • X2Go ne nécessite pas de configuration manuelle complexe. Il sait comment configurer la session et lancer automatiquement les environnements de bureau courants tels que XFCE, LXDE, MATE et autres.

  • Contrairement à VNC, X2Go configure l’environnement lorsque vous vous connectez, vous n’avez donc pas besoin de laisser un serveur X en marche tout le temps. De plus, votre session continue de s’exécuter même après votre déconnexion, ce qui signifie que lorsque vous vous reconnectez, vous retrouvez tout ce que vous avez laissé, comme sur un bureau local.

  • X2Go prend en charge plusieurs sessions de connexion, bureaux et utilisateurs connectés à leurs propres environnements.

  • Au lieu d’un environnement de bureau complet, vous pouvez lancer des applications graphiques uniques dans X2Go, en économisant les ressources de votre ordinateur local tout en tirant parti des ressources plus puissantes du serveur, tout en laissant les tâches s’exécuter à distance pendant des jours.

Une telle configuration est utile lorsque:

  • Vous avez besoin de ce type d’environnement de bureau, mais vous ne pouvez pas installer un système d’exploitation basé sur Linux localement.

  • Vous partez en voyage mais vous ne pouvez pas emporter votre ordinateur.

  • Votre fournisseur de services Internet vous fournit très peu de bande passante, mais vous devez accéder à des dizaines, voire des centaines de gigaoctets de données.

  • Vous avez besoin d’une machine distincte pour travailler sur quelque chose pendant des semaines ou des mois.

  • Vous travaillez en équipe et tout le monde doit avoir accès à un seul poste de travail distant.

  • Vous avez besoin d’une combinaison de bureau graphique, d’Internet haut débit, de source d’énergie fiable et de capacité à augmenter et à réduire les ressources rapidement.

Dans ce tutoriel, nous recommandons Debian à Ubuntu, car certaines versions du DE par défaut d’Ubuntu, Unity, ne sont pas compatibles avec X2Go. Et, les environnements de bureau alternatifs peuvent parfois être problématiques sur Ubuntu.

De même, nous recommandons XFCE, car il ne nécessite pas de carte vidéo dédiée pour fonctionner, ce qui le rend plus compatible avec X2Go. Mais LXDE, Mate (avec la composition désactivée) et même les anciens KDE, Unity et Cinnamon (avec quelques ajustements) peuvent également fonctionner.

Enfin, Firefox - si * xrender * est actif (ce qui est le cas par défaut dans Debian 8) - fournit généralement une expérience plus fluide avec X2Go.

Après avoir suivi ce didacticiel, vous disposerez d’un bureau Linux auquel vous pourrez vous connecter à distance et qui inclut exactement les mêmes utilitaires que vous obtiendriez en installant Debian XFCE localement. De plus, en installant et en configurant un pare-feu, vous sécuriserez votre poste de travail distant, ce qui le rendra plus difficile à exploiter.

Conditions préalables

Avant de commencer avec ce tutoriel, vous aurez besoin de:

  • Une instance Debian 8 x64 avec 1 ou 2 Go de RAM. (1 Go est minimal, 2 Go est plus sûr pour commencer, et 4 Go serait optimal). Choisissez un emplacement de serveur aussi proche que possible de la zone à partir de laquelle vous souhaitez vous connecter.

  • Un utilisateur avec des privilèges sudo; Suivez ce guide pour vous aider à démarrer: Installation initiale du serveur avec Debian 8.

N’oubliez pas que si vous manquez de RAM, le noyau Linux ferme l’application et vous risquez de perdre votre travail. Si vous savez ou remarquez que les programmes que vous utilisez nécessitent beaucoup de RAM, vous pouvez éteindre votre gouttelette et redimensionner à la demande.

Étape 1 - Pare-feu du serveur

L’installation d’un environnement de bureau complet entraîne de nombreuses dépendances et recommandations logicielles supplémentaires, dont certaines peuvent tenter d’ouvrir des ports réseau. Par exemple, le système CUPS (Common UNIX Printing System) inclus dans de nombreux éléments de déploiement peut tenter d’ouvrir le port 631. Un service comme CUPS peut être utile à la maison, mais nous ne voulons pas que notre serveur soit exposé à l’Internet tout entier. Il est donc judicieux de bloquer toutes les connexions entrantes. La seule exception sera le port 22, qui restera ouvert afin que nous puissions nous connecter avec SSH et X2Go.

Pour sécuriser notre serveur, nous allons utiliser un pare-feu sans faille (UFW), car il est moins sujet aux erreurs de débutant, plus facile à comprendre et à gérer et correspond mieux à notre objectif de ne permettre que les connexions à un port. iptables et d’autres pare-feu plus sophistiqués conviennent mieux aux règles avancées et complexes qui nécessitent des détails plus fins. (Voir UFW Essentials: règles et commandes de pare-feu communes pour un guide de référence rapide sur les commandes courantes.

Tout d’abord, installez UFW:

sudo apt-get install ufw

Par défaut, le pare-feu devrait être inactif à ce stade. Vous pouvez vérifier avec:

sudo ufw status verbose

Le résultat devrait être:

OutputStatus: inactive

Il est important de vérifier le statut à ce stade pour éviter de nous verrouiller si + ufw + est actif lorsque nous bloquons toutes les connexions entrantes ultérieurement.

Si UFW est déjà actif, désactivez-le avec:

sudo ufw disable

Maintenant, définissez les règles de pare-feu par défaut pour refuser toutes les connexions entrantes et autoriser toutes les connexions sortantes:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Et, autorisez les connexions SSH au serveur (port 22):

sudo ufw allow 22

Avec les règles en place, activons + ufw +:

sudo ufw enable

Cela produira:

OutputCommand may disrupt existing ssh connections. Proceed with operation (y|n)?

Tapez + a + et appuyez sur + ENTER pour activer le pare-feu.

Si vous rencontrez un problème et découvrez que l’accès SSH est bloqué, vous pouvez suivre https://www.digitalocean.com/community/tutorials/how-to-use-the-digitalocean-console-to-access-your-droplet. [Comment utiliser la console DigitalOcean pour accéder à votre droplet] pour récupérer l’accès.

Avec notre pare-feu en place, notre serveur n’est qu’un seul point d’entrée et nous sommes prêts à installer l’environnement graphique du serveur X2Go.

Étape 2 - Installation de l’environnement de bureau

Dans ce didacticiel, vous allez installer l’environnement de bureau XFCE. Il y a deux façons d’y parvenir, mais il vous suffit de * choisir un *, soit l’environnement de bureau minimal, soit l’environnement de bureau complet.

  • Environnement de bureau minimal *: Si vous souhaitez installer un petit ensemble de packages de base, puis le créer en ajoutant manuellement tout ce dont vous avez besoin par la suite, vous pouvez utiliser le fichier + xfce4 + metapackage.

Un métapaquet ne contient pas de logiciel propre, il dépend simplement de l’installation d’autres packages, ce qui permet d’installer une collection complète de packages à la fois, sans avoir à saisir chaque nom de package individuellement sur la ligne de commande.

Installez + xfce4 + et toutes les dépendances supplémentaires nécessaires pour le prendre en charge:

sudo apt-get install xfce4
  • Environnement de bureau complet: * Si vous ne souhaitez pas sélectionner tous les composants dont vous avez besoin et préférez disposer d’un ensemble de packages par défaut, tels qu’un traitement de texte, un navigateur Web, un client de messagerie et d’autres accessoires préinstallés, vous pouvez choisir + task-xfce-desktop +.

Installez et configurez un environnement de bureau complet similaire à celui que vous obtiendriez avec Debian XFCE à partir d’un DVD amorçable sur votre PC local:

sudo apt-get install task-xfce-desktop

Maintenant que notre environnement graphique est installé et configuré, nous devons configurer un moyen de le visualiser depuis un autre ordinateur.

Étape 3 - Installation de X2Go sur le serveur

X2Go est livré avec deux composants principaux: le serveur, qui démarre et gère la session graphique sur la machine distante, et le client, que nous installons sur notre ordinateur local pour afficher et contrôler le bureau ou l’application distant.

Puisque Debian n’inclut pas le serveur X2Go dans ses référentiels par défaut, nous devons ajouter un référentiel supplémentaire à la configuration du gestionnaire de paquets.

Commencez par importer la clé publique des développeurs X2Go. Il s’agit d’une mesure de sécurité visant à garantir que nous ne pouvons télécharger et installer que des packages correctement signés avec leurs clés privées.

sudo apt-key adv --recv-keys --keyserver keys.gnupg.net E1F958385BFE2B6E

Ajoutez maintenant le référentiel aux fichiers de configuration du gestionnaire de packages:

echo 'deb http://packages.x2go.org/debian jessie main' | sudo tee /etc/apt/sources.list.d/x2go.list

Ceci crée le fichier + / etc / apt / sources.list.d / x2go.list + et ajoute la ligne + deb http://packages.x2go.org/debian jessie main +, en indiquant au gestionnaire de paquets où pour trouver les paquets supplémentaires.

Pour actualiser la base de données des packages logiciels disponibles, entrez la commande suivante:

sudo apt-get update

Et enfin, installez X2Go sur le serveur:

sudo apt-get install x2goserver x2goserver-xsession

À ce stade, aucune autre configuration n’est requise sur votre serveur. Cependant, gardez à l’esprit que, puisque l’authentification par mot de passe SSH est désactivée pour une sécurité accrue, vous devez disposer de votre clé privée SSH sur n’importe quel ordinateur à partir duquel vous souhaitez vous connecter.

Nous avons maintenant terminé la configuration du serveur et nous pouvons taper + exit + ou fermer la fenêtre du terminal. Le reste des étapes se concentrera sur le client pour votre ordinateur local.

Étape 4 - Installation du client X2Go en local

Si vous utilisez Windows sur votre ordinateur local, vous pouvez télécharger le logiciel client à l’adresse http://code.x2go.org/releases/X2GoClient_latest_mswin32-setup.exe.

Après avoir sélectionné votre langue préférée et accepté la licence, un assistant vous guidera à travers chaque étape du processus d’installation. Normalement, il ne devrait y avoir aucune raison de modifier les valeurs par défaut pré-remplies ou présélectionnées dans ces étapes.

Si vous utilisez macOS localement, vous pouvez trouver le logiciel client à l’adresse http://code.x2go.org/releases/X2GoClient_latest_macosx_10_9.dmg.

Double-cliquez sur le fichier .dmg pour ouvrir un dossier contenant le copyright, la licence et l’exécutable du client X2Go, puis double-cliquez sur l’exécutable pour démarrer le client.

Et si vous utilisez Debian ou Ubuntu, vous pouvez installer le client X2Go avec:

sudo apt-get install x2goclient

Si vous souhaitez obtenir des informations supplémentaires sur les clients ou créer à partir des sources, vous pouvez visiter Documentation officielle de X2Go.

Maintenant que le client de bureau est installé, nous pouvons configurer ses paramètres et se connecter au serveur X2Go pour utiliser notre bureau XFCE distant.

Étape 5 - Connexion au bureau à distance

Lorsque vous ouvrez le client X2Go pour la première fois, la fenêtre suivante doit apparaître. Si ce n’est pas le cas, cliquez sur * Session * dans le menu en haut à gauche, puis sélectionnez * Nouvelle session… *.

image: http: //assets.digitalocean.com/articles/how-to-setup-a-remote-desktop-with-x2go-on-debian-8/create-new-session.png [Capture d’écran du client X2Go - Création d’un Nouvelle session]

Dans le champ * Nom de la session *, entrez un élément permettant de différencier les serveurs. Cela peut être particulièrement utile si vous envisagez de vous connecter à plusieurs ordinateurs, car tous les noms seront listés dans la fenêtre principale du programme une fois que vous aurez enregistré vos paramètres.

Entrez l’adresse IP ou le nom d’hôte de votre serveur dans le champ * Hôte * sous * Serveur *.

Entrez le nom d’utilisateur que vous avez utilisé pour votre connexion SSH dans le champ * Login *.

Et, comme c’est ce que nous avons installé à l’étape 2, choisissez + XFCE + comme * type de session *.

Enfin, comme nous nous connectons au serveur avec des clés SSH, cliquez sur l’icône du dossier en regard de * Utiliser une clé RSA / DSA pour la connexion SSH * et accédez à votre clé privée.

Le reste des paramètres par défaut devrait suffire pour le moment, mais au fur et à mesure que vous vous familiariserez avec le logiciel, vous pourrez affiner le client en fonction de vos préférences personnelles.

Après avoir appuyé sur le bouton * OK *, vous pouvez démarrer votre session graphique en cliquant sur la case blanche contenant le nom de votre session en haut à droite de l’écran.

image: http: //assets.digitalocean.com/articles/how-to-setup-a-remote-desktop-with-x2go-on-debian-8/main-window.png [Fenêtre principale X2Go - Liste de sessions]

Dans quelques secondes, votre bureau distant sera affiché et vous pourrez commencer à interagir avec celui-ci. Lors de la première connexion, XFCE vous demandera si vous souhaitez * Utiliser la configuration par défaut * ou * Un panneau vide *. La première option crée un panneau rectangulaire ancré au bas de l’écran, contenant quelques raccourcis utiles pour l’application (par exemple, un gestionnaire de fichiers, un émulateur de terminal, un navigateur, etc.). Cette option ajoutera également un panneau supérieur au bureau qui comprend des utilitaires tels qu’un programme de lancement d’applications, une horloge, un menu d’arrêt, etc.

Si vous n’êtes pas déjà familiarisé avec XFCE, opter pour un panneau vide peut s’avérer plus compliqué, car vous commencerez à partir de zéro. Il n’y aura pas de barre des tâches, pas d’horloge, pas de menu de démarrage préconfiguré; ce sera à vous de tout ajouter à un panneau vide.

De plus, sur les systèmes d’exploitation Windows et Linux, il existe quelques raccourcis clavier utiles que vous pouvez utiliser pour une meilleure expérience:

+ CTRL + ALT + F + activera et désactivera le mode plein écran. Travailler en mode plein écran peut ressembler davantage à une expérience de bureau local. De plus, d’autres raccourcis clavier seront saisis par le système d’exploitation distant au lieu du système local.

+ CTRL + ALT + M + minimisera l’affichage à distance, même si vous êtes en mode plein écran

+ CTRL + ALT + T + se déconnectera de la session mais laissera la GUI s’exécuter sur le serveur. C’est juste un moyen rapide de vous déconnecter sans vous déconnecter ou fermer des applications sur le serveur. La même chose se produira si vous cliquez sur le bouton de fermeture de la fenêtre.

Enfin, il existe deux manières de terminer la session distante en fermant tous les programmes graphiques qui y sont exécutés. Vous pouvez vous déconnecter à distance du * menu de démarrage * de XFCE ou cliquer sur le bouton avec un cercle et une petite ligne (comme une icône d’alimentation / veille) dans le coin inférieur droit de la partie principale de l’écran.

La première méthode est plus propre mais peut laisser des programmes tels que les logiciels de gestion de session en cours d’exécution. La deuxième méthode fermera tout mais peut le faire avec force si un processus ne peut pas se terminer correctement. Dans les deux cas, assurez-vous de sauvegarder votre travail avant de continuer.

image: http: //assets.digitalocean.com/articles/how-to-setup-a-remote-desktop-with-x2go-on-debian-8/terminate-session.png [Fenêtre principale de X2Go - Bouton de fin de session]

Pour finir, bien que cela ne soit pas nécessaire, voyons dans le panneau de commande de XFCE, accédez aux paramètres d’alimentation et désactivez toutes les fonctionnalités de veille. Si vous n’utilisez pas le bureau pendant un moment, XFCE essaiera de déclencher une veille. Bien que le serveur ne fasse normalement rien quand il reçoit cette demande, il est préférable d’éviter tout comportement imprévu.

Conclusion

Vous disposez maintenant d’un «poste de travail en nuage» fonctionnel, doté de tous les avantages d’un système informatique toujours en ligne et accessible à distance.

Pour aller un peu plus loin, vous pouvez centraliser votre travail de développement en https://www.digitalocean.com/community/tutorials/how-to-create-a-pull-request-on-github/create un référentiel git], en installant un éditeur de code distant tel qu’Eclipse ou configurer un serveur Web pour test des applications web. Vous pouvez également coupler votre poste de travail distant à https://www.digitalocean.com/community/tutorials/how-to-choose-an-effective-backup-strategy-for-your-vour- un jeu de sauvegarde efficace] pour vous assurer que votre environnement de travail est disponible depuis n’importe où et qu’il est à l’abri de la perte de données.

Si vous souhaitez en savoir plus, visitez le site Web de la documentation officielle de X2Go.