07.06.2023

Installer et configurer un serveur VNC sur CentOS 7

Dans ce guide, nous verrons comment installer et configurer un serveur VNC sur le CentOS Système d'exploitation 7.x pour permettre les connexions à distance à partir de n'importe quel VNC clients, tels que TightVNC, RealVNC et autres. En particulier, nous le ferons en utilisant le logiciel TigerVNC Server, un outil gratuit qui permet d'utiliser un bureau virtuel autonome.

Introduction

VNC (Virtual Network Computing) est un cliprotocole ent-server qui permet un cliordinateur ent (exécutant un VNC client) pour connecter et contrôler un ordinateur distant (fonctionnant sur un serveur VNC). Le logiciel a été développé par Olivetti & Oracle laboratoire de recherche à Cambridge, au Royaume-Uni, et son code source est toujours à jour et disponible sous la licence publique générale (GNU).

Selon le logiciel du serveur, le VNC client se connectera au bureau actif (par exemple, en tant que TeamViewer ou AnyDesk programs) ou un bureau virtuel autonome (comme le Windows RDP protocole de bureau à distance). Ce dernier, peut-être plus puissant et sécurisé, surtout si vous avez besoin de gérer l'ordinateur serveur car chaque session sera un environnement unique, configuré avec les autorisations et les droits de l'utilisateur connecté. C'est pourquoi nous choisissons TigerVNC, qui exécute des sessions parallèles de l'environnement de bureau de l'ordinateur (GNOME, KDE ou une autre interface graphique) : cela signifie qu'un bureau virtuel sera créé pour chaque connexion - c'est exactement ce que nous voulons.

Installer TigerVNC

Voyons maintenant comment installer et configurer TigerVNC sur CentOS. La première chose à faire est d'installer le programme TigerVNC Serverram en ouvrant une session de terminal et en saisissant la commande suivante avec les privilèges root :

$ sudo yum installer Tigervnc-server

Immédiatement après cela, vous devez créer un utilisateur VNC distinct à partir duquel la connexion sera établie (avec un mot de passe dédié). Pour ce faire, entrez ce qui suit :

$ sudo adduser vncuser
$ sudo passwd vncuser

Important: ne le faites jamais en tant qu'utilisateur root - cela constituera une menace sérieuse pour la sécurité de votre système. La meilleure solution serait de laisser l'utilisateur root sans accès à VNC et de créer un compte dédié avec des droits limités.

Après avoir créé vncuser et défini un mot de passe pour la connexion, vous devez également définir un mot de passe VNC unique pour cet utilisateur. La commande pour ce faire est :

$ su - utilisateur virtuel
$ vncpasswd

(la première ligne peut être omise si nous sommes déjà connectés en tant que vncuser à l'avance).

La prochaine chose à faire est de créer un fichier de configuration VNC pour vncuser. Pour ce faire, le moyen le plus rapide consiste à copier le fichier de modèle VNC partagé situé dans le /lib/systemd/système/ dossier, puis modifiez-le :

$ cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

Le numéro 1 que nous avons ajouté au nouveau nom de fichier est le numéro d'affichage qui sera utilisé pour cette instance particulière du service. Ceci est important à savoir car il déterminera également le port TCP qui sera utilisé par notre serveur VNC, égal à 5900 + numéro d'affichage. Le premier sera 5901, puis 5902 et ainsi de suite.

Immédiatement après la copie, vous devez éditer le nouveau fichier à l'aide de Vi, Nano ou d'un autre éditeur de texte, et remplacer [USER] par le nom de l'utilisateur créé récemment (dans notre cas, vncuser). Voici à quoi devrait ressembler le fichier après la mise à jour (à l'exception de la longue partie commentée au début) :

[Unité]
Description=Service de bureau à distance (VNC)
Après=syslog.target network.target
[Service]Type = bifurcation
# Nettoyez tous les fichiers existants dans l'environnement /tmp/.X11-unix
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l vncuser -c "/usr/bin/vncserver %i -geometry 1280x720"
PIDFile=/home/vncuser/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Installer]
WantedBy = multi-utilisateur.target

Une fois cela fait, vous pouvez recharger le démon VNC et exécuter vncserver @ 1 avec les commandes suivantes :

$ systemctl démon-recharger
$ systemctl démarre vncserver@:1

Avant de continuer, vérifiez que le service est en cours d'exécution en saisissant le état systemctl commander:

$ systemctl statut vncserver@:1

et créez un lien symbolique pour qu'il s'exécute toujours au démarrage du système à l'aide de la commande suivante :

$ systemctl activer vncserver@:1

Un autre test que vous pouvez effectuer avant d'essayer de vous connecter au serveur consiste à examiner les sockets réseau actifs à l'aide de lasscommande : si tout fonctionne correctement, vous devriez voir que le serveur VNC fonctionne et utilise le port TCP 5901. Exécutez la commande :

$ ss -tulpn| grepvnc

Le résultat devrait être le suivant :

tcp ÉCOUTER 0 5 *:5901 *:* utilisateurs :(("Xvnc",pid=38344,fd=9))
tcp ÉCOUTER 0 128 *:6001 *:* utilisateurs :(("Xvnc",pid=38344,fd=6))
tcp ÉCOUTER 0 5 :::5901 :::* utilisateurs:(("Xvnc",pid=38344,fd=10))
tcp ÉCOUTER 0 128 :::6001 :::* utilisateurs:(("Xvnc",pid=38344,fd=5))

Si vous voyez cela, alors tout est configuré correctement.

Firewall installation

Étant donné que notre service VNC écoute sur le port TCP 5901, vous devez vous assurer qu'un tel port est ouvert et accessible aux clients. Par conséquent, si vous avez un firewall installé, vous devez créer une règle appropriée qui autorise VNC clients à connecter.

Le nombre de ports à ouvrir dépendra du nombre d'instances de serveur VNC dont vous avez besoin. Dans notre scénario, nous n'en avons fait qu'un seul, il vous suffit donc d'ouvrir le premier port VNC dédié : TCP 1, comme nous l'avons déjà dit. La commande pour ouvrir ce port sur Firewalld:

# firewall-cmd --add-port = 5901/tcp
# firewall-cmd --add-port = 5901 / tcp --permanent

Il ne sera pas superflu de mentionner que vous pouvez également restreindre ce port à certains groupes, adresses IP, cartes réseau, ou autres simples ou complexes firewall règles.

Installation de l'interface utilisateur graphique (GUI)

Si vous avez déjà GNOME, KDE ou d'autres environnements de bureau installés, vous pouvez ignorer cette étape. Sinon, vous devez installer l'un d'entre eux : le serveur TigerVNC démarrera une instance parallèle de cet environnement de bureau pour chaque session de connexion, ce qui signifie que nous devons avoir au moins une interface graphique.

GNOME

Si vous voulez une interface GNOME géniale mais lourde, entrez ce qui suit :

$ sudo yum groupinstall "GNOME Desktop"

Xfce

Si vous avez besoin d'une modification légèrenative, nous pouvons offrir Xfce, un environnement open-source gratuit pour les plates-formes de type Unix qui fonctionne très bien avec TigerVNC. GNOME fonctionne également très bien, mais il consomme beaucoup de ressources : si vous souhaitez économiser des ressources sur votre machine serveur, Xfce pourrait être le meilleur choix. Pour l'installer, entrez ce qui suit :

$ miam, installez epel-release
$ miam groupinstall xfce

Paramètres supplémentaires pour Xfce

Si vous décidez d'utiliser Xfce, vous devrez également modifier le fichier qui a été exécuté au démarrage de la session VNC. Pour cela, éditez le fichier /domicile/ /.vnc/xstartup et modifiez l'entrée exec (généralement la ligne 4) de etc/X11/xinit/xinitrc à startxfce4, comme indiqué ci-dessous:

#! / Bin / sh
désactiver SESSION_MANAGER
désactiver DBUS_SESSION_BUS_ADDRESS
exécutable startxfce4
vncserver -kill $AFFICHAGE

VNC cliconnexion ent

Maintenant que tout est configuré, nous pouvons essayer de nous connecter à notre service VNC en utilisant un VNC client, comme TightVNC, UltraVNC ou RealVNC, et voyez ce qui se passe. Pensez à préciser le port TCP 5901 (si vous avez suivi notre guide).

problèmes possibles

Si votre client ne peut pas établir une connexion VNC fonctionnelle, vous devez vérifier ce qui suit :

1. Problèmes de connexion - Firewall paramétrage: si vous voyez des erreurs contextuelles que le client ne peut pas se connecter à l'hôte distant, vous devez vérifier votre réseau et firewall configuration pour s'assurer qu'il n'y a pas de problèmes de blocage qui pourraient empêcher le client de se connecter au port de serveur TCP 5901.

2. Écran noir avec la souris - mise à jour de YUM ou réinstallation de l'interface graphique: si vous voyez un écran noir avec un curseur de souris fonctionnel, cela signifie probablement que votre connexion VNC fonctionne correctement, mais il y a quelque chose qui empêche l'interface graphique de démarrer correctement sur le bureau. Pour corriger :