Institut numerique

Annexe C : Quelques protocoles de prise de contrôle à distance

C.1 Le protocole VNC

VNC (Virtual Network Computing) est un protocole de visualisation et de contrôle du bureau d’un ordinateur distant. Il permet aux clients VNC de transmettre les informations de saisie du clavier et des mouvements de la souris à l’ordinateur distant, possédant un logiciel serveur VNC à travers un réseau informatique. Il utilise le protocole RFB (Remote Frame Buffer) pour les communications. VNC est donc un protocole client-serveur qui dispose de plusieurs implémentations open-source dont le client noVNC et le serveur tightvnserver. La particularité du client noVNC par rapport aux autres clients tels que le client tightvncviewer, realVNC, réside dans le fait que noVNC est entièrement écrite en utilisant les technologies du Web tels que les websockets et le canva ; ce qui lui offre la possibilité d’être intégré dans une application Web. Le serveur tightvncserver est par ailleurs une optimisation du protocole VNC pour être employé dans les réseaux de faible bande passante. Son emploi dans les machines de type serveur nécéssite l’emploi d’un gestionnaire d’environnement graphique. Ainsi, dans notre système, nous l’avons utilisé avec les outils xorg et xfce4 qui permettent la gestion de l’environnement graphique des machines virtuelles et hôtes utilisées.

C.2 Le protocole SSH

Secure Shell (SSH) est à la fois un programme informatique et un protocole de communication sécurisé. La connexion à un hôte distant par SSH peut se faire via une authentification par mot de passe ou en employant l’échange de clés publiques par la cryptographie asymétrique. En employant la seconde méthode, il est possible d’automatiser les transfert de fichiers par la commande scp (secure copy) qui bénéficie de la même clé publique échangée. La clé publique est distribuée sur les systèmes auxquels on souhaite se connecter. La clé privée, qu’on prendra le soin de protéger par un mot de passe, reste uniquement sur le poste à partir duquel on se connecte.

Pour l’emploi de ce protocole dans notre système, nous nous sommes basés sur le compte d’un utilisateur user, créé sur tous les hôtes, pour travailler. Nous avons généré la clé publique de cet utilisateur sur chacun des differents hôtes du système et les avons distribuées sur les autres. De cette manière, le lancement de la commande scpne requiera plus de mot de passe, ce qui pourrait bloquer le transfert des fichiers.

La génération de la paire des clés publique et privée RSA sur un hôte (node0) pour le compte utilisateur user se fera comme suit :

Après cette commande, les deux clés seront générées. Il convient ensuite de distribuer la clé publique à tous les nœuds distants souhaitant se connecter sans authentification par mot de passe. L’envoi de la clé publique générée pour le compte user de la machine node0 vers un compte utilisateur user sur une autre machine node1 se fera pas la commande :

Il est dès lors possible de se connecter à cet hôte sur le compte user, en employant la commande ssh user@node1, ou d’envoyer un fichier à cet utilisateur par la commande scp nom_fichier user@node1:

Page suivante : Annexe D : Utilisation du protocole XML-RPC avec le paquetage org.apache.xmlrpc.

Retour au menu : CONCEPTION D’UNE SOLUTION DE CLOUD COMPUTING PRIVE BASEE SUR UN ALGORITHME DE SUPERVISION DISTRIBUE : APPLICATION AUX SERVICES IAAS