Ce billet présente l’utilisation de l’option -D de la commande ssh.
Pour illustrer cette option, prenons le cas ou vous êtes dans un réseau “non sûr” et que vous voulez surfez sans que le réseau dans lequel vous êtes puisse trop vous surveiller…

Prérequis: vous avez une machine chez vous en adsl sur laquelle écoute un serveur SSH (de préférence sur le port 80 ou 443 dans notre exemple) mais sur laquelle il n’y a pas besoin d’avoir un Squid ou autre…

Il suffit alors de monter un tunnel SSH vers le serveur à la maison (même à travers un proxy Http) et de surfer à l’intérieur du tunnel pour sortir réellement sur le net par la ligne de la maison…

-D port
Specifies a local “dynamic” application-level port forwarding. This works by allocating a socket to listen to port on the local side, and whenever a connection is made to this port, the connection is forwarded over the secure channel, and the application protocol is then used to determine where to connect to from the remote machine. Currently the SOCKS4 and SOCKS5 protocols are supported,[…]

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

ssh-D-yannickAvril2006

  • On lançe sur la machine client la commande SSH:
ssh -D 1111 -p 443 login@srvMaison
  • Il suffit ensuite de configurer notre client Http (Firefox) pour utiliser un proxy Socks sur le serveur 127.0.0.1 sur le port 1111

ssh-D-firefoxAvril2007

  • La même chose en graphique avec putty:

ssh-D-puttyAvril2006

  • Et les autres applis ne pouvant pas être configurées pour utiliser un proxy SOCKS ?

ahhhh… eh bien c’est possible aussi… et c’est l’objet du billet suivant

PS: Attention à la confidentialité des requètes DNS qui ne passent pas dans le tunnel…