Dans ce guide, nous verrons comment installer et configurer un serveur VNC sur CentOS 7.x système d’exploitation permettant les connexions distantes de tous les clients VNC, tels que TightVNC, RealVNC et autres. Nous le ferons notamment à l’aide du logiciel serveur TigerVNC, un outil gratuit qui permet d’utiliser un bureau virtuel autonome.
Introduction
VNC (Virtual Network Computing) est un protocole client-serveur qui permet à un ordinateur client (exécutant un client VNC) de se connecter et de contrôler un ordinateur distant (fonctionnant sur un serveur VNC). Le logiciel a été développé par le laboratoire de recherche Oracle d’Olivetti & à Cambridge, au Royaume-Uni, et son code source est toujours à jour et disponible sous la Licence Publique Générale (GNU).
Selon le logiciel serveur, le client VNC se connectera au bureau actif (par exemple, en tant que programmes TeamViewer ou AnyDesk) ou à un bureau virtuel autonome (comme le protocole Windows RDP remote desktop). Ce dernier, peut-être plus puissant et sécurisé, surtout si vous devez 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.
Installation de TigerVNC
Voyons maintenant comment installer et configurer TigerVNC sur CentOS. La première chose à faire est d’installer le programme serveur TigerVNC en ouvrant une session de terminal et en entrant la commande suivante avec les privilèges root :
$ sudo yum install tigervnc-server
Immédiatement après cela, vous devez créer un utilisateur VNC séparé à partir duquel la connexion sera établie (avec un mot de passe dédié). Pour ce faire, entrez les éléments suivants:
$ sudo adduser vncuser
$ sudo passwd vncuser
Important: ne faites jamais cela 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.
Une fois que vous avez créé vncuser et défini un mot de passe pour vous connecter, vous devez également définir un mot de passe VNC unique pour cet utilisateur. La commande pour ce faire est :
$ su - vncuser
$ 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. Le moyen le plus rapide de le faire est de copier le fichier de modèle VNC partagé situé dans le dossier /lib/systemd/system/, puis de le modifier:
$ cp /lib/systemd/system/[email protected] /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 modifier le nouveau fichier en utilisant Vi, Nano ou un autre éditeur de texte, et le remplacer par le nom de l’utilisateur créé récemment (dans notre cas, vncuser). Voici comment le fichier doit gérer la mise à jour (à l’exception de la longue partie commentée au début) :
Description=Remote desktop service (VNC)
After=syslog.target network.target
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
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 || :'
WantedBy=multi-user.target
Une fois cela fait, vous pouvez recharger le démon VNC et exécuter vncserver@1 avec les commandes suivantes:
$ systemctl daemon-reload
$ systemctl start vncserver@:1
Avant de continuer, vérifiez que le service est en cours d’exécution en entrant la commande d’état systemctl :
$ systemctl status 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 enable 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 thesscommand: si tout fonctionne correctement, vous devriez voir que le serveur VNC fonctionne et utilise le port TCP 5901. Exécutez la commande :
$ ss -tulpn| grep vnc
Le résultat doit être le suivant:
tcp LISTEN 0 5 *:5901 *:* users:(("Xvnc",pid=38344,fd=9))
tcp LISTEN 0 128 *:6001 *:* users:(("Xvnc",pid=38344,fd=6))
tcp LISTEN 0 5 :::5901 :::* users:(("Xvnc",pid=38344,fd=10))
tcp LISTEN 0 128 :::6001 :::* users:(("Xvnc",pid=38344,fd=5))
Si vous voyez cela, tout est configuré correctement.
Configuration du pare-feu
Notre service VNC étant à l’écoute sur le port TCP 5901, vous devez être sûr qu’un tel port est ouvert et accessible aux clients externes. Par conséquent, si un pare-feu est installé, vous devez créer une règle appropriée permettant aux clients VNC de se 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 que 1, il vous suffit donc d’ouvrir le premier port VNC dédié: TCP 5901, 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 règles de pare-feu simples ou complexes.
Installation de l’interface utilisateur graphique (GUI)
Si vous avez déjà installé GNOME, KDE ou d’autres environnements de bureau, vous pouvez ignorer cette étape. Sinon, vous devez en installer un : 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 alternative légère, nous pouvons proposer Xfce, un environnement libre et open-source 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 les éléments suivants :
$ yum install epel-release
$ yum 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 ce faire, éditez le fichier /home/<utilisateur >/.vnc/xstartup et changez l’entrée exec (généralement la ligne 4) de etc/X11/xinit/xinitrc en startxfce4, comme indiqué ci-dessous :
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
vncserver -kill $DISPLAY
Connexion client VNC
Maintenant que tout est configuré, nous pouvons essayer de nous connecter à notre service VNC en utilisant un client VNC, tel que TightVNC , UltraVNC ou RealVNC, et voir ce qui se passe. N’oubliez pas de spécifier 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 les points suivants :
1. Problèmes de connexion – Configuration du pare-feu : si vous voyez des erreurs contextuelles indiquant que le client ne peut pas se connecter à l’hôte distant, vous devez vérifier la configuration de votre réseau et de votre pare-feu pour vous assurer qu’il n’y a aucun problème de blocage qui pourrait 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 le bureau. Pour correction :
- Exécutez yum update pour installer les dernières versions de TigerVNC et l’interface graphique elle-même. Assurez-vous de garder une trace de tout problème qui se produit pendant la phase d’installation.
- Désinstallez et réinstallez l’interface graphique à l’aide de la commande yum remove/yum group remove et yum groupinstall à nouveau. Si rien ne fonctionne toujours, vous pouvez essayer d’installer une interface graphique différente.
+1 302 498-83-59
IT-GRAD NL B.V.
+1 302 498-83-59
IT-GRAD NL B.V.