« Article précédent : Article suivant : »

Comment éviter ce fichu proxy ?

Par 28 août, 2007

Si vous avez internet au boulot, vous avez certainement déjà dû pester après le proxy de votre entreprise, qui vous empêche, en vrac :

  • d’accéder à votre machine de geek à distance
  • d’utiliser certains services indispensables comme le POP3, le SIP, le P2P (heuu, là il vaut mieux éviter par contre…)
  • parfois de surfer sur certains sites pourtant indispensables à votre travail quotidien, comme ce blog.

Il existe pourtant une solution (relativement) simple pour éviter ces désagréments, j’ai nommé le Tunnel SSH.
SSH permet en effet de créer des tunnels entre un port de la machine locale et un port d’une machine distante, en emprutant une connection SSH. Les proxys laissent en général passer directement les connections adressées au port 443, utilisé normalement pour le protocole https. On va donc configurer un serveur ssh écoutant sur le port 443, puis configurer les tunnels qui nous intéressent.

 

 

grey Comment éviter ce fichu proxy ?

Il vous faut :

  • une machine sur internet, non bridée par un quelconque proxy, ayant un serveur SSH. (Les vrais systèmes comme MacOS et Linux l’incluent en standard. Pour Windows, installez OpenSSH). En général, ce sera votre PC à la maison. Appelons cette machine P (comme passerelle). Vous pouvez créer un compte chez dyndns.org si P n’a pas d’adresse IP fixe.
  • un client SSH sur votre machine de bureau, par exemple putty. Nous appellerons cette machine B.

Mode d’emploi :

  • configurez P pour accepter les connections SSH sur le port 443 (allez voir /etc/ssh/sshd_config), ou alors configurez votre routeur pour rediriger le port 443 sur le port 22 (port standard SSH) de la machine P.
  • Activez le service SSH, Désactivez un éventuel firewall, et configurez votre routeur pour que P puisse accepter les connections SSH. Pour tester, essayez de vous connecter avec la commande ssh votre_machine.dyndns.org -p 443
  • sur B, configurez putty de la manière suivante :
    • Session -> Host Name : donnez l’adresse IP de B ou son nom de domaine si vous en avez un (si vous n’en avez pas, vous pouvez utiliser un service comme dyndns)
    • Connection -> Proxy : renseignez les paramètres de votre proxy (recopiez les depuis votre navigateur)
    • Connection -> Data : renseignez votre login sur la machine P
    • SSH -> Tunnels : là ça devient intéressant. Dans source port, renseignez un port libre sur B, par exemple 1234. Dans destination, donnez l’adresse et le port d’une machine, par exemple pop.mail.yahoo.fr:113, puis cliquez sur Add.
    • Vous pouvez donner un nom à votre configuration et la sauvegarder dans Sessions
  • Connectez vous en cliquant sur Open, donnez votre mot de passe sur la machineP
  • Si vous êtes connecté, vous avez maintenant accès à votre machine, et EN PLUS, toutes les connections sur B localhost:1234 seront redirigées sur pop.mail.yahoo.fr:113 via votre machine P. Vous pouvez donc configurer un client de messagerie sur B en donnant comme nom de serveur POP3 localhost et port 1234.
  • Vous pouvez ainsi rediriger n’importe quel port local vers un port de P ou d’une autre machine. Pensez à VNC pour piloter P à distance, à SFTP pour le transfert de fichier, …

Vous allez me dire, c’est bien beau tout ça, mais comment surfer ? Je ne vais pas m’amuser à ajouter chaque site que je visite dans la liste des tunnels. Et bien là où SSH fait fort, c’est qu’il peut agir comme un proxy SOCKS 5, et créer dynamiquement les tunnels adéquats. Mode d’emploi :

  • Dans putty, SSH -> Tunnels, ajoutez un tunnel source port 1080, dynamic, laissez vide la destination, puis cliquez sur add.
  • Dans votre navigateur favori, réglez vos paramètres de proxy pour utiliser le proxy SOCKS V5 localhost, port 1080.
  • Firefox utilise le DNS de B par défaut. Pour qu’il utilise le DNS de P, tapez about:config dans la barre d’adresse et changez network.proxy.socks_remote_dns = true
  • Enjoy !

Il est à noter que de nombreux programmes permettent d’utiliser un proxy SOCKS, et qu’il existe même des programmes pour « socksifier » n’importe quelle application.

Ayez toujours à l’esprit que tout le traffic transite par votre machine P, et que votre bande passante en download sur B sera limitée par la bande passante montant de P -> proxy -> B, cad 128 kbits pour les moins biens lotis en ADSL.

Vous n’avez donc désormais plus de limites imposées par le proxy, et en plus vos communications de B à P sont cryptées. Veillez tout de même à toujours respecter la charte d’utilisation des moyens informatiques de votre entreprise, et à ne pas abuser de la bande passante offerte.

Vous avez aimé cet article ? Vous aimerez sûrement aussi...

 

Vous devriez nous suivre sur Twitter ici et rejoindre notre groupe sur Facebook ici.

Mots-clefs :, , Catégories : article
12 commentaires

Ca, c’est ce que j’appelle une vraie astuce de geek ;)
Bravo Mikael !

Sovattha (le 28 août 2007)  - #1

Soso, a ta place, je m’empresserais de le faire chez ton client…;-) pour la machine, j’ai une dedibox dispo sur le net tournant sur nunux, avec serveur SSH bien sur (indispensable pour mes acces au SVN ou au shell), je te ferai un acces si tu le souhaites
Nickel la procedure en tout cas…

Laurent (le 30 août 2007)  - #2

Bonjour et merci pour ce tuto !

Toutefois, j’ai un p’tit souci avec la création dynamique de tunnels. La redirection statique de localhost:1234 vers http://www.google.com:80 marche nickel. Mais si je fais de la redirection statique, j’obtiens de firefox un page entièrement blanche sans aucun message d’erreur. Si qlq avait une idée, ca serait génial !

pylm (le 3 septembre 2007)  - #3

As-tu bien modifié le paramètre network.proxy.socks_remote_dns de firefox ?

Mikael (le 11 septembre 2007)  - #4

Pour répondr eà Pylm, j’ai eu le même problème avec firefox. En fait, dans les « paramètres de connexion », j’ai vidé les champs pour tous les protocoles, sauf SOCKS. Et ça fonctionne.

Julien (le 9 octobre 2007)  - #5

Toutes mes felicitations ça marche vraiment du tonnerre !

Waldo (le 8 novembre 2007)  - #6

Testé également comme autre solution pour surfer via SSH avec MSIE :
Machine P : serveur proxy sur port 3128 (port par défaut)
Machine B : putty configuré avec destination locale = (machine P):3128
Modifier configuration connexion MSIE (si tant est que vous en avez la permission !)

Waldo (le 20 novembre 2007)  - #7

Salut,

Que renseigner dans Connection -> Proxy ?

Le proxy de la boite ?

Martou (le 28 novembre 2007)  - #8

Ca marche du tonnerre ici aussi :)

Merci à vous pour le tuto et à Julien pour la solution :) j’avais le même soucis (page blanche) et il suffit effectivement de ne remplir que le dernier champ :)

C_moua (le 29 novembre 2007)  - #9

Pour Martou :
Oui, il faut renseigner les paramètres du proxy de ta boîte, que tu peux recopier depuis ton navigateur.

Mikael (le 29 novembre 2007)  - #10

omg.. good work, man

Lyndsayzv (le 23 mars 2008)  - #11

Excellent, justement ce dont j’avais besoin!

Merci beaucoup :)

Jacky672 (le 16 avril 2008)  - #12

Désolé, les commentaires sont fermés pour le moment.