VNC inversé (prise de contrôle à distance)
Par harobed, dimanche 14 octobre 2007 à 02:03 :: Générale :: #185 :: rss
Beaucoup de monde a déjà utilisé le logiciel VNC ou une de ses variantes comme TightVNC, UltraVNC... Mais pour ceux qui ne connaissent pas encore ces logiciels, voici la définition de VNC dans l'article Wikipedia :
Virtual Network Computing ou VNC est un logiciel ouvert pour se connecter à un ordinateur distant. Il permet de transmettre les saisies au clavier ainsi que les clics de souris d'un ordinateur à l'autre, à travers un réseau informatique.
Scénario numéro 1 : utilisation classique de VNC sur un réseau local
En général, l'utilisation de VNC se passe comme ceci :
Kate souhaite être secouru par Jack, pour l'aider, Jack souhaite contrôler à distance l'ordinateur de Kate.
Kate et Jack sont sur le même réseau local, donc pas de problème routeur pour le moment.
- Kate installe VNC sur son ordinateur et Jack fait de même;
- Kate exécute le composant serveur de VNC;
- Kate cherche l'adresse IP de sa machine et donne cette information à Jack;
- Une fois l'information obtenu, Jack exécute le composant client de VNC et entre l'adresse IP de Kate;
- Jack peut maintenant aider Kate;
Scénario numéro 2 : utilisation classique de VNC à travers Internet
Scénario identique au premier mais cette fois un routeur est présent entre la machine de Kate et Internet. Idem pour Jack. Cet élément complique l'affaire.
Voici les étapes nécessaires pour "secourir Kate" :
- Kate installe VNC sur son ordinateur et Jack fait de même;
- Kate doit trouver les informations suivantes :
- Kate doit configurer son routeur afin de lui dire de transmettre les paquets Internet qu'il reçoit sur le port utilisé par le serveur VNC vers l'adresse IP de sa machine, sur le même port;
- Kate exécute le composant serveur de VNC;
- Kate cherche l'adresse IP de sa connection Internet et donne cette information à Jack;
- Une fois l'information obtenu, Jack exécute le composant client de VNC et entre l'adresse IP de Kate;
- Jack peut maintenant aider Kate;
Les inconvénients de ces deux scénarios
Le problème majeur de ces deux scénarios est que le plus gros du travail pour initier le contrôle à distance est effectué par Kate ! Or, cela n'est pas judicieux car bien souvent, si une personne souhaite être assistée, c'est qu'elle est moins compétente en informatique que la personne qui va l'assister. Par exemple, si Kate ne sait pas ce qu'est une adresse IP, un routeur, une boite de dialogue... elle n'aura aucune chance d'arriver à configurer correctement son routeur...
La solution : inverser les rôles, c'est Jack qui va faire le plus gros du travail.
Scénario numéro 3 : utilisation "inversé" de VNC à travers Internet
L'objectif est toujours le même, Jack doit contrôler l'ordinateur de Kate pour l'aider. Cette fois, c'est le composant serveur de VNC qui va initier la connection réseau. C'est à dire qu'il va être exécuté en mode "connect". Le composant client sera exécuté en mode "listen" (écoute). Quel avantage ? c'est Jack qui devra configurer son routeur et donner les informations à Kate.
Voici le scénario :
- Kate installe VNC sur son ordinateur et Jack fait de même;
- Jack doit trouver les informations suivantes :
- Jack doit configurer son routeur afin de lui dire de transmettre les paquets Internet qu'il reçoit sur le port utilisé par le client VNC vers l'adresse IP de sa machine, sur le même port;
- Jack cherche l'adresse IP de sa connection Internet et donne cette information à Kate;
- Une fois l'information obtenu, Kate exécute le composant serveur de VNC en mode "connect" et entre l'adresse IP de Jack;
- Jack peut maintenant aider Kate;
Dans ce scénario, il est nettement visible que c'est Jack qui fait le gros du travail.
Comment utiliser VNC "inversé" ?
Sous MS Windows
Sous le système d'exploitation MS Windows, j'ai utilisé le logiciel VNC nommé UltraVNC disponible sur le site suivant : http://www.uvnc.com/. Vous pouvez sans doute utiliser d'autres logiciels mais je n'ai pas poussé plus loin ma recherche.
Après l'installation du logiciel sur la machine qui va prendre le contrôle à distance (Jack), vous devez exécuter VNC en mode "écoute" via l'entrée du menu démarrer nommée "Run UltraVNC Viewer (Listen Mode)".
Ensuite, il faut installer UltraVNC sur la machine qui va être contrôlé (Kate). Dans la version de base du logiciel, je n'ai pas trouvé de GUI permettant d'exécuter VNC en mode "connect". Par contre, je peux lancer l'action via la commande suivante :
"c:\Program Files\UltraVNC\winvnc.exe" -connect 192.168.0.2::5500
Pour exécuter cette commande, vous devez utiliser "Démarrer" => "Exécuter..." dans le menu de Windows.
L'adresse ip est l'adresse de la machine de Jack. Le port 5500 est le port par défaut utilisé par VNC.
Attention : un firewall présent sur la machine qui va prendre le contrôle (VNC en mode écoute) peut bloquer la connection, dans ce cas, vous devez autoriser votre firewall à laisser entrer les paquets sur le port VNC.
Sous GNU/Linux
L'exemple a été réalisé sur la distribution Ubuntu Feisty mais vous pourrez l'adapter à d'autres distributions sans grande difficulté.
Sur la machine qui va prendre le contrôle à distance (Jack) :
Installation du package xvncviewer ou xvnc4viewer (sous Ubuntu Hardy):
$ sudo apt-get install xvncviewer ...
ou
$ sudo apt-get install xvnc4viewer ...
Lancement de vncviewer en mode "écoute" (remplacez vncviewer par vnc4viewer sous Ubuntu Hardy):
$ vncviewer -listen VNC Viewer Free Edition 4.1.1 for X - built Oct 5 2007 00:57:45 Copyright (C) 2002-2005 RealVNC Ltd. See http://www.realvnc.com for information on VNC. Sat Oct 13 20:06:24 2007 main: Listening on port 5500
Note : si xvncviewer quitte directement, essayez d'utiliser xrealvncviewer.
Sur la machine qui va être contrôlé (Kate) :
Installation de x11vnc :
$ sudo apt-get install x11vnc ...
Lancement de x11vnc en mode "connect" :
$ x11vnc -connect 192.168.0.2:5500 ...
L'adresse ip est l'adresse de la machine de Jack. Le port 5500 est le port par défaut utilisé par VNC.
Si vous souhaitez aller plus loin, vous pouvez simplifier encore le travail de Kate en lui envoyant un simple fichier exécutable. Pour cela, je vous invite à consulter la documentation suivante UltraVNC SC (Simple Clic)
Si vous constatez des erreurs, n'hésitez surtout pas à les signaler via un commentaire. J'espère que ces informations pourront vous être utiles.
Tag(s) : AdminSys








Commentaires
1. Le lundi 22 octobre 2007 à 02:10, par jocker
2. Le jeudi 20 mars 2008 à 13:37, par reremoon
3. Le vendredi 21 mars 2008 à 18:36, par Stéphane KLEIN
4. Le jeudi 17 avril 2008 à 09:52, par best
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.