VNC : Présentation, Installation et Sécurité - Partie 1

I/Présentation
1)Qu’est-ce que VNC ?
VNC ou Virtual Network Computing est une solution de bureau à distance qui permet à un utilisateur de contrôler à distance via un réseau un autre ordinateur en le reflétant sur son propre écran. Il est employé pour donner un accès aux environnements graphiques des systèmes d’exploitation en local ou par Internet. VNC est principalement utilisé pour l’administration à distance, le support technique et les environnements de travail collaboratifs. Cette solution est basée sur une architecture client-serveur, où le serveur VNC est installé sur l’ordinateur à contrôler, et le
client VNC est l’application utilisée pour afficher et interagir avec l’interface graphique de l’ordinateur distant.
2)Le protocole RFB
Le coeur de VNC repose sur le protocole RFB (Remote Framebuffer) qui assure la communication entre le serveur et le client.Voici comment il fonctionne simplement :
2-1)Transmission de l’affichage
Le serveur VNC capture l’écran de la machine distante (les pixels de l’affichage) et les transmet au client VNC sous forme de paquets de données. Ces paquets représentent l’image de l’écran (encodée et parfois compressée pour économiser de la bande passante).
2-2)Envoi des entrées de l’utilisateur
Lorsque l’utilisateur effectue une action sur le client VNC (clic de souris, mouvement du pointeur, frappe au clavier), ces évènements sont envoyés au serveur VNC. Le serveur interprète ces actions et les applique à l’ordinateur distant.
2-3)Mises à jour en temps réel
Si l’affichage sur la machine distante change(par exemple, une fenêtre est ouverte ou une nouvelle donnée est affichée), le serveur envoie des mises à jour d’image au client pour que l’affichage reste synchronisé.
2-4)Encodage et compression
Le protocole RFB utilise différents types d’encodage pour envoyer l’image de manière plus efficace, en réduisant la taille des paquets transmis. Cela permet d’optimiser la bande passante, surtout dans des réseaux avec une faible vitesse.
3)Les différentes implémentations de VNC
VNC a été conçu à l’origine comme une solution Open source pour permettre l’accès et le contrôle à distance d’un ordinateur via un réseau.Il s’affranchit des limitations liées aux systèmes d’exploitation et aux architectures. Chaque éditeur de logiciel ou développeur voulant développer son propre couple client/serveur de VNC peut donc le faire à partir des codes sources originaux mis sous Licence GPL. Avec le temps, plusieurs implémentations de VNC ont vu le jour, certaines restant fidèles à l’esprit Open source, tandis que d’autres ont évolué vers des solutions commerciales avec des fonctionnalités supplémentaires. Voici un aperçu des principales variantes de VNC disponibles, ainsi que leurs caractéristiques et plateformes :
3-1)RealVNC
RealVNC est l’une des implémentations les plus populaires et les plus complètes. Elle a été l’une des premières à intégrer des fonctionnalités de chiffrement et d’authentification avancée. Aujourd’hui, elle propose des solutions adaptées à des besoins professionnels avec une gestion centralisée et un contrôle d’accès plus sécurisé.
Plateformes : Windows, Linux, MacOS, iOS, Android
Caractéristiques principales : Chiffrement SSL, prise en charge de plusieurs connexions simultanées, gestion centralisée, sécurité renforcée.
Coût : il en existe une version gratuite mais limitée en termes de fonctionnalités. La version payante est conditionnée à un payement mensuel et offre des facilités en environnement professionnel.
3-2)TightVNC
TightVNC est une implémentation Open source et gratuite, optimisée pour les environnements à faible bande passante. Elle utilise des techniques de compression d’image améliorées pour réduire le volume de données échangées entre le serveur et le client, rendant la solution particulièrement adaptée aux connexions lentes. C’est d’ailleurs la solution que nous emploierons dans ce tutoriel car elle est non seulement riche en fonctionnalités mais elle convient largement aux besoins rencontrés en Entreprise.
Plateformes : Windows, Linux, MacOS
Caractéristiques principales : Compression améliorée des images, prise en charge des connexions à faible bande passante
Coût :Gratuit et Open source.
3-3)UltraVNC
UltraVNC est une implémentation spécifiquement conçue pour Windows, mais avec des clients disponibles pour Linux et MacOS. Elle offre des fonctionnalités avancées telles que le transfert de fichiers entre le client et le serveur, ainsi que le contrôle à distance via un proxy HTTP, ce qui la rend particulièrement pratique pour un usage professionnel.
Plateformes : Windows (le serveur VNC est principalement conçu pour Windows, mais il existe des clients pour Linux et MacOS).
Caractéristiques principales : Transfert de fichiers, contrôle à distance via proxy HTTP, gestion multi-écran…
Coût : Gratuit et Open source.
3-4)TigerVNC
TigerVNC est une version moderne et Open source de VNC, basée sur TightVNC. Elle améliore la sécurité, avec un meilleur support de l’authentification forte et un accès plus sécurisé à distance. TigerVNC se distingue également par son optimisation pour les environnements graphiques modernes.
Plateformes : Windows, Linux, MacOS
Caractéristiques principales :Sécurité renforcée, prise en charge de l’authentification par mot de passe et par certificat, optimisations pour les environnements X11 sous Linux.
Coût : Gratuit et Open source.
3-5)x11vnc
x11vnc est une implémentation spécialisée qui permet d’accéder à une session X11 existante. Contrairement aux autres implémentations de VNC qui créent une session virtuelle, x11vnc partage l’écran d’une session X11 en cours, permettant aux utilisateurs de voir exactement ce qu’un autre utilisateur local voit
Plateformes : Linux, MacOS, BSD
Caractéristiques principales :Accès à une session X11 existante, partage d’écran en temps réel, faible consommation de ressources.
Coût : Gratuit et Open source.