Balader son bureau en campagne

, par MiKaël Navarro

Cet article présente des trucs et astuces afin de configurer ses connections SSH, que se soit pour VNC, ou via un tunnel HTTP.

Forwarding X11

Cette n’est pas réellement une prise de contrôle à distance, mais permet d’utiliser les ressources distantes tout en redirigeant le display localement :

 Tout d’abord il faut mettre l’option SSH x11forwarding sur "yes" ;
 Puis se connecter sur la machine remote : ssh -X user@monserver ;
 On peut dès lors tester avec un programme comme xclock.

X11vnc

 Installer x11vnc sur votre machine serveur. Cela crée un serveur X bidon sur lequel est lancé votre session ;
 Puis sur la machine distante, lancer xvncviewer monserver:1 et vous serez comme chez vous.

P.S. il existe des clients pour Windows, svgalib, ...

Par défaut, VNC n’est pas un protocole sécurisé, toutefois, VNC peut être mis dans un tunnel sur une connexion SSH :

 Pour cela sur la machine cliente ssh -L 5902:localhost:5901 monserver ;
 Dès lors toutes les références au display :2 de la machine cliente sera redirigé au display :1 de la machine serveur ;
 Et lancer xvncviewer :2 séparément.

En une seule ligne de comande :)
ssh -t -L 5902:localhost:5901 monserver 'x11vnc -localhost -display :0'

VNC / Ubuntu

Machine à contrôler :

 Installez le paquet openssh-server

 Configurez le firewall afin d’accepter les connexions SSH entrantes (port 22), et si vous utilisez un routeur, il faudra également que les connexions soient acceptées et routées vers la bonne machine

 Dans le fichier /etc/ssh/sshd_config, créez ou mettez la ligne GatewayPorts sur "yes"

 Dès lors que la liaison VNC va être encapsulée dans le tunnel SSH, il n’est pas nécessaire de laisser le port 5900 ouvert

 Autorisez le bureau à distance : Système->Préférences->Bureau à distance

 Rq. si l’adresse IP attribuée par votre FAI n’est pas fixe, vous devriez vous intéresser aux services offerts par DynDNS

Machine qui contrôle :

 Dans un terminal (à laisser ouvert le temps de la session VNC) : ssh -L 5901:localhost:5900 -XC user@machine_a_contrôler

 Puis vncviewer localhost:1

Pour ceux qui veulent utiliser VNC en connexion inversée pour contrôler un ordinateur à distance à travers un NAT, X11vnc est à choisir plutôt que VNC.
Ce qui permet, en plus, la connection sans besoin de configurer le routeur de la personne assistée, car c’est elle qui initie le tunnel par lequel le viewer communiquera.

Sur le PC de l’assistant :

 Installer et configurer openssh-server, créer un utilisateur dédié à cet usage, noter son login et son mot de passe

 Configurer la redirection du port 22 du routeur vers le PC de l’assistant

 Noter son adresse IP externe (ou mettre en place un nom de domaine dynamique genre <assistant.dyndns.org> )

Sur le PC de l’assisté :

 Activer le Bureau à distance Système->Préférences->Bureau à distance

 Lancer un terminal et taper :
ssh -N -R 5901:*:5900 login_assistant@ip_assistant

 Et taper le mot de passe fourni par l’assistant.

Enfin sur le PC de l’assistant :

 Lancer vncviewer

 Se connecter à localhost:1

 C’est parti !

HTTP-Tunnel

HTTP-Tunnel sert à encapsuler des paquets d’un autre protocole (FTP, SSH, etc) dans des paquets HTTP, pour passer proxys et pare-feux (par exemple au boulot) :

 Le serveur "hts" écoute sur le port TCP 8821 de l’adresse
IP du serveur, et redirige tout ce qui arrive vers le port 22 de
la même machine (localhost) :
hts -F localhost:22 8821

 On configure la règle NAT adéquate sur la box (routeur).

 Sur le client on transfère le port de connexion SSH (2222) vers le
serveur HTTP-Tunnel (monserver:8821) et il faut paramétrer
le proxy :
htc -F 2222 -P proxy_addr:8080 monserver:8821

 Ensuite il suffit de lancer la commande suivante sur le client pour se
connecter au serveur :
ssh user@localhost:2222

P.-S.

Vous en rêviez, Gnome l’a fait !

En regardant les notes de version de la toute prochaine Ubuntu 10.04 qui inclura GNOME 2.30, je suis tombé là dessus :

http://library.gnome.org/misc/release-notes/2.30/#rnusers.vinagre

Vinagre, un visionneur de bureaux distants pour le bureau GNOME, a ajouté la prise en charge des tunnels SSH afin d’accéder à une machine distante de manière plus sécurisée. Il est nécessaire de disposer d’un compte SSH sur le client distant. Dès cet instant, vous pouvez saisir des mots de passe et autres informations en vous sachant en sécurité.

La connexion à des clients avec une faible bande passante a été rendue plus simple par l’ajout du choix d’une profondeur de couleurs plus faible pour économiser la bande passante et par l’activation de la compression JPEG. Ces options sont disponibles dans la boîte de dialogue de connexion de Vinagre.

Un nouveau mode d’écoute a été ajouté permettant au bureau distant que vous souhaitez afficher et contrôler de se connecter lui-même. C’est utile lorsque la connexion distante est derrière un pare-feu ou un routeur et n’est pas accessible par le processus de connexion normal. En activant le mode d’écoute dans Vinagre et en donnant votre adresse IP à l’utilisateur auquel vous essayez de vous connecter, le client distant peut se connecter à vous.

Thks JC.