Installer sur le Raspberry Pi un serveur VPN avec PPTP
Voici le premier article fait Ă la demande dâune personne qui suit ce site (et via Facebook en plus ! đ ). Aujourdâhui nous allons donc voir comment mettre en place un serveur VPN sur le Raspberry Pi.
Avant de commencer, il faut peut ĂȘtre prĂ©ciser quelques dĂ©tails Ă propos de ce quâest un VPN et Ă quoi il peut servir.
Comment ça marche ?
Vous pouvez trouver des dĂ©tails techniques un peu partout sur Internet mais ce quâil faut retenir câest que le VPN (Virtual Private Network) permet de relier deux rĂ©seaux entre eux ou bien des machines externes Ă un rĂ©seau prĂ©cis. La connexion se fait de maniĂšre sĂ©curisĂ©e et en thĂ©orie les communications ne sont pas comprĂ©hensibles par des personnes extĂ©rieures mĂȘme si tout passe par Internet.
Tout cela permet de faire croire que lâon est sur le mĂȘme rĂ©seau alors que lâon passe par un intermĂ©diaire qui est souvent Internet.
Le client initie la connexion vers le serveur et crypte les donnĂ©es, le serveur dĂ©crypte, effectue les actions et retourne les informations demandĂ©es vers le client avec le mĂȘme cryptage.
VoilĂ de maniĂšre trĂšs trĂšs high level comment ça fonctionne (je passe sur les diffĂ©rentes couches du modĂšle OSI - souvenirs cours de rĂ©seau âŠ)
Câest bien beau mais Ă quoi ça sert ?
On peut trouver toutes une liste dâutilisation dâun serveur VPN sur le raspberry:
- Accéder de maniÚre distante aux machines de son réseau domestique. Y compris les imprimantes, les NAS, etc.
- Fournir un accĂšs internet en France si on est Ă lâĂ©tranger (comme pour certains sites de replay)
- Partager certaines ressources avec des personnes particuliĂšres
- Se connecter depuis un lieu public chez soi pour ensuite aller sur Internet de maniÚre sécurisée depuis sa maison
- Surement dâautres utilisations que vous pourrez me donner đ
VoilĂ . Alors je pense quâil peut manquer quelques prĂ©cisions mais dans les grandes lignes vous savez maintenant ce que vous pourriez en faire.
Techniquement, il y a pas mal de solutions qui existent. Les plus courantes sont PPTP et OpenVPN.
- PPTP est un protocole développé par Microsoft. Il possÚde des lacunes mais est relativement simple à mettre en place.
- OpenVPN pousse la technique plus loin avec un cryptage plus poussé, il passe à travers les proxy plus facilement que PPTP. Sa mise en place est par contre plus complexe.
Vous pouvez trouver un article qui compare les principaux protocoles ici.
Jâai choisi dans un premier temps de parler de PPTP car il est aussi trĂšs bien supportĂ© par la plupart des appareils mobiles. JâespĂšre vous faire un autre article pour OpenVPN đ
- Mise Ă jour du systĂšme
apt-get update && apt-get upgrade
- VĂ©rifier que le noyau de la distribution supporte PPP. Câest la condition pour installer PPTP. Si la commande suivante retourne une erreur alors il faudra recompiler un noyau avec le support PPP ou utiliser Raspbian qui a le module dâinstallĂ©.
modprobe ppp-compress-18
- Installer le paquet suivant :
apt-get install pptpd
- Configurer PPTPd via son fichier de configuration /etc/pptpd.conf. Toute Ă la fin du fichier, il y a deux options :
- localip : il sâagit de lâadresse locale de votre Raspberry Pi. Chez moi je suis sur lâIP 192.168.1.25.
- remoteip : vous devez dĂ©finir sur quelles IPs seront les machines qui vont se connecter chez vous. Perso je nâai dĂ©fini que 2 IPs car je nâai pas lâintention dâavoir toute ma famille sur mon rĂ©seau !
localip 192.168.1.25 remoteip 192.168.1.200-201
- Maintenant, il faut mettre Ă jour les options de PPP via /etc/ppp/pptpd-options :
- ms-dns : il sâagit du DNS utilisĂ© pour la rĂ©solution de nom. Ici jâai pris ceux de Google.
- noipx : option recommandée pour désactiver IPX et IPXCP
name pptpd refuse-pap refuse-chap refuse-mschap require-mschap-v2 require-mppe-128 proxyarp lock nobsdcomp novj novjccomp nologfd ms-dns 8.8.8.8 ms-dns 8.8.4.4
- Dans le fichier /etc/ppp/chap-secrets vous allez pouvoir définir les accÚs que vous voulez donner à votre VPN. La premiÚre ligne du fichier contient le format des entrées ([TAB] correspond au caractÚre de tabulation):
# Secrets for authentication using CHAP # client[TAB]server[TAB]secret[TAB]IP addresses username[TAB]*[TAB]mon_mot_de_passe[TAB]*
- Relancer le service
service pptpd restart
- Il faut activer lâIP Forwarding sur le serveur afin de pouvoir surfer en sortant du VPN. Pour cela, dans le fichier /etc/sysctl.conf, ajouter la ligne suivante
net.ipv4.ip_forward=1
- Lancer la commande suivante pour prendre en compte le changement. Ne pas oublier sinon pas dâaccĂšs Ă Internet (jâai perdu du temps sur cette commande que jâavais oubliĂ© dâappliquer) !Â
sysctl -p
Eh bien voilĂ . Votre serveur VPN est en place. Il faut maintenant le rendre accessible depuis lâextĂ©rieur. Pour cela, il faut rediriger le port 1723 en TCP vers votre Raspberry Pi. Cela se passe sur votre routeur ou box.
Le test !
Pour cela, jâai pris mon tĂ©lĂ©phone, jâai dĂ©sactivĂ© le Wi-Fi pour ĂȘtre certain de passer par la 3G (3G+, H+, 4G, bref vous avez compris). Et ensuite jâai pleurĂ©. Nâachetez pas de Windows Phone ! Pas de VPN intĂ©grĂ©, et pas de client VPN non plus !
Donc la solution a Ă©tĂ© de forcer le tĂ©lĂ©phone Ă passer en cellulaire, puis de forcer lâiPad a passer par la 3G du tĂ©lĂ©phone et non pas par le wifi et ensuite de configurer le VPN sur lâiPad. Ouf !
Lâadresse du serveur doit ĂȘtre lâIP extĂ©rieure ou le nom de domaine de type no-ip par exemple. Ne mettez pas lâip locale type 192.168.x.y sinon de lâextĂ©rieur vous ne pourrez pas vous connecter.
Connexion en cours au VPN

Ici on voit lâIP du serveur VPN et lâip (remote) attribuĂ©e Ă lâiPad (voir Ă©tape 4 du tutoriel). En haut Ă gauche lâicĂŽne comme quoi le VPN est activĂ©.
Voilà pour votre réseau privé.
Je suis dĂ©solĂ© pour les possesseurs dâappareil Android mais je nâen ai pas Ă la maison. A priori ça semble aussi intĂ©grĂ© dans lâOS donc pas besoin de tĂ©lĂ©charger dâoutil. CotĂ© Windows, Linux et Mac Google/Bing ou autre reste votre meilleur ami et vous trouverez facilement comment configurer une connexion en VPN lorsque vous serez en dĂ©placement.
NâhĂ©sitez pas Ă donner votre impression sur cette solution : sĂ©curitĂ©, vitesse, utilisation, etc.
Source : wellsb





