SSH Tunnel Manager est un utilitaire permettant de gérer des tunnels SSH (créés en général avec les arguments -L et -R de la commande "ssh"). Cet outil vous permet de définir autant de tunnels que vous le désirez, chacun contenant toutes les redirections de port dont vous avez besoin. Une fois configuré, vous avez juste à lancer, ou arrêter vos tunnels.
Le principe des tunnels SSH Tunnels est de permettre d'atteindre des machines auxquelles vous n'avez pas normalement accès, par exemple, des machines sur un réseau local à votre entreprise ou derrière un firewall. Cependant, attention à la méprise, ce n'est pas un outil de pirate ! Vous verrez qu'il vous faut un accès à une machine connectée au réseau que vous voulez atteindre (en général un firewall). SSH peut créer deux types de tunnels, appelé "redirections locales" et "redirections distantes".
Elles vous permettent de joindre des hôtes derriere un firewall, sur un réseau privé en encapsulant des informations dans une connexion SSH vers un serveur (ce dernier doit avoir la possibilité de joindre l'hôte final).

Dans cet exemple, imaginez un serveur web tournant sous Mac OS (Oui, c'est pas terrible...).
Vous ne pouvez pas joindre cette machine de l'exterieur car elle n'a pas d'IP publique
(Nous n'entrerons pas dans les considérations de NAT ou PAT). Vous allez donc ouvrir une
connexion SSH vers le firewall qui prendra en charge les requêtes qui vous intéressent, comme
rediriger toutes les requêtes vers un port local (par exemple 8080), vers le port
80 du serveur Mac OS 9. La commande SSH sera construite ainsi :
ssh -N -L 8080:os9.server.lan:80 user@firewall.entreprise.com
En bon français : Redirige le port 8080 local vers firewall.entreprise.com, et indique lui d'envoyer la connexion vers os9.serveur.lan, sur le port 80
| -N | permet de gérer uniquement le tunnel, nous n'avons pas beoin d'un shell |
| -L | précise le type de tunnel (redirection locale) |
| 8080 | est le port local à utiliser |
| os9.serveur.lan | est l'hôte final, joignable par le firewall |
| 80 | est le port sur l'hote final à atteindre |
| user | est l'utilisateur sous lequel ouvrir la connexion |
| firewall.entreprise.com | est le serveur par lequel nous passons. |
Maintenant, pour se connecter sur le serveur web de la machine Mac OS 9, nous tapons ceci dans notre navigateur : http://127.0.0.1:8080/
Ce n'est pas de la magie, c'est juste SSH
Le principe est le même, l'approche est différente, cette fois nous allons rediriger les connexions faites sur un hote distant vers une machine de notre propre réseau (ou notre propre machine).

Imaginons maintenant que nous avons un serveur de test sur notre réseau local (et comme on ne change epas une équipe qui gagne, reprenons notre serveur sous MacOS 9 - vous vous souvenez de NetPrensz ?-). Vous voudriez que votre client accède à ce serveur pour lui montrer le super site qui le fera devenir riche (vous aussi par la meme occasion). Tout ce que vous devez faire est ouvrir un tunnel d'une machine qui peut joindre les deux (le serveur public vers lequel votre client va se connecter, et le serveur de développement hébergeant le site).
La ligne de commande sera la suivante : ssh -N -R 8080:os9.serveur.lan:80 user@serveur.entreprise.com
En bon français : Indique à serveur.entreprise.com de rediriger le port 8080 vers moi, et renvoie le à os9.serveur.lan, sur le port 80.
| -N | permet de gérer uniquement le tunnel, nous n'avons pas beoin d'un shell |
| -R | précise le type de tunnel (redirection distante) |
| 8080 | est le port distant à utiliser |
| os9.server.lan | est la machine de développement sur votre réseau local |
| 80 | est le port à utiliser sur cette machine. |
| user | est l'utilisateur sous lequel se connecter. |
| serveur.entreprise.com | est le serveur public sur lequel votre client se connectera. |
Maintenant, votre client doit se connecter sur :
http://serveur.entreprise.com:8080/
Il sera redirigé vers le serveur MacOS 9 sur le port 80
Il se contente de lancer la commande SSH avec les bons arguments, comme si vous le faisiez à la main. Bien sûr, vos tunnels et réglages sont enregistrés dans vos préférences.
Lancer l'application et ouvrez les préférences (Pomme-,).
C'est ici que vous gérer les tunnels. Choisissez "Ajouter..." dans le menu en haut,
et renseignez les informations relatives à l'adresse et l'authentification.
Si nous applicons notre exemple :


Oui, vous ne pouvez pas encore ouvrir de tunnel utilisant un port local inférieur à 1024 car l'authentification en root n'est pas implémentée (Pour information, sur la pluspart des Unix, l'utilisateur "root" est le seul habilité à utiliser ces ports).
Envoyez vos commentaires ou demandes d'informations à SSHTunnelManager@tynsoe.org (Merci !)