Chiffrer les connexions VNC avec SSH

VNC signifie Virtual Network Computing. C’est un système d’affichage à distance qui vous permet de visualiser un « bureau informatique» non seulement depuis la machine sur laquelle il tourne mais depuis n’importe où sur Internet et depuis des machines ayant des architectures différentes.

Vous pouvez utiliser cet outil pour visualiser l’affichage à distance de n’importe quelle machine Unix ou Windows depuis une station de travail Unix ou Windows. Chiffrer X11 avec SSH peut être plus commode lorsque vous voulez accéder à un serveur Unix éloigné, mais il existe des cas où VNC pourrait mieux convenir, car il n’y a pas d’état stocké dans le visionneur (c.-à-d. sur votre station de travail).

Accéder à distance à un PC Windows

Vous devez configurer un serveur VNC sur la machine Windows éloignée, de préférence avec un mot de passe protégeant l’accès client. Si vous démarrez votre serveur VNC, il doit écouter sur le port 5900. Pour cet exemple, ce sera sur winserver.cern.ch.

Malheureusement le protocole VNC n’est pas chiffré, le mot de passe et le contenu de l’écran seront donc visibles sur le réseau. Afin d’éviter des problèmes de sécurité, il est possible d’utiliser un tunnel SSH pour la session VNC.

Pour une description générale sur comment chiffrer une connexion TCP, consultez « Chiffrer les connexions avec SSH ».

Afin que cela marche, vous devez choisir un serveur SSH connecté à la machine Windows à travers un réseau de confiance. Le meilleur choix est la machine Windows elle-même, c.-à-d. vous faites fonctionner le serveur SSH sur cette machine. Pour cet exemple, le serveur SSH de confiance sera lxplus.cern.ch.

Depuis un visionneur Windows vers une cible Windows

  1. Afin d’établir une connexion depuis votre station de travail vers lxplus, la ligne de commande est la suivante : $ plink -ssh -L 5900:winserver.cern.ch:5900 lxplus.cern.ch Si « plink » n’est pas disponible, alors vous devez installer le logiciel PuTTY SSH depuis CERN NICE.

  2. Maintenant vous pouvez lancer vncviewer et le connecter à winserver.cern.ch en spécifiant que le serveur VNC est localhost:


    Vous devrez taper votre mot de passe VNC pour accéder au serveur.

Depuis un visionneur Linux vers une cible Windows

  1. Afin d’établir une connexion depuis votre station de travail vers lxplus, la ligne de commande est la suivante: $ ssh -L 5900:winserver.cern.ch:5900 lxplus.cern.ch

  2. Maintenant vous pouvez lancer xvncviewer et le connecter à winserver.cern.ch en spécifiant que le serveur VNC est localhost: $ xvncviewer localhost Vous devrez taper votre mot de passe VNC pour accéder au serveur.

Depuis un visionneur Linux (ou Mac) vers une cible MacOS X

La méthode décrite marche mieux lorsqu’un serveur SSH tourne sur la cible MAC. Si cela n’est pas le cas, ou si vous vous connectez depuis l’extérieur du CERN, remplacez mac.cern.ch (ci-dessous) par lxplus.cern.ch. N’oubliez pas d’autoriser l’accès à « VNC » dans le pare-feu de mac.cern.ch.

  1. Installez et configurez le « Apple Remote Desktop » sur la cible Mac mac.cern.ch: « display » « 0 » (cela correspond au port 5900).

  2. Démarrer un tunnel SSH depuis votre « Linux box » vers la cible: $ ssh -L 5901:mac.cern.ch:5900 mac.cern.ch Cela fait suivre tout le trafic arrivant au port 5901 de votre bureau Linux vers le port 5900 de mac.cern.ch (où le « Apple Remote Desktop » devrait « écouter »). De cette manière, le trafic "non encrypté" est visible seulement depuis l’intérieur des machines mac.cern.ch, et inaccessible pour les « sniffeurs » du réseau.

  3. Démarrer la « Remote Desktop Connection » sur votre « Linux box », en utilisant vnc:/localhost:1 comme adresse « Remote Desktop ». Vous devrez taper votre mot de passe VNC. « Display » « 1 » se traduit par : port 5901 de votre bureau Linux, c.-à-d. le port depuis lequel le trafic sera fait suivre.