Configuration du PPTP sur le DD-WRT pour iPhone et autres...

 

Comment faire un VPN privé pour chez soit à la maison ?

But: configurer son router DD-WRT pour pouvoir utiliser la fonctionnalité VPN/PPTP afin d'avoir une connexion VPN utilisable par un iPhone ou autres. Cela permettra d'accéder à ses machines à la maison depuis n'importe où dans le monde (sauf à l'EPFL sur une connexion fixe !, voir à la fin de cette article). En fait d'exporter son intranet ailleurs qu'à la maison.

Conditions:

http://www.dd-wrt.com/site/support/router-database

http://www.dyndns.com/

ou

http://www.no-ip.com/

 

Qu'est-ce un routeur compatible DD-WRT ?

C'est un routeur où l'on peut changer le firmware du constructeur et de mettre un firmware libre où il y a beaucoup plus de fonctionnalités. Au départ on avait un routeur qui fait juste la fonction de routage, après le changement, on a une belle usine à gaz qui nous permet d'avoir une gestion de notre réseau comme les entreprises. Plus d'info sur:

http://en.wikipedia.org/wiki/DD-WRT

Il y a différentes version de DD-WRT avec différentes fonctionnalités supplémentaires. Le service VPN/PPTP se trouve déjà dans la version de base, nous n'avons donc pas besoin de prendre la version DD-WRT/VPN (plus grosse et qui ne tourne pas sur tous les routeurs compatibles) !

 

Ceci étant dit, comment alors configurer le PPTP de son routeur afin d'avoir un VPN pour chez soit ?

 On va dans le menu Administration/Service/PPTP, on enable le service PPTP serveur (pas le PPTP Client !), on sauve... et après on devrait avoir la fenêtre de configuration des paramètres pour le VPN/PPTP.

Trois paramètres sont importants:

Server IP

C'est l'adresse du premier pied du VPN (un VPN c'est un peu comme un routeur, il a toujours deux pieds), elle ne doit pas être déjà utilisée dans l'intranet, donc ce n'est PAS l'adresse du router ;-)

Clients IP(s)

C'est les adresses du second pied du VPN. Pourquoi plusieurs adresses du second pied ? Pour permettre plusieurs connexions en même temps au VPN. Attention, ces adresses ne font PAS partie du range DHCP du routeur. Son format est (par exemple pour 6 connexions simultanées):

192.168.0.100-105

CHAP-Secrets

C'est la liste des utilisateurs et passwords. Son format est spécial:

user * pass *

Très important les espaces entre les *. Par exemple pour deux utilisateurs on aura:

toto * toto123 *

tutu * tutu123 *

Voilà, on sauve et on reboote la bête et c'est tout !

Plus d'info sur:

http://www.dd-wrt.com/wiki/index.php/PPTP_Server_Configuration

 

Sauf que le protocole PPTP a été conçu par Microsoft et fonctionne très bien nativement sur les machines Windows depuis l'an 2000 !

http://fr.wikipedia.org/wiki/Point-to-point_tunneling_protocol

Pour les machines Apple par exemple, cela coince un peu ;-( Mais on a toujours une solution quand on a les moyen de mettre les mains dans le moteur du routeur, c'est le cas ici avec le DD-WRT.

Le problème avec les machines MAC OSX, c'est que lors de la connexion la négociation du cryptage se passe mal, un moyen très simple de corriger le tir, est lors de la configuration du tunnel VPN/PPTP sur le MAC est de ne PAS crypter le tunnel. Cela fonctionne bien et rapidement mais ce n'est pas très secure car l'avantage d'avoir un VPN c'est que l'on peut crypter le tunnel avec son intranet et empêcher les méchants de venir voir chez nous !

Vu que c'est la négociation au moment de la connexion qui pêche, on peut forcer sur le router le cryptage obligatoire, et là, cela fonctionne très bien avec les MAC OSX.

Mais pour cela, il faut faire une commande magique. Il faut modifier une ligne dans le fichier de configuration du VPN sur le routeur pour obliger le cryptage lors de la connexion. La ligne à modifier dans le fichier /tmp/pptpd/options.pptpd est:

mppe ,stateless

en

mppe required,stateless

On peut très facilement la modifier avec une commande sed:

sed -i -e 's/mppe .*/mppe required,stateless/' /tmp/pptpd/options.pptpd

depuis l'interface WEB du DD-WRT dans le menu Administration/Diag/Command.

Le blême c'est au prochain reboot du router, il faudra refaire la modif car il n'y a pas de disque sur ces petits routeurs, tout se fait en RAM ! Mais on a quand même un truc, on peut sauver cette commande sed dans une variable NVRAM (en fait de la FLASH du routeur) qui sera exécutée lors de chaque boot du routeur. Après avoir exécuté la commande magique sed avec l'interface WEB, il faut ensuite la sauver avec le même interface. Et c'est tout, plus d'info sur:

http://www.dd-wrt.com/wiki/index.php/PPTP_Server_Configuration#Force_Encryption

 

Voilà, les machines Windows, MAC OSX et autres Linux ça joue... sauf les iPhone ;-(

Effectivement sur les iPhones y'a un petit bug qui fait que, quand on est connecté sur son VPN avec son iPhone, la résolution DNS se fait via la connexion primaire (donc internet) sur le DNS du routeur et non via la connexion secondaire (VPN, donc intranet). On tente alors d'accéder au DNS de son routeur depuis l'extérieur de son réseau et cela ne fonctionne pas.

L'astuce consiste à utiliser lors de la connexion VPN/PPTP un DNS serveur public et non par défaut son propre DNS ou le DNS de son prestataire internet.

La modification du DNS serveur pour le PPTP ne peut pas se faire depuis l'interface WEB de configuration du PPTP, mais on peut modifier la variable NVRAM pptpd_dns1 au moyen de l'interface WEB Administration/Diag/Command en entrant la suite de commandes suivante:

nvram set pptpd_dns1=8.8.8.8

vram commit

reboot

 L'adresse 8.8.8.8 (très jolie) est l'adresse du serveur DNS public de Google. Si on ne désire pas utiliser Google (BigBrother), on peut utiliser d'autres serveurs DNS publics, mais attention quand même, car c'est un moyen de détourner les adresses de sites ;-(

Ouf, voilà, maintenant nous avons un super petit VPN complet pour notre réseau de la maison utilisable par toutes les plateformes. Vous verrez, quand on y a touché, on ne peut plus s'en passer ;-)

 

Comment configurer son Ubuntu pour utiliser ce petit VPN ?

Il faut ajouter un VPN avec le configurateur réseau de Ubuntu, faire bien attention de choisir le type de connexion VPN à:

Protocole de tunel Pont-to-Point (PPTP)

Mettre comme passerelle, l'adresse ip de son VPN et ne pas oublier de configurer la partie avancée:

- cocher que MSCHAP et MSCHAPv2

- cocher Utiliser le chiffrement MPPE avec sécurité par défaut

- le reste on ne touche pas...

 

 

Comment configurer son Iphone pour utiliser ce petit VPN ?

Il faut ajouter un VPN avec le configurateur réseau de l'iphone, faire bien attention de choisir l'onglet PPTP.

Mettre comme serveur, l'adresse ip de son VPN et ne pas oublier de mettre le niveau de chiffrement au maximum.

Le reste on ne touche pas...

 

PS:

Dans certaines entreprises, comme par exemple l'EPFL, il n'est pas possible de creuser un tunnel VPN/PPTP depuis une connexion fixe (problème de sécurité). Ne cherchez donc pas plus loin si cela ne fonctionne pas, ce n'est pas de votre coté ;-(

Par contre à l'EPFL, cela fonctionne très bien depuis une machines connectée en WIFI ou via une prise jaune (802.1x).

 

 

Christian Zufferey, 110502.0939