Créer un tunnel SSH avec session distante en Console VMWare

Tags

Il existe plusieurs page de how-to's pour se connecter a une application a distance. Mais j'ai envie de mettre pour mes propres archives.

Ce billet prend en considérations que...

  • Vous voulez vous connecter a un service précis (disons VMWare Server Console)
  • Sur une machine parmi un réseau de X ordinateurs
  • Le gateway (routeur) relie toutes les connections vers un host en Linux (proxysrv) qui sert a s'authentifier et accéder au reste du réseau.
  • Le serveur sur le réseau qui héberge des machines virtuelles avec VMWare Server (vmserver1).
  • Le port 902 (le port TCP que vous voulez utiliser) sur le firewall interne (de vmserver1) est ouvert. Et
  • Vous voulez vous connecter a un de ses VM.

Mise à jour

Ce billet a été écrit originalement en 2007. À l'époque il n'existait pas de VMware ESXi, ni de VMware Server 2. Les concepts sont toujours bons par contre.

Pour avoir accès a une application distante (ou une autre machine/VM), il faut se créer un tunnel vers le réseau interne. En gros il faut avoir accès au réseau (dans mon exemple le serveur proxysrv).

Vous devez avoir un accès au réseau interne que vous avez accès, vous pouvez le demander a votre Sysadmin de vous avoir un accès, mais ce n'est pas le point de ce billet.

Pour ouvrir une session SSH en tunnel, sous windows, il vous faut PuTTY. Si vous n'avez pas PuTTY faites une recherche google c'est une petite application libre de droits. En linux, c'est simple

ssh -l username -L 902:192.168.3.97:902 -L 80:192.168.3.88:80 serveurdistant.ca

NOTE: Remarquez que vous n'avez qu'a ajouter le nombre de -L nécessaires (-L LOCAL_PORT:ON_REMOTE_NETWORK_IP:REMOTE_IP_OPENED_PORT_NUMBER)

Aussi, pour accéder a la console VMWare, il faut une version de VMWare Server ou une console VMWare. Le site VMWare ne semble pas avoir de version stand-alone de la console ni pour Linux ni Windows. Alors, si vous n'avez pas encore VMWare sur votre machine, allez chercher votre exemplaire de VMWare Server ici. Si vous avez "VMWare" d'installé mais pas de moyen de vous connecter en local ou a distance, désinstallez la, et installez la version server prescrite.

Dans notre exemple, on va accéder a distance au VMWare Server Console (sur vmserver1) qui utilise le port 902.

Les ports TCP sous Linux

Pour pouvoir trouver d'autre ports a ouvrir le fichier texte /etc/services donne tout les ports et les alias qu'on peut utiliser comme alias. Ce fichier existe depuis longtemps dans tout ce qui est UNIX et Linux.

Directives en résumé

Une fois PuTTY et VMWare Server Console (ou console) fonctionnels (pour cet exemple) vous n'avez qu'a suivre les paramêtre ici:
  • Hostname: serveurdistant.ca
  • Port: 22 (ssh)
  • Donner un nom de session, mais ne sauvegardez pas tout de suite.
  • Aller a SSH->Tunnels (plus bas)
  • Entrer, Source port : 902 (votre port local), Destination: (ip de vmserver1:le port) , puis cliquer Add.
  • Aller dans Connection->Data; Auto-login username, vous pouvez entrer le login qu'il faut si vous l'avez
  • Retourner au haut du menu et sauvegarder la session
  • Puis... [Open].
Ensuite, connectez vous au service sur l'hôte localhost et le port que vous avez "tunnellé".
  • Connecter a VMWare Server
  • Ouvrir VMWare sur votre machine hors réseau... maintenant tunnellée
  • Connect to remote-host: localhost
  • Login/pw: votre login pour accéder aux vm.
Utiliser la VM comme si elle était locale.

Source