Comment installer et configurer un serveur VNC sous CentOS et RHEL

Dans ce guide, nous allons expliquer comment installer et configurer Accès à distance VNC dans CentOS 7/8 et RHEL 9/8/7 édition de bureau via le programme tigervnc-server pour accéder aux machines de bureau à distance.

VNC (Virtual Network Computing) est un protocole serveur-client qui permet aux comptes d’utilisateurs de se connecter à distance et de contrôler un système distant en utilisant les ressources fournies par l’interface utilisateur graphique.

Contrairement à d’autres serveurs VNC disponibles qui se connectent directement au bureau en cours d’exécution, tels que VNC X ou Vino, tigervnc-vncserver utilise un mécanisme différent qui configure un bureau virtuel autonome pour chaque utilisateur.

Exigences

Étape 1: Installer et configurer VNC sur CentOS

1. Tigervnc-server est un programme qui exécute un serveur Xvnc et démarre des sessions parallèles de Gnome ou d’autres environnements de bureau sur le bureau VNC.

A started VNC user session can be accessed by the same user from multiple VNC clients. In order to install the TigerVNC server in CentOS/RHEL, open a terminal session and issue the following yum command with root privileges.

$ sudo yum install tigervnc-server
Install TigerVNC in Linux

2. Après avoir installé le programme, connectez-vous avec l’utilisateur que vous souhaitez utiliser pour exécuter le programme VNC et exécutez la commande ci-dessous dans le terminal afin de configurer un mot de passe pour le serveur VNC.

Sachez que le mot de passe doit compter au moins six caractères.

$ su - your_user
$ vncpasswd
Create VNC Password

3. Ensuite, ajoutez un fichier de configuration de service VNC pour votre utilisateur via un fichier de configuration de démon placé dans l’arborescence de répertoires systemd. Afin de copier le fichier de modèle VNC dont vous avez besoin, vous devez exécuter la commande cp suivante avec les privilèges root.

Si votre utilisateur n’est pas autorisé à utiliser sudo, soit basculer directement vers le compte root, soit exécuter la commande à partir d’un compte disposant des privilèges de root.

# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service

4. Dans l’étape suivante, modifiez le fichier de configuration du modèle VNC copié à partir du répertoire /etc/systemd/system/ et remplacez les valeurs suivantes pour refléter votre utilisateur comme indiqué dans l’exemple ci-dessous.

La valeur de 1 après le signe @ représente le numéro d’affichage (port 5900+display). De plus, pour chaque serveur VNC démarré, le port 5900 sera incrémenté de 1.

# vi /etc/systemd/system/vncserver@\:1.service

Ajoutez les lignes suivantes au fichier vncserver@:1.service.

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
User=tecmint
Group=tecmint
WorkingDirectory=/home/tecmint
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %i -geometry 1280x1024
PIDFile=/home/tecmint/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target
Configure VNC Systemd

5. Après avoir apporté les modifications appropriées au fichier de service VNC, rechargez le programme d’initialisation système systemd pour prendre en compte le nouveau fichier de configuration VNC et démarrer le serveur TigerVNC.

Vérifiez également l’état du service VNC et activez le démon VNC à l’échelle du système en exécutant les commandes ci-dessous.

# systemctl daemon-reload
# systemctl start vncserver@:1
# systemctl status vncserver@:1
# systemctl enable vncserver@:1
Start VNC Service

6. Pour lister les ports ouverts en état d’écoute appartenant au serveur VNC, exécutez la commande ss, qui est utilisée pour afficher les sockets réseau. Comme vous n’avez démarré qu’une seule instance du serveur VNC, le premier port ouvert est 5901/TCP.

Encore une fois, la commande ss doit être exécutée avec les privilèges de root. Si vous démarrez d’autres instances VNC en parallèle pour différents utilisateurs, la valeur du port sera 5902 pour le deuxième, 5903 pour le troisième, et ainsi de suite. Les ports 6000+ sont utilisés pour permettre aux applications X de se connecter au serveur VNC.

# ss -tulpn| grep vnc
Verify VNC Listening Ports

7. Afin de permettre aux clients VNC externes de se connecter au serveur VNC, vous devez vous assurer que les ports ouverts VNC appropriés sont autorisés à passer à travers votre pare-feu.

Dans le cas où une seule instance du serveur VNC est démarrée, vous n’avez besoin d’ouvrir que le premier port VNC alloué : 5901/TCP en exécutant les commandes ci-dessous pour appliquer la configuration du pare-feu en temps réel.

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

Étape 2 : Se connecter au Bureau CentOS via un Client VNC

8. Étant un protocole indépendant de la plateforme, les connexions Graphical User Interface VNC à distance peuvent être effectuées à partir de pratiquement n’importe quel système d’exploitation avec une interface graphique et un client VNC spécialisé.

A popular VNC client used in Microsoft-based operating systems, fully compatible with Linux TigerVNC server, is the RealVNC VNC Viewer.

Pour se connecter à distance à CentOS Desktop depuis un système Microsoft via le protocole VNC, ouvrez le programme VNC Viewer, ajoutez l’adresse IP et le numéro de port du serveur VNC CentOS, et appuyez sur la touche [enter].

Une fois la connexion VNC établie, un avertissement indiquant que la connexion n’est pas chiffrée doit s’afficher à l’écran, comme illustré dans les captures d’écran ci-dessous.

VNC Viewer Client
VNC Viewer Client Connection

9. Pour contourner l’avertissement, cliquez sur le bouton Continue, ajoutez le mot de passe configuré pour le serveur VNC au point 2 et vous devriez être connecté à distance à CentOS Desktop avec l’utilisateur configuré pour exécuter l’instance du serveur VNC.

VNC Server User Password
VNC Remote CentOS Desktop

10. En cas de nouvelle Authentification message apparaît à l’écran et que votre utilisateur n’a pas de privilèges root, cliquez simplement sur le bouton Annuler pour continuer vers CentOS Desktop, comme indiqué dans la capture d’écran ci-dessous.

VNC Server Authentication Warning

Sachez que la communication VNC établie entre le serveur et le client et toutes les données échangées (à l’exception du mot de passe) transitent sur un canal non chiffré. Pour chiffrer et sécuriser le transfert de données VPN, vous devez d’abord configurer un tunnel SSH sécurisé et faire transiter tout trafic VPN subséquent sur le tunnel SSH.

11. Pour se connecter à distance à CentOS Desktop via le protocole VNC depuis d’autres systèmes CentOS Desktop, assurez-vous d’abord que le paquet vinagre est installé sur votre système en exécutant la commande ci-dessous.

$ sudo yum install vinagre

12. Pour ouvrir l’utilitaire vinagre, allez à Applications -> Utilitaires -> Visionneuse de Bureau à distance comme indiqué dans l’image ci-dessous.

Open Vinagre Tool

13. Pour se connecter à distance à un Bureau CentOS, appuyez sur le bouton Connect, sélectionnez le protocole VNC dans la liste et ajoutez l’adresse IP et le port (5900 + numéro d’affichage) du serveur VNC distant. Donnez également le mot de passe défini pour l’utilisateur VNC comme illustré dans les captures d’écran suivantes.

Select Remote Desktop Protocol
Enter Remote VNC Details
Remote VNC CentOS Desktop

14. Un autre client VNC populaire pour les plateformes basées sur Linux est Remmina, un client de bureau à distance qui est particulièrement utilisé dans les distributions basées sur Debian qui exécutent l’environnement de bureau GNOME.

Pour installer le client Remmina Remote Desktop dans les distributions basées sur Debian, exécutez la commande suivante.

$ sudo apt-get install remmina

Étape 3 : Configurer plusieurs sessions VNC sur CentOS

15. Si vous avez besoin d’exécuter une nouvelle session VNC parallèle sous le même utilisateur, ouvrez une console Terminal, connectez-vous avec l’utilisateur que vous souhaitez démarrer la nouvelle session VNC et exécutez la commande ci-dessous.

Lorsque vous démarrez le serveur pour la première fois, vous serez invité à fournir un nouveau mot de passe pour cette session. Cependant, sachez que cette session s’exécute avec les autorisations de votre utilisateur connecté et indépendamment de la session de serveur VNC systemd démarrée.

$ vncserver
Start New VNC Session

16. Les nouvelles sessions VNC ouvriront les ports VNC disponibles suivants (5900+3 affichés dans cet exemple). Pour afficher les ports ouverts, exécutez la commande ss sans privilèges root comme illustré dans l’extrait ci-dessous. Elle ne répertoriera que les sessions VNC démarrées appartenant à votre utilisateur.

$ ss -tlpn| grep Xvnc
List VNC Open Ports

17. Maintenant, connectez-vous à distance au bureau CentOS en utilisant cette nouvelle session VNC, et fournissez la combinaison IP:port (192.168.1.23:5903) dans le client VNC comme illustré dans l’image ci-dessous.

Connect to VNC Remote Desktop

Pour arrêter les instances du serveur VNC démarrées avec les autorisations de cet utilisateur connecté, exécutez la commande suivante sans aucun privilège root. Cette commande détruira toutes les instances VNC démarrées appartenant uniquement à l’utilisateur qui les a démarrées.

$ su - your_user
$ killall Xvnc

C’est tout ! Vous pouvez maintenant accéder à votre système CentOS et effectuer des tâches administratives en utilisant l’interface graphique fournie par le système d’exploitation.

Source:
https://www.tecmint.com/install-and-configure-vnc-server-in-centos-7/