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.

Raspberry Pi Home Server - Installer un serveur VPN avec PPTP

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 😉

  1. Mise à jour du système
    apt-get update && apt-get upgrade
  2. 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
  3. Installer le paquet suivant :
    apt-get install pptpd
  4. 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
  5. 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
  6. 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]*
  7. Relancer le service
    service pptpd restart
  8. 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
  9. 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 !

Raspberry Pi Home Server - Installer un serveur VPN avec PPTP

Configuration du VPN sur l’iPad

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.

Raspberry Pi Home Server - Installer un serveur VPN avec PPTP

Connexion en cours au VPN

Raspberry Pi Home Server - Installer un serveur VPN avec PPTP

Connexion établie au serveur VPN

Raspberry Pi Home Server - Installer un serveur VPN avec PPTP

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

Vous aimez cet article ? Supportez-moi sur Patreon!

Vous aimerez aussi...