Tunnel http + ssh
Sur cette page nous allons voir comment créer un tunnel, permettant de faire passer tout et n'importe quoi à travers une simple connexion http.
Ingrédients
Pour se faire il vous faut :
- 2 ordinateurs : un dans le réseau filtré et un hors de ce réseau mais accessible
- un serveur SSH fonctionnel sur la machine hors du réseau
- penser à préparer la recette avant de vous retrouver dans le réseau filtré
Configuration de la machine complice
Nous allons ici nous servir du couple hts et htc, ils sont tout deux dans le paquet httptunnel, il va donc falloir installer ce paquet sur chacune des deux machines.
Sur la machine complice lancer la commande :
hts --forward-port localhost:22 80
Ceci aura pour effet de créer un bout du tunnel sur le port 80 de la machine « complice » et la connexion provenant de ce port seras transférer sur le port local 22 (ssh).
Cette commande retourne immédiatement et ne dis rien, elle crée un deamon qui enregistre des log (bien utie) dans /var/log/syslog.
Configuration de votre machine
Sur la machine locale on commence par créer la seconde partie du tunnel http :
htc --forward-port 1234 complice:80
Cette commande va créer une sorte de proxy sur le port local 1234 et rediriger ces connexion sur l'autre bout du tunnel (donc le bout de la machine complice). Bien sur remplacez « complice » par le nom de domaine ou l'adresse IP de votre machine exterieure.
Ce qu'il faut bien comprendre c'est que ce n'est pas un simple redirection, il y a une encapsulation de la connexion dans un flux http. L'avantage c'est de pouvoir traverser un proxy http de manière très simple, il suffit d'utiliser la commande :
htc --proxy votreproxy:8080 --forward-port 1234 complice:80
Dernière étape créer la connexion ssh à travers le tunnel en activant le proxy socks :
ssh -D 8080 login@localhost -p 1234
Non, il ne faut pas remplacer « localhost », c'est bien vers votre machine en local que doit pointer votre client ssh, mais il seras rediriger comme il faut. une fois que vous êtes connectés ainsi, vous avez un proxy SOCKS accessible via localhost:8080.