ProxyTunnel est un programme permettant de tunneller une connection par un proxy HTTP.

De facon standalone, il s'utilise en créant un service avec la commande suivante :

./proxytunnel -a 8888 -p proxy:8080 -d hamster.domain.org:443

Puis on se connect en ssh a hamster.domain.org par la commande :

ssh -p 8888 -o NoHostAuthenticationForLocalhost=yes login_distant@localhost

mais lancer proxytunnel avant le ssh est une épine dans le pied ... dont nous allons nous débarrasser grace aux fonctionnalités d'openssh

Editez le fichier ~/.ssh/config comme suit :

Host hamster-by-proxytunnel
Hostname hamster.domain.org
ProxyCommand proxytunnel -p proxy:8080 -d %h:%p

Avec cette config, quand vous vous connecterez a hamster.domain.org, openssh lancera automatiquement proxytunnel et s'y connectera laissant proxytunnel gérer l'acheminement des paquets à sa destination réele.

Il est conseillé de faire tourner ssh sur le port 443 et de s'y connecter avec ssh -p 443 pour éviter les proxy trop curieux.

Et comme promis, le bonus !

Si nous avons fait tourner ssh sur le port 443, c'est parce que notre proxy nous interdit les ports non standard... et pire, parfois, il filtre (exemple avec squidGuard).

Alors comment utiliser notre tunnel http qui nous donne un accès ssh pour finir de faire du proxy web une passoire ? En faisant de notre ssh un proxy socks !

ssh hamster.domain.org -D 1080

Puis dans notre navigateur, nous configurons localhost:1080 comme proxy socks, et voila, bienvenu dans un monde ou les portes sont ouvertes !

Bien sur, ouvertes dans la limite de ce que laisse passer votre connexion ssh distante, et avec comme limite les download et upload de celle-ci.

Ce n'est pas non plus la panacée, mais ca rend bien service quand on en a besoin !