Administrateur Systèmes d'Information mais aussi Développeur Web.
Passionné par plein de choses :)

Arnaud Bosquet

Administrateur Systèmes d'Information / Dev Web / Tennis

Contourner un proxy (au boulot…)

Il y a 2 façons de voir cet article/tutorial. Certains trouveront le moyen de sécuriser l’accès à leur ordinateur personnel depuis n’importe quelle connexion internet, d’autres verront le moyen de contourner le vilain proxy du boulot qui les empêche de consulter leurs mails… A vous de voir

[EDIT : ] J’ai réalisé un screencast afin d’expliquer la mise en place. Cliquez ci-dessous pour y accéder.
Screencast OpenSSH

Dans mon ancienne entreprise, le proxy était entièrement géré par la maison mère située en Allemagne. De nombreux sites étaient bloqués. Le souci c’est que dans un service Informatique, parfois nous avons besoin de récupérer des utilitaires sur des sites…bloqués.

1. Mettons-nous en situation…

Je souhaite accéder à mon ordinateur personnel depuis mon lieu de travail pour télécharger des logiciels qui sont bloqués (illégitimement) par le proxy. Seuls les ports 80 et 443 sont ouverts sur celui-ci.
Une fois la procédure achevée, j’aurais le choix entre prendre la main à distance sur ma machine (via VNC ou autre) ou bien utiliser ma connexion à la maison pour surfer depuis l’ordinateur du boulot en passant outre le proxy (via un proxy Hôte SOCKS).

La solution schématisée

La solution schématisée

2. Installation du serveur SSH

La connexion à destination du PC de la maison va passer à travers une liaison SSH. La première chose à faire est donc d’installer un serveur SSH sur notre PC perso. Si les packages SSH sont intégrés sous Linux, sous Windows, OpenSSH est disponible gratuitement. Les processus tournent (en théorie) en tant que services Windows. Vous pouvez le trouver ici : http://sshwindows.sourceforge.net/download/
L’installation se déroule normalement sans souci, ça ressemble à du suivant, suivant, suivant, terminé.

3. Configuration de SSH

Passons à des choses plus rigolotes. Avant de lancer le serveur OpenSSH, il faut éditer 2 fichiers, l’un contient les utilisateurs, l’autre regroupe les mots de passe. Même si nous n’utiliserons pas l’authentification par mot de passe, l’édition de ces deux fichiers est nécessaire. Il suffit de se placer dans le répertoire bin/ de OpenSSH en MS-DOS puis de lancer ces deux lignes de commandes :

Après ça, il faut modifier le fichier de config (C:\Program Files\OpenSSH\etc\sshd_config) pour qu’il écoute sur le port voulu et lui indiquer que nous souhaitons nous identifier par un couple de clés publique/privée.
Les lignes à modifier sont les suivantes :

Port 80
StrictModes no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile	/ssh/authorized_keys

On indique ainsi au serveur SSH que l’authentification ne se fait plus avec le mot de passe Windows mais par une clé publique. De même, on lui indique que ces clés sont cryptées en RSA.
Enfin, la dernière ligne indique l’emplacement du fichier contenant la clé publique.

4. Un trousseau de clés…

Reste à générer le couple de clés pour notre authentification. Pour se faire, on utilise puttyGen trouvable partout sur Internet et en cliquant là. Au niveau des options, on les cochent comme le montre le screen ci-dessous.

Les clés sont générées en fonction de l’activité la souris, autant dire qu’il faut avoir la bougeotte :D

Et ensuite ?! Ensuite, on sauvegarde la clé publique dans le fichier C:\Program Files\OpenSSH\ssh\authorized_keys (comme définit dans le fichier de conf, cf. plus haut)
Après ça, on rentre notre passphrase et on sauvegarde la clé privée que l’on garde précieusement avec soi ou sous un matelas… :d

On lance le service OpenSSH avec la commande qui va bien, à savoir : net start OpenSSHD

5. Connexion à la maison

Pour établir une connexion vers un serveur SSH, il nous faut un client. Putty fera l’affaire, une version portable est disponible. Vous pourrez la mette sur une clé USB avec votre clé privée et vous n’aurez rien à installer sur le poste du bureau. Vous pouvez trouver la bête en cliquant ici.

Petite parenthèse : Si vous utilisez un routeur ou la box de votre fournisseur d’accès, il faut que vous activiez le transfert de port ou la redirection de port selon l’intitulé de la chose. Dans notre cas, il faudra rediriger toutes les requêtes ayant pour port destination 80 vers l’adresse IP du Pc où le serveur SSH est installé.

Puisque des images valent plus que des paroles, la suite sera illustrée :

Astuce n°1 :

Pour éviter de refaire toutes les manip’ à chaque connexion, vous pouvez nommer votre session puis cliquez sur le bouton Save (bouton 3).

¤ Rendons-nous ensuite dans la partie Connection et plus particulièrement dans la rubrique proxy.

Astuce n°2 :

Pour trouver l’adresse exacte de votre proxy d’entreprise ainsi que le port d’écoute de celui-ci, vous pouvez allez dans les paramètres de connexion de votre navigateur web.

Sous Firefox : Outils -> Options -> Avancé -> Réseau -> Paramètres

Sous Internet Explorer : Outils -> Options Internet -> Connexions ->Paramètres Réseau

¤ Ensuite, c’est dans la partie SSH puis Auth que cela se passe :

¤ Allons après dans le menu Tunnels :

Astuce n°3 :

Voici la liste de quelques ports forwarding qui peuvent être utiles :

UltraVNC :
Port source : 5922 – Destination : 127.0.0.1:5922 – Type : Local
Port source : 5822 – Destination : 127.0.0.1:5822 – Type : Local

Firefox (surfer du bureau en utilisant la connexion à la maison) :
Port source : 8080 – Type : Dynamic

Pour surfer du Bureau en utilisant votre connexion à la maison, il faut lancer Firefox puis aller dans Outils -> Options -> Avancé -> Réseau -> Paramètres
Il faut ensuite définir comme proxy Hôte SOCKS : 127.0.0.1 avec comme port 8080 (si vous avez suivi…) et cocher SOCKS V4

Voilà, après tout cela, vous lancez la connexion vers votre PC et normalement vous avez accès à votre pc avec tous les avantages que cela comporte.

Bon courage à ceux qui veulent s’y risquer :D

210 commentaires

Safnam
18 Jan 2013 à 23:30

Salut Arnaud,

j’ai bien installé et configuré opensshd. sur le même pc (avec opensshd démarré) j’arrive a me connecté avec putty. mais lorsque j’essai de tester la connexion à partir de mon pc portable. j’ai un « time out » à chaque fois.
sur ma free j’ai redirigé le port 443 comme suit:
443 >>>192.168.1.13>>>>>443
dans mon firewall le port 443 est libre.
je ne sais pas d’où vient ce problème?
Merci pour ton aide

Safnam
19 Jan 2013 à 0:29

C’est encore moi :-)
au fait c’était ce satanic firewall de windows qui bloquait mon port 443.

par contre je ne sais pas comment utiliser firefox portable pour me connecter à internet.

je n’ai pas encore essayé la connection derrière le proxy. je suis en train de l’essayer en local.
comme l’adresse de mon ordi est privé (192.168.1.13) comment configurer putty avec mon adresse freebox (88.xx.xx.xx)?
Merci d’avance.

Arnaud
21 Jan 2013 à 15:00

Tu dois configurer putty avec ton adresse publique (88.xxx) comme ça tu testeras les redirections de port sur ta freebox.
Tu te connectes à Putty puis tu lances Firefox.
Pour utiliser Firefox portable, tu dois renseigner un proxy SOCK dans Firefox :
——-
Firefox (surfer du bureau en utilisant la connexion à la maison) :
Port source : 8080 – Type : Dynamic

Pour surfer du Bureau en utilisant votre connexion à la maison, il faut lancer Firefox puis aller dans Outils -> Options -> Avancé -> Réseau -> Paramètres
Il faut ensuite définir comme proxy Hôte SOCKS : 127.0.0.1 avec comme port 8080 (si vous avez suivi…) et cocher SOCKS V4
——

Safnam
21 Jan 2013 à 22:15

Je te dirais ça demain.
le test depuis mon portable vers mon fixe en passant par mon ip public est concluant. reste à voir comment Putty va se comporter devant le proxy du taff.
résultat demain…….à suivre.

safnam
22 Jan 2013 à 12:07

Bonjour,

résultat de la course les adresses ip Free son bloquées par le filtre proxy.
quand je ping mon ip : « impossible de joindre le hôte de distination » == le ping est activé sur ma freebox.
même en essayant de me logger à mon compte free : « HTTPS://…….. » le proxy me retourne « le site n’est pas sécurisé.
je crois que je vais laisser tombé.

Arnaud
23 Jan 2013 à 10:38

Salut,

Ton proxy ne doit autoriser que certaines adresses alors.
Pour en être sur, tu peux installer un serveur local sur ton ordi chez toi (wamp,…) le mettre online et faire une redirection sur ta freebox (port 80).
Tu essaies de te connecter depuis ton boulot en tapant l’adresse IP publique. Si ça s’affiche, c’est un problème au niveau de l’installation de ton Putty. Si ça ne s’affiche pas, c’est le proxy qui bloque les connexions sortantes.

Igloo
4 Mar 2013 à 11:12

Bonjour,

Merci pour tuto, avant de me lancer, j’aurais une petite question. Mon proxy filtre les adresses web et permet aussi au service informatique des statistiques de connexion. Si je réalise la manip, l’administrateur réseau ne verra qu’une connexion à une ip (celle de ma box) par le port80, c’est ça ? Du coup, niveau stat, il n’aura que le nombre et le temps de connexion à cette adresse ? Cependant, un administrateur un tantinet attentif, le voyant ces stats, se doutera que je by-pass le système, n’est-ce pas ?

XTAY
27 Mar 2013 à 16:20

Bonjour a tous,

Problème de mon coté au moment de la connexion de putty.
Pour commencer, je dispose d’une freebox V6 et d’un nas synology qui fait office de serveur SSH.

Pour tester tout ça en dehors du local, j’étais chez mon voisin et je n’ai pas eu de soucis, je suis bien arrivé à me connecter, port 22 ou port 443 avec la redirection sur la box.
Par contre au boulot ça coince, j’ai bien rentré l’adresse du proxy:8080 dans putty que j’ai trouvé dans le .pac , j’ai testé avec tous mes logins possibles, avec le domaine\ et j’ai toujours le message d’erreur « Proxy error : 407 Proxy Authentication Required »
Le proxy je suis pratiquement certain que c’est le bon, en l’entrant manuellement dans Firefox, j’ai accès au web. Par contre si je dis a Firefox pas de proxy, la je n’ai pas accès au web.

Autre info, depuis le boulot, j’ai accès via internet au DSM synology (site web) monadresseip: port 80 ou port 443 ou même 444, ce qui montre qui je peux me connecter sur mon adresse ip avec ces ports.

Par contre requête de ping dans l’invite de commande : Impossible de joindre l’hôte de destination.

Si quelqu’un a une petite solution pour moi, ou sait d’où vien mon problème, je lui en serai reconnaissant.
Merci d’avance.

MB
20 Mai 2013 à 13:23

Bonjour,
Je vois que les échanges ici sont entre des gens qui parlent le même langage(informatique)! Qu’en est-il pour les simples utilisateurs qui souhaitent tout simplement contourner un proxy ou se servir d’un proxy pour télécharger un film sans être reconnus ?. Cordialement,

ggkameleon
13 Nov 2013 à 18:34

Bonjour je voulais savoir si il est possible de le faire en étant sur pc windows XP au travail et chez moi sur mac ?

Avez vous un topic pour réaliser ce type de tunnel ?

Au travaille, j’ai accès à l’intranet par internet explorer, firefox, google chrome mais des que je veux me connecter à google le serveur proxy me demande un identifiant et mot de passe (ce que j’ai, mais plus l’autorisation de me connecter avec mon identifiant à internet, depuis qu’ils ont bloqué l’accès à certains site « restriction d’accès)

J’ai trouvé cela en cherchant, mais pas très explicite ? et les ports de connexion ne sont pas les mêmes !?
http://www.tuteurs.ens.fr/internet/loin/tunnel.html

Merci…

Répondre