Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

11.3. Visionneur VNC

vncviewer est un programme qui affiche les interfaces utilisateur graphique et contrôle vncserver à distance.
Pour opérer vncviewer, il existe un menu contextuel qui contient des entrées permettant d'effectuer diverses actions, comme basculer en et hors du mode plein écran, ou quitter le visionneur. Alternativement, il est possible d'opérer vncviewer via le terminal. Saisissez vncviewer -h sur la ligne de commande pour répertorier les paramètres de vncviewer.

11.3.1. Installer le visionneur VNC Viewer

Pour installer le client TigerVNC vncviewer, veuillez exécuter la commande suivante en tant qu'utilisateur root :
~]# yum install tigervnc

11.3.2. Connexion au serveur VNC

Une fois que le serveur VNC est configuré, vous pouvez vous y connecter à partir de n'importe quel visionneur VNC.

Procédure 11.3. Connexion à un serveur VNC à l'aide d'une interface utilisateur graphique

  1. Saisissez la commande vncviewer sans le moindre argument, et l'utilitaire VNC Viewer: Connection Details s'affichera. Il demandera alors sur quel serveur VNC la connexion doit être établie.
  2. Si nécessaire, pour empêcher de déconnecter toute connexion VNC sur le même affichage, sélectionnez l'option permettant de partager le bureau, comme suit :
    1. Sélectionnez le bouton Options.
    2. Sélectionnez l'onglet Divers.
    3. Sélectionnez le bouton Partagé.
    4. Appuyez sur Valider pour retourner au menu principal.
  3. Veuillez saisir une adresse et un numéro d'affichage auquel vous connecter :
    address:display_number
  4. Veuillez appuyer sur Connecter pour vous connecter à l'affichage du serveur VNC.
  5. Il vous sera demandé de saisir le mot de passe VNC. Ce sera le mot de passe VNC pour l'utilisateur correspondant au numéro d'affichage, à moins qu'un mot de passe VNC global par défaut n'ait été paramétré.
    Une fenêtre apparaît affichant le bureau du serveur VNC. Remarquez qu'il ne s'agit pas du bureau qu'un utilisateur normal peut voir, il s'agit d'un bureau Xvnc.

Procédure 11.4. Connexion à un serveur VNC à l'aide de l'interface de ligne de commande

  1. Veuillez saisir la commande viewer avec l'adresse et le numéro d'affichage comme arguments :
    vncviewer address:display_number
    , où address est une adresse IP ou un nom d'hôte.
  2. Authentifiez-vous en saisissant le mot de passe VNC. Ce sera le mot de passe VNC de l'utilisateur correspondant au numéro d'affichage, à moins qu'un mot de passe VNC global par défaut n'ait été paramétré.
  3. Une fenêtre apparaît affichant le bureau du serveur VNC. Remarquez qu'il ne s'agit pas du bureau qu'un utilisateur normal peut voir, il s'agit du bureau Xvnc.

11.3.2.1. Configurer le pare-feu pour VNC

Lors de l'utilisation d'une connexion non chiffrée, firewalld peut bloquer la connexion. Pour autoriser firewalld à transférer les paquets VNC, vous pouvez ouvrir des ports spécifiques au trafic TCP. Lors de l'utilisation de l'option -via, le trafic est redirigé sur SSH, qui est activé par défaut dans firewalld.

Note

Le port par défaut du serveur VNC est le port 5900. Pour atteindre le port par lequel un bureau distant est accessible, faîtes la somme du port par défaut et du numéro d'affichage assigné à l'utilisateur. Par exemple, pour le second affichage : 2 + 5900 = 5902.
Pour les affichages 0 à 3, utilisez la prise en charge firewalld du service VNC par l'option service comme décrit ci-dessous. Remarquez que pour les numéros d'affichage supérieurs à 3, les ports correspondants devront être spécifiquement ouverts, comme expliqué dans Procédure 11.6, « Ouvrir des ports sur firewalld ».

Procédure 11.5. Activer le service VNC sur firewalld

  1. Veuillez exécuter la commande suivante pour afficher les informations concernant les paramètres firewalld :
    ~]$ firewall-cmd --list-all
  2. Pour autoriser toutes les connexions VNC en provenance d'une adresse particulière, veuillez utiliser une commande comme suit :
    ~]# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.122.116" service name=vnc-server accept'
    success
    Veuillez noter que ces changements ne persisteront pas lors d'un nouveau démarrage. Pour rendre les changements au parefeu permanents, répétez la commande an ajoutant l'option --permanent. Veuillez consulter le Guide de sécurité Red Hat Enterprise Linux 7 pour obtenir davantage d'informations sur l'utilisation de commandes en langage riche pour pare-feux.
  3. Pour vérifier les paramètres ci-dessus, veuillez utiliser une commande comme suit :
    ~]# firewall-cmd --list-all
    public (default, active)
      interfaces: bond0 bond0.192
      sources:
      services: dhcpv6-client ssh
      ports:
      masquerade: no
      forward-ports:
      icmp-blocks:
      rich rules:
    	rule family="ipv4" source address="192.168.122.116" service name="vnc-server" accept
Pour ouvrir un port spécifique ou une gamme de ports, utilisez l'option --add-port sur l'outil de ligne de commande firewall-cmd. Par exemple, l'affichage VNC 4 requiert que le port 5904 soit ouvert au trafic TCP.

Procédure 11.6. Ouvrir des ports sur firewalld

  1. Pour ouvrir un port au trafic TCP dans la zone publique, veuillez exécuter la commande suivante en tant qu'utilisateur root :
    ~]# firewall-cmd --zone=public --add-port=5904/tcp
    success
  2. Pour afficher les ports actuellement ouverts à la zone publique, veuillez exécuter une commande comme suit :
    ~]# firewall-cmd --zone=public --list-ports
    5904/tcp
Un port peut être supprimé en utilisant la commande firewall-cmd --zone=zone --remove-port=number/protocol.
Veuillez noter que ces changements ne persisteront pas lors d'un nouveau démarrage. Pour rendre les changements au parefeu permanents, répétez la commande an ajoutant l'option --permanent. Pour obtenir davantage d'informations sur l'ouverture et la fermeture des ports de firewalld, veuillez consulter le Guide de sécurité Red Hat Enterprise Linux 7 .

11.3.3. Connexion à un serveur VNC à l'aide de SSH

VNC est un protocole réseau en texte clair sans la moindre sécurité contre des attaques possibles sur les communications. Pour rendre ces communications sécurisées, vous pouvez chiffrer votre connexion serveur-client en utilisant l'option -via. Cela créera un tunnel SSH entre le serveur VNC et le client.
Le format de la commande pour chiffrer une connecion serveur-client VNC est comme suit :
vncviewer -via user@host:display_number

Exemple 11.1. En utilisant l'option -via

  1. Pour se connecter à un serveur VNC en utilisant SSH, veuillez saisir une commande comme suit :
    ~]$ vncviewer -via USER_2@192.168.2.101:3
  2. Lorsque cela vous est demandé, saisissez le mot de passe, et confirmez en appuyant sur Entrée.
  3. Une fenêtre avec un bureau distant s'affichera sur votre écran.

Restreindre l'accès VNC

Si vous souhaitez uniquement avoir des connexions chiffrées, il est possible d'empêcher les connexions non chiffrées en utilisant l'option -localhost dans le fichier systemd.service, la ligne ExecStart :
ExecStart=/usr/sbin/runuser -l user -c "/usr/bin/vncserver -localhost %i"
Cela empêchera vncserver d'accepter toute connexion, sauf les connexions de l'hôte local et les connexions transférées par port ayant été envoyées à l'aide de SSH, conséquemment à l'utilisation de l'option -via.
Pour obtenir davantage d'informations sur l'utilisation de SSH, veuillez consulter le Chapitre 10, OpenSSH.