VPN PPTP sous DD-WRT

Bonjour mes petits lapins! (c’était juste pour donner le ton de ce tuto >.|.< ).
Donc on va répéter le blabla habituel: Je ne suis en aucun cas un pro du VPN ni même du DD-WRT juste un utilisateur plutôt avancé, c’est pourquoi je ne peux pas vous affirmer que ce tutoriel est sans erreur et que la solution que je présente est la meilleure. Le but de ce tuto est simplement de faire partager mes quelques connaissances dans le domaine. Fin du message de blabla.

Commençons par… l’intro:

  • VPN: quesako? Réponse ici. Envoyer vers CommentCaMarche.net est plûtot répulsif, mais il faut l’avouer, leur dossier sur le VPN est plutôt claire.
  • C’est quoi le mieux entre PPTP, OpenVPN, IPsec… et les autres? Haha, question qui tue! Aujourd’hui IPsec ou OpenVPN m’ont l’air vraiment sécurisés, c’est pourquoi je les conseillerais.
  • T’es débile? On va configurer un truc non secure si on fait du PPTP? Non! il ne faut pas abuser, PPTP offre une solution de cryptage plus que correcte, bien suffisante pour la plupart des transferts de données non ‘ultra-sensibles’.
  • OK, Quel est le matériel nécessaire? Dans ce tuto nous utiliserons deux routeurs Buffalo WHR-G54 flashés avec DD-WRT SP1 standard générique. Nous utiliserons aussi deux modems en mode bridge.
  • Il y a t’il des près-requis au niveau de l’adressage sur les différents sites? Oui! Chaque site doit absolument être dans un réseau différent. Exemple: site 1 -> 192.168.50.0, site 2 -> 192.168.51.0.
  • Pourquoi être dans des réseaux différents? Le but c’est bien de ne former qu’un seul réseau pourtant? Bien vu! C’est pour cela qu’il ne faudra pas oublier d’implémenter des routes statiques dans nos routeurs DD-WRT. Être dans des réseaux différents permet aux machines qui veulent communiquer avec un site distant d’emprunter la bonne sortie, en l’occurrence passer par la passerelle VPN pour aller sur le site distant. Si ce n’est pas clair, concentrez vous et relisez cette phrase, imaginez la situation dans votre pitite tête et vous devriez vous en sortir. Sinon prenez un café et recommencez.

Pour terminer cette micro-intro voici un schéma sommaire de l’installation que nous allons réaliser. (Je l’ai emprunté à génération NT). Les deux modems routeurs du schéma sont en réalité deux apareils distincts (un modem en brige et notre buffalo en routeur DD-WRT avec le service VPN).

LAN to LAN

On  a un site avec le serveur PPTP et un site avec le client PPTP, le choix du site client ou serveur importe peu si ce n’est que le site serveur doit avoir une IP fixe sur internet. On peut éventuellement contourner cette limitation en utilisant un DNS dynamique si aucun site ne dispose d’IP fixe mais ça reste du bricolage.

L’intro étant faite, passons à la configuration du serveur PPTP.
Configuration en 3 étapes:

  1. Adressage du routeur (patte LAN et WAN).
  2. Activation et configuration du serveur VPN PPTP.
  3. Mise en place des routes statiques.


Commençons donc par l’adressage des pattes du routeur.
-La patte WAN obtiendra l’adresse IP publique de votre accès internet; rappelez vous, notre modem est en mode brige. Certains modems permettent la configuration des identifiants de connexion directement sur le modem, même quand il sont en bridge, d’autres n’acceptent qu’une demande de connexion PPPoE, dans ce cas la configuration du Login et Password pour l’accès internet se fera sur le Buffalo dans la partie Setup/ Wan Setup/ Connection Type:PPPoE.
-La patte LAN aura comme adresse une adresse faisant partie du même réseau dans lequel se trouve le routeur, sur le site 1 on prendra par exemple 192.168.50.1. Cette adresse sera en réalité l’adresse de la passerelle de notre réseau local, choisissez donc une adresse cohérente. Les passerelles sont par habitude adressées en X.X.X.1 ou X.X.X.254 pour un réseau de classe C.

Poursuivons par l’activation et configuration du serveur PPTP.
-Activez le serveur PPTP sur le site disposant d’une adresse IP publique fixe, on aura besoin de cette @IP pour la configuration de notre client plus tard.
–L’activation du serveur PPTP se fait dans Services/ PPTP/ PPTP server de votre DD-WRT.
-Pour la configuration, on à 3 champs à remplir: Server IP, Client IP et CHAP-secrets
-Server IP
: on vient mettre une adresse IP de disponible dans le réseau acceuillant notre serveur PPTP, dans notre cas on choisira 192.168.50.2. En effet, dès l’activation du service PPTP, qu’il soit serveur ou client, une nouvelle interface réseau se crée, en quelque sorte une interface virtuelle. Elle permetra au serveur et au(x) client(x) de communiquer par un « tunnel » ces interfaces ‘virtuelles’ sont les extrémités du tunnel.
-Clients IP: On rentrera la plage d’IPs que le serveur pourra distribuer à son (ses) client(s) pour les extrémités du tunnel, cette plage doit bien entendu aussi être libre. Dans notre cas on rentrera 192.168.50.2-10. Le serveur distribuera donc des adresses de 192.168.50.3 à 192.168.50.10 exclu. Soit 7 clients simultanés maxi.
-CHAP-secrets: C’est ici que nous allons gérer nos logins et mot de passe pour chaque utilisateur de la forme: utilisateur * motDePasse * saut de ligne.
Jetez un œil à la capture d’écran ci-dessous pour vous rendre compte de la configuration.

Mise en place des routes statiques.
Nous configurerons les routes statiques à la fin de ce tuto car nous avons besoin de connaitre la configuration du client PPTP.

Le serveur VPN PPTP sur notre Buffalo flashé en DDWRT est maintenant configuré. Passons maintenant à la configuration du client. Même cas de figure que pour le serveur, configuration en 3 étapes:

  1. Adressage des pattes WAN et LAN
  2. Activation et configuration du client PPTP
  3. Mise en place des règles de routage statiques.

Adressage des pattes WAN et LAN.
Mystère  et boule de gomme… plus sérieusement, c’est le même principe que pour l’adressage du serveur. La patte WAN obtient votre IP publique et le LAN a une @IP concordante avec votre réseau numéro 2. Pour nous 192.168.51.1. Là aussi, cette adresse sera la passerelle pour notre réseau local et l’internet.

Activation et configuration du client PPTP.
-L’activation du serveur PPTP se fait dans Services/ PPTP/ PPTP client de votre DD-WRT.
–La configuration est du même degrés de difficulté que pour la configuration de notre serveur PPTP, c’est à dire, enfantin :)
-Server IP or DNS Name: Adresse IP publique de notre serveur, ou son nom DNS si vous avez configuré un service DynDNS en cas d’IP non fixe du site serveur. Dans notre cas: 78.230.200.70
-Remote subnet: L’adresse du réseau distant. Dans notre cas l’adresse du réseau de notre site 1, c’est à dire 192.168.50.0
-Remote Subnet Mask: Alors là, c’est ultra complexe: 255.255.255.0, en clair le masque de sous réseau du site distant.
-MTU et MRU, on laisse les valeurs par défaut 1450 (taille maxi des paquets IP en octet)
-NAT: On laisse activé le NAT, il faudra d’ailleurs que je le désactive un jour pour voir quelle incidence ça a.
-User Name: Entrez un nom d’utilisateur déclaré sur votre PPTP serveur
-Password: Entrez le mot de passe correspondant à votre utilisateur.
Petite capture d’écran pour couronner le tout:

Après avoir validé et appliqué les paramètres coté serveur et coté client logiquement ça doit fonctionner -ouf- c’est l’heure de la bière.
Ce qui doit fonctionner c’est la liaison entre notre serveur PPTP et notre client. Pas entre nos deux réseaux! -ne recrachez pas votre bière pour autant!-
Avant d’aller plus loin, on va vérifier que notre liaison fonctionne. A partir de votre bufallo client (soit par le biais du telnet ou par l’outil Command du GUI, Administration/ Commands) faites un ping sur la patte LAN de votre Buffalo serveur. Votre ping devrait passer. Si ce n’est pas le cas c’est que votre tunnel n’est pas fonctionnel, redémarrez électriquement votre bufallo client. Faites la même chose dans l’autre sens, du serveur vers le client. Quand tout est OK, passez à la suite.

-Pourquoi elle marche pas ta liaison entre les deux réseaux??!
-Ce n’est pas de ma faute! c’est la faute aux règles de routage sur nos passerelles, et oui! nous n’en avons pas créé, par conséquent, quand du réseau 1 en 192.168.50.0 on interroge une machine 192.168.51.X du réseau 2, la requête sort bien par notre passerelle mais va se perdre sur internet. Il faut simplement dire à notre passerelle que tous les paquets à destination de notre réseau distant en 192.168.51.0 doivent passer par la passerelle distante. C’est clair?

Configurons donc les routes statiques sur nos deux passerelles VPN.
Coté serveur dans Setup/ Advance routing on va créer une nouvelle entrée dans la table de routage:

Coté client, toujours dans Setup/ Advance routing on va créer le même type de règle mais pour accéder au réseau 1.

En appliquant et enregistrant les paramètres, vous devriez réussir à discuter entre les machines de vos 2 réseaux.

Voilà, c’est terminé, vous pouvez finir votre bière ou en décapsuler une autre.
J’essaierais de faire un petit ajout à ce tuto pour la connexion de plus de 2 sites dès que j’en aurais le temps.

Soyez sages et travaillez bien. ;)


Ajouter un commentaire, ou un trackback depuis votre site.

13 commentaires sur “VPN PPTP sous DD-WRT”

  1. Adrien dit :

    Salut, oué, ça fonctionnera sans problème, sauf si le hotspot wifi bloque le port 1723, dans ce cas, impossible d’établir une connexion PPTP…
    Je voulais faire le test, mais n’ai pas de réseau FreeWifi ou SFRwifi à disposition. Je sais que depuis McDo, ça fonctionne en tout cas!

    A+

  2. Blacky dit :

    Merci Adrien pour ta réponse que je viens de voir. Toujours à propos de ce topic, si je suis connecté a travers un Hotspot (FreeWiFi ou encore SFR WiFi)puis-je par l’intermédiaire d’un client PPTP de windows me connecter à mon serveur PPTP (qui est derrière une box)? Car dans ce cas, je n’ai pas accès au « routeur » du hotspot, je ne peux donc pas créer un routage statique. Une idée?

    Blacky

  3. Adrien dit :

    Salut Blacky,
    Ta première question n’a pas trop de sens, ton réseau 2 possède forcément un accès internet, sinon, impossible de créer un tunnel ^^. Par contre, en effet, en naviguant sur internet à partir d’un PC du réseau 1, il est possible de « sortir » par le réseau 2, il suffit juste de définir le routeur du réseau 2 comme passerelle sur la machine en question.
    Ce genre de configuration est utilisable pour par exemple, avoir depuis l’étranger accès à certains contenus Français normalement inaccessibles (les replay de M6 par exemple).

    Enfin, la partie « client » peut en effet être réalisée par le client VPN intégré de windows, c’est ce que j’utilise couramment en déplacement.

    Voilà…
    Adrien

  4. Adrien dit :

    Bonsoir,
    Il faudra trouver la version DDWRT compatible avec OpenVPN, peut-être que la version spéciale VPN inclue cette fonctionnalité. Il faudrait lire les caractéristiques sur le site officiel. Les tests ont ici été réalisés avec la version « std », c’est à dire standard; qui n’inclue que le PPTP.

  5. Blacky dit :

    Bonsoir Adrien,

    D’abord merci pour ce tuto, j’ai cependant quelques questions:
    -l’intérêt, pas forcément malhonnête, d’un VPN est d’avoir un accès à internet crypté. Dans ce but, en admettant que le réseau 2 possède un accès à internet, puis-je, du réseau 1 via ce tunnel VPN profiter de cet accès internet protégé?
    -Si oui comment? Sinon pourquoi?
    -La partie « client », gérée par le dd-wrt, peut elle être remplacée par le client VPN intégré à Windows?

    D’avance merci

    Blacky

  6. Nek dit :

    … Hum … et si je veux monté un tunnel VPN depuis mon routeur vers un fournisseur de VPN basé sur OpenVPN ??

  7. Farzad dit :

    Merci 10000000000000000000000000000000000000000000 … 000 fois à TOI !

    Grâce à toi , j’ai mon serveur VPN PPTP :D

    juste une chose, je cherche un serveur dns assez rapide car j’ai un ip dynamique et pas statique… bien-sûre, je cherche un service gratuite :-)

    Actuellement, j’utilise « No-IP » mais assez lent …

    Et puis, une question bête , je vais utiliser mon serveur vpn en Iran et me connecter entant que client une fois la-bas, alors, deux questions se posent:

    1- dois-je ajouter un nom de domaine dans la partie domaine , entent que client?
    username: ok (j’ai)
    pass: ok (j’ai)
    domain : ? (je ne suis pas sure de le connaitre)

    si il faut le mettre, comment je peux le créer ?!

    2- une fois connecter en vpn, comment je peux cacher mon ip adresse local ou c’est fait par défaut puisque c’est une connexion vpn …

    Merci et désolé d’Avance de prendre ta tête avec ça ^_^

  8. Adrien dit :

    Merci, ça fait toujours plaisir de recevoir des remerciements.
    Bonne continuation

  9. Frédéric Charland dit :

    Merci infiniment! Tout a fonctionné du premier coup! Très bon tuto!

  10. Adrien dit :

    Bonjour,
    Tout est parfaitement normal et fonctionnel au niveau du routage.
    Sur quel élément veux tu activer un DHCP?

    A+
    Adrien

  11. smike dit :

    salut merci pour le tuto.

    c’est normal que du coté serveur et route static l’ip n’est pas la même (…50 pour le serveur et …51 pour la route statique)???
    Ne faut-il pas configurer un DHCP pour la plage d’ip fixé??

    merci
    A++

  12. Adrien dit :

    Merci pour ta lecture ;) et tes remerciements.

  13. antoine dit :

    Très très bien. merci.
    La partie sur le routing a bien débloqué le schimili… a shcmil.

Ajouter un commentaire

Powered by WordPress