Contourner un proxy

Dans une entreprise il peut arriver que l’on soit bloqué par des administrateurs systèmes tatillons , qui vont bloquer tous les ports, sauf ceux du web, et faire passer le trafic dans un proxy HTTP. Ce proxy va alors avoir 2 rôles:

  • Bloquer les ports autres que ceux réservés aux échanges web (Les ports généralement ouvert sont HTTP (port 80) et HTTPS (port 443))
  • Filtrer l’accès à certains sites

Il suffit alors de monter un tunnel SSH vers un serveur à la maison et de surfer à l’intérieur du tunnel pour sortir réellement sur le net par la ligne de la maison.

Coté « maison »

Réglage coté serveur

Coté serveur il faut juste un serveur SSH fonctionnel. L’objectif est de contacter ce serveur via un port autorisé par le proxy. Pour l’exemple le port 443.

Configuration du routeur

Il existe plusieurs façons de faire:

  • Modifier le port d’écoute du serveur SSH (par défaut 22)

  • Modifier la table de routage du serveur (iptables prerouting)

  • Effectuer un routage sur le routeur d’entré (la box internet)

C’est cette dernière solution que je vais présenter. L’idée est de faire convertir le port d’entré HTTPS 443 en port SSH 22par la Box Internet

box_redirect

Sur l’interface de configuration de la box (free dans l’exemple) on route les trames à destination du port 443 sur le port 22 du serveur ssh. Le protocole est TCP.

 

 

Coté « boulot »

Depuis un PC Linux.

Sur un machine Linux on va utiliser le programme CorkScrew.

L’outil corkscrew permet de créer des tunnels TCP au travers d’un proxy HTTP

Installation:

La configuration se fait dans le fichier ~/.ssh/config:

Ici on prévient le client ssh qu’il devra appeler Corkscrew si l’adresse ip public de votre Box est demandée sur le port 443.

La dernière ligne permet de spécifier l’adresse du proxy et le port d’écoute de celui-ci. En général ce port est 8080.

Il faut laisser ensuite %h %p.

Maintenant que le programme est prêt, on peut lancer le tunnel SSH. Le client ssh possède une option -D qui permet de créer un socket qui écoute sur un port local de la machine cliente. Les paquets envoyés sur ce port sont routés ensuite dans le tunnel ssh vers le serveur distant.

Lancement d’un tunnel sur le port 1111:

Réglage du navigateur

Le tunnel est fonctionnel. La dernière étape consiste à régler le navigateur afin qu’il utilise comme proxy le socket créé précédemment.

Exemple sur Firefox:

Préférences → Avancé → Réseau → Paramètres

 

Voila, vous surfez à présent au travers de votre tunnel. Pour le vérifier, on peut se rendre sur un site qui affiche l’adresse IP en cours d’utilisation comme celui-ci. Vous devez voir afficher l’adresse ip public de votre Box internet.

2 thoughts on “Contourner un proxy”

  1. Johnie dit :

    cool! I’ll try this out. Any ideas on a good ssh client for windows? I might give putty a try…

    1. Sispheor dit :

      Putty works well on Windows.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *