Dans ce guide, nous allons expliquer comment installer et configurer l’accès à distance VNC dans la dernière version de CentOS 7 et RHEL 7 Desktop edition via le programme tigervnc-server.
VNC (Virtual Network Computing) est un protocole serveur-client qui permet aux comptes utilisateurs de se connecter à distance et de contrôler un système distant en utilisant les ressources fournies par l’interface utilisateur graphique.
Contrairement aux autres serveurs VNC disponibles qui se connectent directement au bureau d’exécution, comme VNC X ou Vino, tigervnc-vncserver utilise un mécanisme différent qui configure un bureau virtuel autonome pour chaque utilisateur.
Conditions requises
- Procédure d’installation de CentOS 7
- Procédure d’installation de RHEL 7
Étape 1 : Installation et configuration de VNC dans CentOS 7
1. Tigervnc-server est un programme qui exécute un serveur Xvnc et démarre des sessions parallèles de Gnome ou d’un autre environnement de bureau sur le bureau VNC.
Une session utilisateur VNC démarrée peut être accessible par le même utilisateur depuis plusieurs clients VNC. Afin d’installer le serveur TigerVNC dans CentOS 7, ouvrez une session de terminal et émettez la commande suivante avec les privilèges de root.
$ sudo yum install tigervnc-server
2. Après, vous avez installé le programme, connectez-vous avec l’utilisateur que vous voulez exécuter le programme VNC et émettez la commande suivante dans le terminal afin de configurer un mot de passe pour le serveur VNC.
Sachez que le mot de passe doit avoir une longueur d’au moins six caractères.
$ su - your_user # If you want to configure VNC server to run under this user directly from CLI without switching users from GUI$ vncpasswd
3. Ensuite, ajoutez un fichier de configuration du service VNC pour votre utilisateur via un fichier de configuration du démon placé dans l’arborescence du répertoire systemd. Afin de copier le fichier de modèle VNC, vous devez exécuter la commande suivante avec les privilèges de root.
Si votre utilisateur n’est pas accordé avec les privilèges sudo, passez directement au compte root ou exécutez la commande à partir d’un compte avec des privilèges root.
# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service
4. À l’étape suivante, éditez le fichier de configuration du modèle VNC copié dans le répertoire /etc/systemd/system/ et remplacez les valeurs 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+affichage). 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.
Description=Remote desktop service (VNC)After=syslog.target network.targetType=forkingExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'ExecStart=/sbin/runuser -l my_user -c "/usr/bin/vncserver %i -geometry 1280x1024"PIDFile=/home/my_user/.vnc/%H%i.pidExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'WantedBy=multi-user.target
5. Après avoir apporté les modifications appropriées au fichier de service VNC, rechargez le programme d’initialisation du système systemd pour récupérer le nouveau fichier de configuration vnc et démarrer le serveur TigerVNC.
En outre, vérifiez l’état du service VNC et activez le démon VNC à l’échelle du système en émettant les commandes suivantes.
# systemctl daemon-reload# systemctl start vncserver@:1# systemctl status vncserver@:1# systemctl enable vncserver@:1
6. Pour répertorier les ports ouverts en état d’écoute appartenant au serveur VNC, exécutez la commande ss, qui est utilisée dans CentOS 7 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, la commande ss doit être exécutée avec les privilèges de l’utilisateur root. Dans le cas où vous démarrez d’autres instances VNC en parallèle pour différents utilisateurs, la valeur du port sera 5902 pour la deuxième, 5903 pour la 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
7. Afin de permettre aux clients VNC externes de se connecter au serveur VNC dans CentOS, 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 devez seulement ouvrir le premier port VNC alloué : 5901/TCP en émettant les commandes ci-dessous pour appliquer la configuration du pare-feu au moment de l’exécution.
# firewall-cmd --add-port=5901/tcp# firewall-cmd --add-port=5901/tcp --permanent
Étape 2 : Connexion au bureau CentOS via le client VNC
8. Étant un protocole indépendant de la plate-forme, les connexions VNC à distance par interface graphique peuvent être effectuées à partir de presque tous les systèmes d’exploitation avec une interface graphique et un client VNC spécialisé.
Un client VNC populaire utilisé dans les systèmes d’exploitation basés sur Microsoft, entièrement compatible avec le serveur Linux TigerVNC, est le RealVNC VNC Viewer.
Pour se connecter à distance au bureau CentOS à partir d’un OS 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.
Après que la connexion VNC ait été établie, un avertissement disant que la connexion n’est pas cryptée devrait s’afficher sur votre écran comme illustré dans les captures d’écran ci-dessous.
9. Afin de contourner l’avertissement, cliquez sur le bouton Continuer, ajoutez la configuration du mot de passe pour le serveur VNC au point 2 et vous devriez être connecté à distance au CentOS Desktop avec l’utilisateur configuré pour exécuter l’instance du serveur VNC.
10. Dans le cas où un nouveau message d’authentification apparaît sur votre écran et que votre utilisateur n’a pas de privilèges root, il suffit d’appuyer sur le bouton Annuler pour continuer sur CentOS Desktop, comme indiqué dans la capture d’écran ci-dessous.
Sachez que la communication VNC établie entre le serveur et le client et toutes les données échangées (sauf le mot de passe) s’exécutent sur un canal non crypté. Afin de crypter et de sécuriser le transfert de données VPN, vous devez d’abord configurer un tunnel SSH sécurisé et exécuter tout trafic VPN ultérieur sur le tunnel SSH.
11. Afin de se connecter à distance à CentOS Desktop via le protocole VNC depuis un autre CentOS Desktop, assurez-vous d’abord que le paquet vinagre est installé sur votre système en émettant la commande ci-dessous.
$ sudo yum install vinagre
12. Pour ouvrir l’utilitaire vinagre, allez dans Applications -> Utilitaires -> Remote Desktop Viewer comme indiqué dans la capture d’écran ci-dessous.
13. Pour se connecter à distance à un bureau CentOS, appuyez sur le bouton Connecter, 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. Fournissez également la configuration du mot de passe pour l’utilisateur VNC comme illustré dans les captures d’écran suivantes.
14. Un autre client VNC populaire pour les plates-formes basées sur Linux est Remmina, est un client de bureau à distance est particulièrement utilisé dans les distributions basées sur Debian qui exécutent l’environnement de bureau GNOME.
Pour installer le client de bureau à distance Remmina dans les distros basées sur Debian émettre la commande suivante.
$ sudo apt-get install remmina
Étape 3 : Configurer des sessions VNC multiples dans CentOS 7
15. Dans le cas où vous devez exécuter une nouvelle session VNC parallèle sous le même utilisateur, ouvrez une console Terminal, connectez-vous avec l’utilisateur que vous voulez démarrer la nouvelle session VNC et exécutez la commande suivante.
Lorsque vous démarrez le serveur pour la première fois, il vous sera demandé de fournir un nouveau mot de passe pour cette session. Cependant, sachez que cette session s’exécute avec vos autorisations d’utilisateur connecté et indépendamment de la session de serveur VNC systemd démarrée.
$ vncserver
16. Les nouvelles sessions VNC ouvriront les prochains ports disponibles basés sur VNC (affichage 5900+3 dans cet exemple). Pour afficher les ports ouverts, exécutez la commande ss sans privilèges de root comme illustré dans l’extrait ci-dessous. Elle listera uniquement les sessions VNC démarrées dues à votre utilisateur.
$ ss -tlpn| grep Xvnc
17. Maintenant, connectez-vous à distance au bureau CentOS en utilisant cette nouvelle session VNC, fournissez la combinaison IP:port (192.168.1.23:5903) dans le client VNC comme illustré dans l’image ci-dessous.
Afin d’arrêter les instances du serveur VNC démarrées avec les autorisations de cet utilisateur connecté, lancez 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éclarées.
$ su - your_user$ killall Xvnc
Lisez aussi : Installer CentOS 7 ou RHEL 7 à distance en utilisant le mode VNC
C’est tout ! Vous pouvez maintenant accéder à votre système CentOS 7 et effectuer des tâches d’administration en utilisant l’interface utilisateur graphique fournie par le système d’exploitation.