Comment contourner un proxy, merci ssh

Posted by on Fév 10, 2009 in Blog, Planet-Libre, Tutoriaux | 9 Comments

Cela faisait un moment que je cherchais comment pouvoir accéder à mon pc perso depuis mon travail, non pas dans le but de bosser sur des trucs perso, mais pour pouvoir obtenir rapidement les infos et/ou les softs qu’on m’interdisait de télécharger….

1. But :


Le but de cet article est d’expliquer comment accèder « facilement » à sa machine depuis n’importe où. Le principe est « simple » à partir du moment ou on y met un peut de bonne volontée. En revanche cela reste une faille importante de sécurité sur votre système et celui sur lequel vous allez vous héberger. Ce manuel est pour vous si : Vous n’êtes pas libre d’aller où bon vous semble sur le net Si comme moi vous êtes très limité (voir très très limité) sur les downloads Si vous voyagez beaucoup et que vous aimez bien votre PC finalement Ou encore juste pour le plaisir de contourner les règles (avec modération) Le but parvenir à cette situation :

Fonctionnement NX via tunnel SSH

Fonctionnement NX via tunnel SSH

2. Outils :


PuTTY (Forcément :-P) OpenSSH, Un serveur SSH (forcément aussi) et pourquoi pas : Mozilla Filezilla TightVNC / Vino FreeNX

3. Installation du serveur SSH :


Pour ma part je triche un peu et je sort du contexte Windows pour l’instant, pour mieux y revenir, en fait le plus « simple » est d’avoir chez vous un PC qui tourne sous Linux… Puis d’avoir installé un serveur SSH

pour ma part c’est très rapide :

$sudo apt-get install openssh-server

Pour plus de détail concernant l’installation et la configuration de ssh : Installation et utilisation de SSH sous Linux. Ensuite il faut générer la clé ssh qui va bien avec un bon cryptage :

$ssh-keygen -t dsa -b 4096

  • Info : Le dialogue avec les banques est crypté sur 128 bits içi nous générons une clef de 4096 bits

La génération des clefs peut mettre quelques secondes, voir quelques minutes, cela dépend de votre pc… Lors de la sauvegarde des clefs conserver les valeurs par défaut. Ensuite une passphrase est demandé, renseignez ce que vous voulez. ATTENTION !!! Toutefois car cette passphrase, protège votre clef, vous permet de d’utiliser votre clef, et pour finir vous permet de vous connecter à votre pc.

Vous pouvez bien sûr vous passer de cette passphrase mais dans ce cas c’est comme laisser votre maison grande ouverte avec écrit dessus entrée libre 😉

A la fin de la génération des clefs vous obtenez 2 fichiers dans le répertoire /.ssh :

  1. id_dsa —> clef privée
  2. id_dsa.pub —> clef public

Il faut ensuite copier le fichier (clé privée) sur un support type clé usb, puis ajouter le contenu du fichier id_dsa.pub dans le fichier /ssh/authorized_keys

$cat /.ssh/id_dsa.pub >> /ssh/authorized_keys

A cette étape la partie SSH est configurée sur votre serveur (pc maison), ouf…

4. Configuration du routage :


Il faut donc maintenant rediriger correctement les paquets à iptables, en ajoutant cette ligne au fichier de configuration d’iptables : iptables -t nat -A POSTROUTING -o ethX -j MASQUERADE

X=correspond au numéro de votre carte réseau connectée à internet

  • Info : Vous pouvez utiliser les fichiers joints, tirés de l’excellente formation d’Alexis de Lattre, pour configurer iptables
  1. /etc/network/if-pre-ud.d/iptables-start
  2. /etc/network/if-post-down.d/iptables-stop

Les fichiers ci-dessus sont déjà configurés pour fonctionner avec notre configuration, mais vous pouvez toujours les éditer et modifier des choses à l’intérieur.

Je vous laisse le soin de faire votre redirection de port sur votre modem routeur ADSL.

La règle est la suivante :

règle routeur

  1. 80 : est le port de votre routeur en entrée
  2. TCP : Protocole utilisé
  3. 192.168.0.X : adresse IP de votre machine où X est votre IP
  4. 22 : port ouvert sur votre PC
  • Note : Quel port choisir en entrée ? Dans le sens où les données qui vont transitées sur le réseau vont être cryptées, vous pourriez très bien utiliser aussi le port 443 port pour les données https, cryptées

5. Configuration des applications côté maison :


Maintenant il faut installer les applications « serveur » pour pouvoir vous connecter je n’utiliserais pas XDMCP car beaucoup trop lent et « compliqué » à mettre en oeuvre.

Vino = Prise de controle

Pour ma part j’utilise comme serveur VNC : vino qui permet de se connecter depuis n’importe quel client VNC. pour l’installer il suffit de taper la commande suivante :

  • $sudo apt-get install vino

Il faut maintenant le configurer, pour cela, il suffit de taper la commande ci dessous et remplir les différents champs à l’identique de la copie d’écran, le mot de passe est celui que vous demandera vnc pour vous connecter :

  • $vino-preferences ce qui affiche cet écran :

Configuration de Vino

Configuration de Vino
  • Attention :
    -* Le problème de vino et de VNC en général est que pour accéder à votre session Gnome ou KDE, vous devez déjà vous être logué en local sur la machine, si votre session n’a pas été ouverte il ne sera pas possible d’utiliser vino.

FreeNX = Serveur de sessions sous linux 😀 Avantages, plus rapide que VNC, ouvre une session distante sur la machine, supporte SSH en natif. Pour installer FreeNX, vous trouverez sur cette page toutes les infos nécessaires : Installation de FreeNX ou sinon vous pouvez directement installer NX de nomachine utilisable pour 2 personnes en simultané

  • Attention :
    -*Il y a des petits problèmes d’affichage d’icône lors de la session Gnome, et un problème de configuration du clavier, je n’ai pas encore trouvé comment solutionner ce dernier problème à part en faisant :
  • $setxkbmap fr

Proftpd = Serveur FTP

  • $sudo apt-get install proftpd il faut modifier le fichier de configuration : /etc/proftpd.conf

et rajouter cette ligne : PassivePorts 60010 60019

6.Configuration des applications côté PC nomade (pas chez vous) :


Il y a deux options soit vous vous fichez complétement de la technique ou vous êtes pressés et vous optez pour l’option une, soit vous désirez customiser un peu l’ensemble et vous êtes curieux et là vous prenez l’autre l’option, sachant que l’une n’est pas incompatible avec l’autre.

Pour les moins courageux, pressés ?

A l’heure ou je rédige ces lignes le site framakey.org est en train dedéveloper une solution sur clef USB de moins de 128 Mo qui devrait répondre à tout les besoins, surtout si vous n’avez pas les droits d’installer quoique ce soit sur votre pc. Cette Framakey NyWhere sera faite pour vous.

Lien vers le site Framakey.org

Pour les plus courageux qui veulent savoir comment ça fonctionne

1/ Installer et configurer PuTTY


Déjà il vous faut télécharger PuTTy. Une fois que c’est fait vous pouvez l’installer 😉 .

Ensuite première étape, il vous faut convertir votre clef privée : id_dsa, en clef compréhensible par Putty.

Pour cela rien de plus simple un petit coup de PuTTYgen soit en ligne de commande (windows ou linux même combat)

puttygen id_dsa -o id_dsa.ppk

Enter passphrase to load key : si ce n’est pas assez clair là il demande d’entrer votre passphrase

une fois cette étape « d’installation » passée nous pouvons attaquer la configuration.

lancer putty, vous arrivez sur un écran qui ressemble (excepté les valeurs) à celui çi :

Ecran de session Putty

Ecran de session Putty

Session PuTTY
  1. Renseigner l’IP publique du PC maison (adresse IP du routeur sur internet)
  2. Changer le numéro de port remplacer 22 par 80 si vous suivez la doc attentivement 😉
  3. Donnez ensuite un nom à votre session ex : PC Maison
  4. Cliquer sur le bouton Save

Pour connaitre l’IP publique de votre routeur

  • Attention : Il va de soit que pour utiliser ce site, et la solution dans son ensemble vous devez avoir une IP fixe ou qui ne change pas 20 fois par jour, sinon il faut utiliser dyndns

Ensuite sur la partie de gauche cliquer sur Connexion puis sur Proxy, l’écran suivant devrait apparaître.

paramètres proxy de putty

paramètres proxy de putty

Proxy PuTTY

Je ne connais malheureusement pas toutes les configurations de Proxy, tellement les paramètres sont nombreux et variés, tout ce que je peux dire c’est que vous trouverez (si vous n’êtes pas Administrateur) toutes les infos dans les paramètres de connexion d’IE et/ou Firefox.

  • Elémentaire :
    Il va de soit que vous ne devez renseigner cet écran que si vous utilisez un proxy 😀
  1. renseigner le type de proxy, içi : HTTP
  2. l’adresse du proxy : leproxy.a.contourner.com
  3. le port du proxy, généralement c’est : 80
  4. le nom d’utilisateur : nom d’utilisateur de la connexion réseau
  5. mot de passe : mot de passe associé à l’utilisateur au dessus
  6. retourner sur l’écran Session puis cliquez à nouveau sur le bouton Save

Toujours sur la partie gauche cliquer sur SSH puis sur Auth, s’affiche alors l’écran suivant.

Paramètres SSH AUTH

Paramètres SSH AUTH

Auth PuTTY

La suite est simple il suffit de cliquer sur browse afin de sélectionner le fichier id_dsa.ppk que vous avez généré au début de cette étape. Puis retourner sur l’écran Session puis cliquez à nouveau sur le bouton Save

Retourner sur SSH mais cette fois sélectionner Tunnels

Paramètres tunnels

Paramètres tunnels


Tunnels PuTTY

  1. renseigner le port Source, celui qui que vous voulez rediriger depuis votre PC du travail vers le pc maison par exemple le FTP nous allons mettre 3121
  2. dans Destination renseigner le port à atteindre sur votr PC Maison, toujours le FTP localhost:21
  3. choisir le type de redirection içi Local
  4. cliquer sur le bouton Add

Répéter autant de fois les 4 étapes ci dessus afin d’ajouter les différentes règles de redirection, pour l’exemple voiçi celle que j’ai renseigné :

FreeNX :

Source port : 2222 Destination : localhost:22 local

FileZilla(FTP) :


  • Source port : 3121 Destination : localhost:21 local
  • Source port : 3120 Destination : localhost:20 local
  • Source port : 60010 Destination : localhost:60010 local
  • Source port : 60019 Destination : localhost:60019 local

FireFox (Internet) :

  • Source port : 8080 Dynamic

Une fois que vous avez créé toutes vos règles, alors retourner sur l’écran Session puis cliquez à nouveau sur le bouton Save

2/ Configuration de FreeNX


pour installer FreeNX aller sur le site de Coagul

Site de Coagul

Concernant l’installation de FreeNX rien de bien particulier en fait il suffit juste de rediriger le port local 2222 vers le 22 distant et de le spécifier sur l’écran suivant

puis après modifier la clef SSH FreeNX sur l’écran suivant :

Clef freenx

Clef freenx

3/ Configuration de Fillezilla

C’est THE client FTP qui va bien, il suffit de définir une nouvelle connexion avec un nouveau site afin que votre écran ressemble à ça :

Paramètres de connexion Filezilla

Paramètres de connexion Filezilla

4/ Configuration du navigateur (Firefox)

Dans le cas du navigateur c’est très simple, votre page de proxy doit ressembler à ça :

Configuration proxy du navigateur

Configuration proxy du navigateur

twitterlinkedin

9 Comments

  1. Cyprien
    3 décembre 2009

    Bonjour !

    Tutoriel très sympathique. Merci !

    Lorsque le proxy effectue un filtre applicatif (de niveau 7) sur les échanges WEB, c’est un petit peu plus embêtant. J’ai rédigé un petit article complétant à merveille celui-ci. C’est pourquoi je me permet de vous le proposer, en complément de ces informations : http://blog.wixx.fr/?p=22

    Bonne journée

    Cyprien

  2. Karine
    8 novembre 2010

    Les proxys c’est un peu compliqué et pas sécurisée à 100%! contrairement au VPN! J’ai vpn4all on le télécharge rapidement et il demarre dès le demarage du pc! Je télécharge en tout anonymat et en plus ils offrent un essai gratuit, c’est bien pour se faire une idée!

  3. admin
    9 novembre 2010

    bonjour

    ce n’est pas faux mais à choisir je préfèrerai utiliser Openvpn : http://openvpn.net/ sous licence gpl

    voilà voilà

  4. antoine
    13 novembre 2010

    ouais bof. Je suis hyper scpetique donc j’ai fait une recherche et lu une évaluation impartiale de ces 2 produits sur http://www.bestvpnreviews.com le seul site indépendant sur le net qui offre une véritable analyse technique et purement professionnelle sur les VPNs (ne sont pas sponsorisées par les sociétés de VPN et celles ci ne sont pas averties des testes effectués par bestvpnreviews). Openvpn a 3.5 sur 5 tandis que VPN4ALL a 5/5. J’aime bien me renseigner histoire d’être bien informé

  5. Thomas
    3 février 2011

    Bonjour,

    Un tuto complet pour tunneling ssh par le port 22.

    http://zen-informatique.blogspot.com/2011/01/contourner-un-proxy-ou-un-bridage.html

    @ +

  6. admin
    3 février 2011

    bonsoir
    oui c’est chouette, mais tu fais comment si le port 22 est bloqué par le FW??

    @+

  7. Satsubatsu
    9 février 2011

    bonjour,

    je suis dans un logement type FJT actuellement et ils ont eu la bonne idee (ironie) d installer un systeme réseau proteger par netgear et qui bloque toutes les appli. jeux et sites pour les sites je contourne avec tor aucun problème mais je cherche une soluce pour des applis telle que steam ou des jeux en reseaux ( atantica, wow et autres)

    auriez vous un idee svp, j ai pensez au vpn mais je suis pas sure que cela le permette, et je n ai pas de serveur ou rediriger.

    merci

  8. admin
    15 février 2011

    Bonjour
    qu’est qui t’empêche de faire un proxy socks ?
    et de rediriger les différents ports vers ce proxy ?

  9. andy
    6 mars 2011

    merci pour les astuces(si jme plante je reviens te questionner),mais a nouveau merci,vraiment, car de tt les recherches (francophone)que j ai faites sur le sujet 7 derniere 1/2 heure t le seul qui soit clair concis descriptif et ta page et lisible,bref pedagogique,ca fait plaisir de voir de vrai passionne…bye from bangkok!!

Leave a Reply

You must be logged in to post a comment.