Comment Installer et Configurer VNC sur Ubuntu 20.04

Introduction

Virtual Network Computing, ou VNC, est un système de connexion qui vous permet d’utiliser votre clavier et votre souris pour interagir avec un environnement de bureau graphique sur un serveur distant. Il facilite la gestion des fichiers, des logiciels et des paramètres sur un serveur distant pour les utilisateurs qui ne sont pas encore à l’aise avec la ligne de commande.

dans ce guide, vous allez configurer un serveur VNC avec TightVNC sur un serveur Ubuntu 20.04 et vous y connecter en toute sécurité via un tunnel SSH., Ensuite, vous utiliserez un programme client VNC sur votre machine locale pour interagir avec votre serveur via un environnement de bureau graphique.

prérequis

pour compléter ce tutoriel, vous aurez besoin de:

  • un serveur Ubuntu 20.04 avec un utilisateur d’administration non root et un pare-feu configuré avec UFW. Pour configurer cela, suivez notre guide de configuration initiale du serveur pour Ubuntu 20.04.
  • Un ordinateur local avec un client VNC installé. Le client VNC que vous utilisez doit prendre en charge les connexions via des tunnels SSH:
    • sous Windows, vous pouvez utiliser TightVNC, RealVNC ou UltraVNC.,
    • sur macOS, vous pouvez utiliser le programme de partage d’écran intégré ou utiliser une application multiplateforme comme RealVNC.
    • Sur Linux, vous pouvez choisir parmi de nombreuses options, y compris vinagre, krdc, RealVNC, ou TightVNC.

Étape 1 — Installation de L’environnement de bureau et du serveur VNC

par défaut, un serveur Ubuntu 20.04 n’est pas livré avec un environnement de bureau graphique ou un serveur VNC installé, vous commencerez donc par les installer.,

Vous avez de nombreuses options en ce qui concerne le serveur VNC et l’environnement de bureau que vous choisissez. Dans ce tutoriel, vous allez installer des packages pour le dernier environnement de bureau Xfce et le package TightVNC disponible à partir du référentiel officiel Ubuntu. Xfce et TightVNC sont connus pour être légers et rapides, ce qui aidera à garantir que la connexion VNC sera fluide et stable même sur des connexions internet plus lentes.,

Après vous être connecté à votre serveur avec SSH, mettez à jour votre liste de paquets:

  • sudo apt update

installez maintenant Xfce avec lexfce4-goodies, qui contient quelques améliorations pour l’environnement de bureau:

  • sudo apt install xfce4 xfce4-goodies

lors de l’installation, pour choisir un gestionnaire d’affichage par défaut pour Xfce. Un gestionnaire d’affichage est un programme qui vous permet de sélectionner et de vous connecter à un environnement de bureau via une interface graphique., Vous n’utiliserez Xfce que lorsque vous vous connecterez avec un client VNC, et dans ces sessions Xfce, vous serez déjà connecté en tant qu’utilisateur Ubuntu non root. Donc, aux fins de ce tutoriel, votre choix de gestionnaire d’affichage n’est pas pertinent. Sélectionnez l’un ou l’autre et appuyez sur ENTER.,

Une fois l’installation terminée, installez le serveur TightVNC:

  • sudo apt install tightvncserver

ensuite, exécutez la commande vncserver pour définir un mot de passe D’accès VNC, créez les fichiers de configuration initiaux et démarrez une instance de serveur VNC:

  • vncserver

vous serez invité à entrer et vérifier un mot de passe pour accéder à votre machine à distance:

Output
You will require a password to access your desktops.Password:Verify:

le mot de passe doit comporter entre six et huit caractères. Les mots de passe de plus de 8 caractères seront tronqués automatiquement.,

Une fois que vous aurez vérifié le mot de passe, vous aurez la possibilité de créer un mot de passe en vue seule. Les utilisateurs qui se connectent avec le mot de passe en vue seule ne pourront pas contrôler l’instance VNC avec leur souris ou leur clavier. C’est une option utile si vous voulez montrer quelque chose à d’autres personnes en utilisant votre serveur VNC, mais ce n’est pas nécessaire.

le processus crée ensuite les fichiers de configuration par défaut et les informations de connexion nécessaires pour le serveur. De plus, il lance une instance de serveur par défaut sur le port 5901., Ce port est appelé un port d’affichage, et est désigné par VNC comme :1. VNC peut lancer plusieurs instances sur d’autres ports d’affichage, avec :2 faisant référence au port 5902, :3 faisant référence à 5903, et ainsi de suite:

notez que si vous modifiez votre mot de passe ou ajoutez un mot de passe en vue seule, vous pouvez le faire avec la commande vncpasswd:

  • vncpasswd

à ce stade, le serveur VNC est installé et en cours d’exécution., Maintenant, configurons-le pour lancer Xfce et nous donner accès au serveur via une interface graphique.

Étape 2 — Configuration du serveur VNC

le serveur VNC doit savoir quelles commandes exécuter au démarrage. Plus précisément, VNC doit savoir à quel environnement de bureau graphique il doit se connecter.

Les commandes que le serveur VNC exécute au démarrage se trouvent dans un fichier de configuration appeléxstartupdans le dossier.vnc sous votre répertoire personnel., Le script de démarrage a été créé lorsque vous avez exécuté la commandevncserver à l’étape précédente, mais vous créerez la vôtre pour lancer le bureau Xfce.,e VNC server est configuré, tout d’abord arrêter le serveur VNC instance qui s’exécute sur le port 5901 avec la commande suivante:

  • vncserver -kill :1

La sortie devrait ressembler à ceci, bien que vous verrez un autre PID:

Output
Killing Xtightvnc process ID 17648

Avant de modifier la balise xstartup fichier, sauvegarder l’original:

  • mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

Maintenant, créez un nouveau xstartup fichier et de l’ouvrir dans un éditeur de texte, nano:

  • nano ~/.vnc/xstartup

Ensuite, ajoutez les lignes suivantes dans le fichier:

~/.,vnc/xstartup
#!/bin/bashxrdb $HOME/.Xresourcesstartxfce4 &

La première ligne est un beau spectacle. Dans les fichiers en texte brut exécutables sur les plates-formes *nix, un shebang indique au système à quel interpréteur transmettre ce fichier pour l’exécution. Dans ce cas, vous transmettez le fichier à L’interpréteur Bash. Cela permettra à chaque ligne successive d’être exécutée en tant que commandes, dans l’ordre.

la première commande du fichier, xrdb $HOME/.Xresources, indique au framework GUI de VNC de lire le fichier .Xresources de l’utilisateur du serveur., .Xresources est l’endroit où un utilisateur peut apporter des modifications à certains paramètres du bureau graphique, comme les couleurs des terminaux, les thèmes de curseur et le rendu des polices. La deuxième commande indique au serveur de lancer Xfce. Chaque fois que vous démarrez ou redémarrez le serveur VNC, ces commandes s’exécuteront automatiquement.

Enregistrez et fermez le fichier après avoir ajouté ces lignes. Si vous avez utilisé nano, faites-le en appuyant sur la touche CTRL + X, Y, puis ENTER.,

pour vous assurer que le serveur VNC pourra utiliser correctement ce nouveau fichier de démarrage, vous devrez le rendre exécutable:

  • chmod +x ~/.vnc/xstartup

puis redémarrez le serveur VNC:

  • vncserver -localhost

notez que cette fois la commande inclut le -localhost option, qui lie le serveur VNC à l’interface de bouclage de votre serveur. Cela entraînera VNC à autoriser uniquement les connexions qui proviennent du serveur sur lequel il est installé.,

dans l’étape suivante, vous établirez un tunnel SSH entre votre machine locale et votre serveur, en faisant croire à VNC que la connexion de votre machine locale provient de votre serveur. Cette stratégie ajoutera une couche supplémentaire de sécurité autour de VNC, car les seuls utilisateurs qui pourront y accéder sont ceux qui ont déjà un accès SSH à votre serveur.

vous verrez une sortie similaire à celle-ci:

avec la configuration en place, vous êtes prêt à vous connecter au serveur VNC à partir de votre machine locale.,

Étape 3 — Connexion sécurisée au bureau VNC

VNC lui-même n’utilise pas de protocoles sécurisés lors de la connexion. Pour vous connecter en toute sécurité à votre serveur, vous devez établir un tunnel SSH, puis indiquer à votre client VNC de se connecter à l’aide de ce tunnel plutôt que d’établir une connexion directe.

créez une connexion SSH sur votre ordinateur local qui transmet en toute sécurité à la connexionlocalhost pour VNC., Vous pouvez le faire via le terminal sous Linux ou macOS avec la commande ssh suivante:

  • ssh -L 59000:localhost:5901 -C -N -l sammy your_server_ip

Voici ce que signifient les options de cette commande ssh:

  • -L 59000:localhost:5901: le commutateur -L spécifie que le port donné sur l’ordinateur local (59000) doit être transféré à l’hôte et au port donnés sur le serveur de destination (localhost:5901, ce qui signifie port 5901 sur le serveur de destination, défini comme your_server_ip)., Notez que le port local que vous spécifiez est quelque peu arbitraire; tant que le port n’est pas déjà lié à un autre service, vous pouvez l’utiliser comme port de transfert pour votre tunnel.
  • -C: cet indicateur permet la compression qui peut aider à minimiser la consommation de ressources et accélérer les choses.
  • -N: Cette option indique ssh que vous ne voulez pas d’exécuter des commandes à distance. Ce paramètre est utile lorsque vous souhaitez transférer les ports.,
  • -l sammy your_server_ip: Le -l commutateur vous permet de spécifier l’utilisateur que vous souhaitez connecter une fois que vous vous connectez au serveur. Assurez-vous de remplacer sammy Et your_server_ip par le nom de votre utilisateur non root et l’adresse IP de votre serveur.

Remarque: Cette commande établit un tunnel SSH qui transmet les informations du port5901 sur votre serveur VNC au port59000 sur votre machine locale via le port22 sur chaque machine, le port par défaut pour SSH., En supposant que vous avez suivi le guide de configuration préalable du serveur initial Pour Ubuntu 20.04, vous aurez ajouté une règle UFW pour autoriser les connexions à votre serveur via OpenSSH.

ceci est plus sûr que simplement ouvrir le pare-feu de votre serveur pour autoriser les connexions au port5901, car cela permettrait à quiconque d’accéder à votre serveur via VNC. En vous connectant via un tunnel SSH, vous limitez L’accès VNC aux machines qui ont déjà un accès SSH au serveur.,

Si vous utilisez PuTTY pour vous connecter à votre serveur, vous pouvez créer un tunnel SSH en cliquant avec le bouton droit de la souris sur la barre supérieure de la fenêtre du terminal, puis en cliquant sur L’option Modifier les paramètres…:

recherchez la branche connexion dans le menu arborescent à gauche de la fenêtre de Reconfiguration PuTTY. Développez la branche SSH et cliquez sur Tunnels., Sur les Options de contrôle des SSH écran redirection de port, entrez 59000 comme Port Source et localhost:5901 comme Destination, comme ceci:

Puis cliquez sur le bouton Ajouter, puis sur le bouton Appliquer pour mettre en œuvre le tunnel.

Une fois que le tunnel est en cours d’exécution, utilisez un client VNC pour vous connecter àlocalhost:59000. Vous serez invité à vous authentifier à l’aide du mot de passe que vous avez défini à L’Étape 1.

Une fois que vous êtes connecté, vous verrez le bureau Xfce par défaut., Cela devrait ressembler à ceci:

Vous pouvez accéder aux fichiers de votre répertoire personnel avec le gestionnaire de fichiers ou à partir de la ligne de commande, comme on le voit ici:

appuyez sur CTRL+C dans votre terminal local pour arrêter le tunnel SSH et revenir à votre invite. Cela déconnectera également votre session VNC.

Vous pouvez maintenant configurer votre serveur VNC pour qu’il s’exécute en tant que service systemd.,

Étape 4 — Exécution de VNC en tant que Service système

en configurant le serveur VNC pour qu’il s’exécute en tant que service systemd, vous pouvez le démarrer, l’arrêter et le redémarrer au besoin, comme tout autre service. Vous pouvez également utiliser les commandes de gestion de systemd pour vous assurer que VNC démarre lorsque votre serveur démarre.

tout d’Abord, créer une nouvelle unité fichier appelé /etc/systemd/system/[email protected]:

Le @ symbole à la fin du nom va nous permettre de passer en argument, vous pouvez utiliser dans la configuration du service., Vous l’utiliserez pour spécifier le port d’affichage VNC que vous souhaitez utiliser lorsque vous gérez le service.

ajoutez les lignes suivantes au fichier. Assurez-vous de modifier la valeur de User, Group, WorkingDirectory et le nom d’utilisateur dans la valeur de PIDFILE pour correspondre à votre nom d’utilisateur:

/etc/systemd/system/[email protected]

la commandeExecStartPre arrête VNC s’il est déjà en cours d’exécution. La commande ExecStart démarre VNC et définit la profondeur de couleur sur la couleur 24 bits avec une résolution de 1280×800. Vous pouvez également modifier ces options de démarrage pour répondre à vos besoins., Notez également que la commandeExecStart inclut à nouveau l’option-localhost.

Enregistrez et fermez le fichier.

ensuite, informez le système du nouveau fichier d’unité:

  • sudo systemctl daemon-reload

activez le fichier d’unité:

Le1 suivant le@ sign signifie le numéro d’affichage sur lequel le service doit apparaître, dans ce cas, le:1 par défaut, comme indiqué à L’étape 2.,

arrêtez l’instance actuelle du serveur VNC si elle est toujours en cours d’exécution:

  • vncserver -kill :1

puis démarrez-la comme vous le feriez pour démarrer tout autre service systemd:

  • sudo systemctl start vncserver@1

Vous pouvez vérifier qu’elle a démarré avec cette commande:

  • sudo systemctl status vncserver@1

s’il a démarré correctement, la sortie devrait ressembler à ceci:

votre serveur VNC est maintenant prêt à être utilisé chaque fois que votre serveur démarre, et vous pouvez le gérer avecsystemctl commandes comme tout autre service systemd.

cependant, il n’y aura aucune différence du côté client., Pour vous reconnecter, redémarrez votre tunnel SSH:

  • ssh -L 59000:localhost:5901 -C -N -l sammy your_server_ip

puis établissez une nouvelle connexion à l’aide de votre logiciel client VNC à localhost:59000 pour vous connecter à votre serveur.

Conclusion

Vous avez maintenant un serveur VNC sécurisé opérationnel sur votre serveur Ubuntu 20.04. Maintenant, vous serez en mesure de gérer vos fichiers, logiciels et paramètres avec une interface graphique conviviale, et vous serez en mesure d’exécuter des logiciels graphiques comme les navigateurs web à distance.

Author: admin

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *