Tunnel SSH avec l'option -L

Ce billet présente l’utilisation de l’option -L de la commande ssh qui permet par exemple d’encapsuler dans une session chiffrée (SSH), un protocole qui passe habituellement en clair.

Pour illustrer cette option, prenons le cas ou l’on veut récupérer ses mails sur un serveur POP3 (port 110) mais sans que le mot de passe pop (ni les messages) ne passent en clair.

-L Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.

  • Le petit dessin illustrant la communication de l’exemple ci-dessous:

Yannick17Fev2005ssh-L-dessin

  • On lançe sur la machine “user” la commande SSH:
 ssh -L port-local:HOSTNAME:port-distant machine-distante
yannick@user:~$ ssh -L 1111:127.0.0.1:110 server  

…on entre le mot de passe ssh de “server”…on est connecté à “server”…

  • Il suffit ensuite de configurer notre client POP3 (Thunderbird par exemple) pour aller “poper” sur le serveur 127.0.0.1 sur le port 1111

Yannick17Fev2005ssh-L-Thunderbird

Toute la communication POP qui passe habituellement en clair est au final chiffrée.

  • La même chose en graphique avec putty:

Yannick17Fev2005ssh-L-putty