Dans certaine entreprise, il n'est pas possible d'utiliser certaine application a cause des ports fermé. En général, le port 80, 22 et 21 sont ouverts, ce sont les ports pour accéder au site web (protocole HTTP), le port FTP ainsi que le port SSH pour l'administration de serveur à distance. Et surement d'autre port comme le POP et SMTP.

A quoi bon utiliser les autres ports après tout ? Ceux-la nous suffisent ! Et bien, quand on veut accéder à des services particulier, comme Webmin, il n'est pas possible. Webmin permet de contrôler et administrer sont serveur via une interface graphique. Il utilise le port 10000 par défaut.

Comment faire ?

Je vais exposer la méthode concernant Linux et Mac OS, elle se fait en une ligne de commande très simple. On reprend l'exemple de l'application webmin.

ssh -N -L 50500:192.168.1.10:10000 user@host-relay.com

-N permet de gérer uniquement le tunnel, nous n'avons pas besoin d'un shell
-L précise le type de tunnel (redirection locale)
50500 est le port local à utiliser
192.168.1.10 est l'hôte final, joignable par le firewall
10000 est le port sur l'hôte final à atteindre
user est l'utilisateur sous lequel ouvrir la connexion
host-relay.com est le serveur par lequel nous passons.

Si on traduit cette commande en une phrase intelligible, ça donne : Indique à host-relay.com de rediriger le port 50500 vers moi, et renvoie le à 192.168.1.10, sur le port 10000.

Ainsi, quand on tape localhost:50500 dans un navigateur, la requête est envoyé a travers le tunnel ssh vers host-relay.com. host-relay.com va faire la requête vers 192.168.1.10:10000.

Dans cet exemple, la machine qui fait la requête et celle qui reçoit sont sur un même réseau privé.
Et une illustration :

local.png

Le mieux est de faire un exemple pratique, mais ca fonctionne, et c'est super !

Signature

Source :
http://projects.tynsoe.org/fr/stm/doc.php
http://www.phys.univ-tours.fr/informatique/tunnel_ssh.php