- français
- English
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:
- D'avoir un routeur compatible DD-WRT:
http://www.dd-wrt.com/site/support/router-database
- D'avoir une adresse DNS dynamique style:
ou
- Enfin, une connexion permanente à internet. Il ne faut pas éteindre son routeur quand on ne l'utilise pas ;-)
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
- This wiki