www.boichat.ch - Nicolas Boichat

Remote Control over HTTP (RCoHTTP)

C'est un programme permettant de contrôler son ordinateur à distance à travers un firewall. Un article a été publié sur le sujet dans le magazine français Programmez n°44, pp. 76-78.

Configuration requise

Deux ordinateurs (un client, et un serveur à contrôler) tournant sous n'importe quel système (Linux, Windows, Mac (si si)) avec une machine virtuelle Java 1.1 ou supérieure.

Description

Permet d'acceder à serveur de contrôle à distance (comme VNC) en passant par un proxy HTTP (par exemple depuis une entreprise ou une école). En réalité il agit comme deux proxy, un tournant côté client, et l'autre côté pour faire passer toutes les données non-HTTP par un GET et un POST parfaitement acceptable par le proxy HTTP.

Installation du serveur

Rien de plus simple, il suffit de copier le fichier rcohttp.jar dans un dossier quelconque. Ensuite pour le lancer, taper :

java -cp rcohttp.jar server.RCoHTTPServer

Et le tour est joué ! Pour l'arrêter, un simple Ctrl+C suffira.

A noter qu'il est également possible de l'installer comme service NT avec un outil comme JavaService de Alexandria Software à l'aide de la commande suivante :

JavaService.exe -install RCoHTTP C:\jdk1.3.1\jre\bin\hotspot\jvm.dll -Djava.class.path=C:\Outils\RCoHTTP\rcohttp.jar -start server.RCoHServer -out C:\Outils\RCoHTTP\out.log -err C:\Outils\RCoHTTP\err.log

Il faut évidement remplacer C:\jdk1.3.1\jre\bin\hotspot\jvm.dll par le chemin d'accès vers la machine virtuelle Java de Sun. En cas de doute, chercher jvm.dll dans tout le système : n'importe lequel devrait faire l'affaire. C:\Outils\RCoHTTP\rcohttp.jar doit également être remplacé par l'endroit où le jar du serveur a été placé. Les deux fichiers out.log et err.log contiendront les sorties du serveur (System.out et System.err) lorsque qu'il est lancé en tant que service. Et pour lancer le service, taper :

net start RCoHTTP

Ou le lancer depuis Services dans les Administrative Tools de Windows.
Pour plus de renseignements, consulter la documentation de JavaService.

Démarrage du client

Tout d’abord, il faut lancer le client. Pour ceci, tapez la commande suivante si la machine virtuelle de Sun (JRE) est installée :

java –cp rcohttp.jar client.RCoHClient localPort proxyHost proxyPort remoteHost remotePort proxyuser:proxypass

Ou celle-ci sur n’importe quel ordinateur tournant sous Windows (pour autant que la machine virtuelle Java de Microsoft soit installée, ce qui est très souvent le cas) :

jview /cp rcohttp.jar client.RCoHClient localPort proxyHost proxyPort remoteHost remotePort proxyuser:proxypass

Les paramètres sont les suivants :

  • localPort : Port local sur lequel la simulation de serveur VNC doit tourner (par exemple 1234), c’est le port qu’il faudra entrer dans vncviewer.
  • proxyHost : Adresse IP (ou nom) du proxy (par exemple proxy.entreprise.fr), en cas de doute, aller le chercher dans les options de votre navigateur.
  • proxyPort : Port sur lequel tourne le proxy (souvent 8080 ou 80), même remarque que pour proxyHost.
  • remoteHost : Adresse IP ou nom de la machine à contrôler, et sur laquelle les serveurs RCoHTTP et VNC tournent.
  • remotePort : Port sur lequel tourne le serveur VNC sur la machine à contrôler (par défaut 5900).
  • proxyuser:proxypass : Paramètre optionel, permet d'entrer un nom d'utilisateur et un mot de passe pour l'authentification avec le serveur. Exemple : bob:boubou.

Une fois le programme lancé, celui-ci va attendre une connexion sur le port localPort. Ensuite, lancer vncviewer (le client VNC, version Windows ou Java), et taper dans le champ « VNC server » 127.0.0.1:localPort, modifier éventuellement les options, puis cliquer sur OK. A ce moment-là, le client RCoHTTP va se connecter au serveur au travers du proxy.

Téléchargement

Cliquer ici pour télécharger les sources et le jar.

"To do"

  • Authentification NTLM (Si quelqu'un est motivé je suis très intéressé, parce que je n'ai pas d'environnement de test) pour proxys microsoft (librairie à utiliser).

Historique

Date Description
14/08/2002 Ajout de l'authentification Basic (Base64) pour le proxy (Merci Stephan pour l'idée). Et mise à jour (plutôt création en fait.....) de la page.
17/06/2002 Première version officielle (version de l'article dans Programmez)

License

Sous GPL, donc amusez-vous avec le code ! Merci de faire des feed-backs...

Auteur : Nicolas Boichat <nicolas@boichat.ch>
(cliquer ici pour savoir comment me contacter de manière sécurisée avec PGP
)

Dernière modification : 27.10.2002