Installation du serveur VNC Remote Access Server sur Oracle Linux

Introduction

Ce tutoriel vous explique comment installer et configurer le logiciel du serveur d'accès distant VNC sur un système Oracle Linux pour vous permettre d'utiliser à distance un environnement de bureau graphique. Ce tutoriel s'adresse aux utilisateurs d'Oracle Linux 8 ou version ultérieure.

Contexte

Virtual Network Computing (VNC) est un système de partage de bureau graphique qui contrôle les machines distantes en envoyant des événements de clavier et de souris sur le réseau. VNC est particulièrement utile pour le contrôle à distance des serveurs Oracle Linux sur lesquels un environnement de bureau graphique est installé.

Vous pouvez vous connecter à un serveur VNC à l'aide de n'importe quel client logiciel compatible. VNC est adapté à l'informatique client léger, où plusieurs terminaux muets peuvent partager les mêmes ressources matérielles hébergées sur un serveur Oracle Linux.

Ce tutoriel utilise TigerVNC pour illustrer la connexion à distance aux systèmes. Cependant, vous pouvez utiliser un autre logiciel VNC de votre choix. Certains logiciels alternatifs sont répertoriés à la fin du tutoriel.

Le serveur TigerVNC était basé à nouveau de 1.9.0 à 1.10.1 dans Oracle Linux 8 Update 3. Cette version plus récente est configurée différemment des versions précédentes et ne nécessite plus la création de fichiers unit systemd. Les instructions fournies ici supposent que vous utilisez la dernière version.

Objectifs

Dans ce tutoriel :

Prérequis

Installer un environnement de bureau graphique

Installez un environnement de bureau GNOME et toutes ses dépendances.

sudo dnf groupinstall "Server with GUI"

Définissez le mode graphique comme type de connexion par défaut pour les comptes utilisateur, puis réinitialisez le serveur.

sudo systemctl set-default graphical
sudo reboot

Supprimez la mise en commentaire de la ligne suivante dans le fichier /etc/gdm/custom.conf pour vous assurer que VNC utilise X.org au lieu de Wayland :

WaylandEnable=False

Installer les packages VNC

Installez le package du serveur VNC et toutes ses dépendances.

sudo dnf install -y tigervnc-server tigervnc-server-module

Définir le mot de passe VNC

Créez un mot de passe VNC pour le compte utilisateur que vous souhaitez utiliser pour les sessions distantes.

vncpasswd

La commande vous invite à entrer un mot de passe, puis vous invite à nouveau à le valider. Vous pouvez éventuellement définir un mot de passe en lecture seule qui vous permet de partager l'écran, mais pas de contrôler la souris ou le clavier.

Cette action génère des informations de configuration propres au compte utilisateur dans $HOME/.vnc/. Si ce répertoire existe déjà à partir d'une installation précédente, vous pouvez soit supprimer le répertoire avant d'exécuter la commande vncpasswd, soit restaurer le contexte SELinux sur le répertoire pour vous assurer que vous n'avez aucun problème avec SELinux pour ce service. Par exemple :

restorecon -RFv $HOME/.vnc

Configurer le service VNC

Ajoutez le compte utilisateur et l'affichage du serveur X pour le service VNC au fichier /etc/tigervnc/vncserver.users :

:1=username

Ajoutez également le bureau et la résolution d'écran par défaut au fichier /etc/tigervnc/vncserver-config-defaults :

session=gnome
geometry=1280x1024

Configuration du service VNC

Rechargez le service systemd, puis activez et démarrez le serveur VNC à l'aide de l'affichage X Server 1 :

sudo systemctl daemon-reload
sudo systemctl enable --now vncserver@:1.service

Configurer le cryptage X509 (facultatif)

Par défaut, VNC n'est pas un protocole chiffré et vous devez utiliser un tunnel SSH pour y accéder sur un réseau non protégé. Vous pouvez configurer TLS X509 pour crypter votre session VNC. Toutefois, votre logiciel client doit prendre en charge le chiffrement X509Vnc et avoir accès au certificat CA utilisé pour signer vos certificats.

Si vous ne disposez pas d'un certificat signé par une autorité de certification, vous pouvez utiliser des certificats autosignés, mais votre système client doit disposer d'une copie du certificat public pour pouvoir vous connecter. Pour créer un certificat auto-signé, exécutez la commande suivante :

openssl req -new -x509 -days 30 -nodes -newkey rsa:2048 -keyout ~/.vnc/private.key \
-out ~/.vnc/public.cert -subj "/C=US/ST=Ca/L=Sunnydale/CN=$(hostname -f)"

Modifiez les options de configuration VNC personnalisées de l'utilisateur dans "~/.vnc/config". Si le fichier n'existe pas encore, vous devrez peut-être le créer vous-même. Mettez à jour la configuration pour activer le cryptage x509Vnc et fournir le chemin complet du fichier de clés X509 et du fichier de certificat x509. Par exemple, en supposant que le nom utilisateur est opc, la configuration suivante doit fonctionner correctement :

securitytypes=x509Vnc
X509Key=/home/opc/.vnc/private.key
X509Cert=/home/opc/.vnc/public.cert

Notez que vous devez fournir le chemin d'accès complet aux fichiers de clés et de certificats. Vous ne pouvez pas dépendre de l'extension de shell ni utiliser des variables à cet effet.

Lorsque vous avez fini de modifier la configuration, vous pouvez redémarrer le service :

sudo systemctl restart vncserver@:1.service

Configurer des règles de pare-feu (facultatif)

Si vous utilisez le cryptage X509 et que vous exécutez un profil de pare-feu personnalisé ou une instance Oracle Cloud Infrastructure, vous pouvez ouvrir le port de pare-feu pour le service VNC (5901) sur votre pare-feu ou dans vos listes de sécurité pour votre réseau.

Si vous utilisez le chiffrement X509 et que le service firewalld est en cours d'exécution sur l'hôte, vous pouvez ajouter l'accès au service VNC. Ensuite, rechargez le service de pare-feu par défaut.

sudo firewall-cmd --zone=public --add-service=vnc-server --permanent
sudo firewall-cmd --reload

Remarque : VNC n'est pas un protocole chiffré et vous ne devez pas ouvrir le pare-feu sur ce port et vous connecter directement à un serveur VNC sur un réseau non protégé. Bien que cette étape soit facultative, elle n'est généralement pas recommandée et vous devez envisager d'utiliser la tunnellisation SSH ou un autre mécanisme pour protéger la connexion.

Ouvrez un client VNC et testez votre déploiement.

Si votre client exécute Oracle Linux 8, vous pouvez installer le client logiciel TigerVNC :

sudo dnf install tigervnc

Sur l'ordinateur client, utilisez le logiciel VNC pour vous connecter au domaine ou à l'adresse IP du serveur Oracle Linux distant. Veillez à spécifier le port correct. Le port VNC par défaut est 5900, mais ce nombre est incrémenté en fonction du numéro d'affichage configuré. Ainsi, l'affichage 1 correspond à 5901, l'affichage 2 à 5902, etc.

Si vous avez activé le chiffrement X509, vous devrez peut-être fournir le certificat CA utilisé pour signer vos clés ou si vous avez utilisé un certificat autosigné, vous pouvez utiliser le certificat public comme certificat CA. Certains clients peuvent être prêts à vous permettre d'accepter simplement un certificat autosigné automatiquement.

Si vous rencontrez des problèmes de connectivité, résolvez ces problèmes en vous connectant au serveur distant via une connexion SSH configurée pour un tunnel SSH. Utilisez ensuite le client tigervnc pour vous connecter à l'hôte local :

ssh -L 5901:localhost:5901 user@server1.example.com
vncviewer localhost:5901

Vous devrez peut-être effectuer des étapes supplémentaires si vous voulez vous connecter à une instance Oracle Cloud Infrastructure. Pour plus d'informations, reportez-vous à https://docs.oracle.com/en-us/iaas/Content/Compute/Tasks/accessinginstance.htm.

Si vous essayez de vous connecter à une machine virtuelle hébergée par Oracle VM VirtualBox, vous devez configurer un transfert de port supplémentaire pour un accès distant. Vous trouverez ici les instructions de configuration des réseaux virtuels dans le manuel de l'utilisateur pour la version installée d'Oracle VM VirtualBox : https://docs.oracle.com/en/virtualization/virtualbox/.

Démonstration vidéo

La démonstration vidéo et le tutoriel fournis sur https://www.youtube.com/watch?v=Z5vhER7K34E peuvent également être utiles si vous avez besoin de plus d'informations sur la configuration d'un serveur VNC.

Installer et configurer VNC sur Oracle Linux 8

Pour plus d'informations

Les autres ressources associées sont les suivantes :

Les étapes de base incluses dans ce tutoriel sont disponibles dans le script shell à l'adresse ol8-vnc-setup.sh

Ressources de formation supplémentaires

Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à davantage de contenu de formation gratuit sur le canal Oracle Learning YouTube. En outre, accédez à education.oracle.com/learning-explorer pour devenir explorateur Oracle Learning.

Pour consulter la documentation du produit, consultez Oracle Help Center.