VPN Raspberry Pi

Créer son propre serveur VPN pour chiffrer vos activités en ligne gratuitement : c’est l’une des larges possibilités qu’offre le Raspberry Pi et que nous vous proposons de découvrir ici. Un projet abordable et facile à réaliser, qui vient compléter notre top 10 des meilleurs projets pour débuter avec un Raspberry Pi.

Les offres d’abonnement VPN pullulent sur le web avec des services dont la principale préoccupation est de mieux protéger notre vie privée sur la toile. Encore faut-il juger de la pertinence des VPN, payants comme gratuits, et de leur efficacité pour y placer sa confiance.

Et pourquoi ne pas se contenter de sa propre connexion à internet et d’un Raspberry Pi pour configurer un serveur VPN ? Celui-ci comporte quelques limites et ne permettra pas de contourner d’éventuels blocages géographiques, mais il établira une passerelle entre vos appareils et internet et chiffrera les données qui y transitent. Un tel serveur peut se révéler très utile au quotidien, pour protéger votre vie privée, se connecter en toute sécurité sur des réseaux Wi-Fi publics, ou encore pour accéder à votre réseau local depuis l’extérieur. Dans ce dernier cas, la vitesse de la connexion internet sera bien entendu relativement faible, elle correspondra en effet au débit montant de votre abonnement internet.

Pour conclure cette introduction, précisons que ce tutoriel ne vous permet pas « d’anonymiser » votre connexion : vos requêtes sembleront toujours provenir de votre réseau domestique, à la différence qu’elles seront chiffrées, ce pour quoi cette solution ne permet pas de contourner le filtre géographique Netflix, entre autres.

PiVPN, c’est quoi ?

Avant de détailler la méthode, somme toute très simple, il convient de présenter brièvement ce qu’est PiVPN et comment tout cela fonctionne. PiVPN n’est autre qu’un ensemble de scripts open source permettant d’installer, de configurer et de gérer un serveur VPN via les protocoles OpenVPN 2.4 ou WireGuard.

PiVPN

Développé et maintenu à jour par une communauté de passionnés, PiVPN comporte plusieurs intérêts qui le destinent aux novices comme aux experts : entièrement paramétrable, cet outil a été conçu pour être déployé sur Raspberry Pi, mais fonctionne sur n’importe quel serveur Debian VPS. Parmi ses fonctionnalités, on profite d’une clé de chiffrement à courbe elliptique jusqu’à 512 bits, d’une prise en charge de la keychain d’iOS, de serveurs DNS multiples et personnalisés, d’une intégration à Bitwarden ou encore du support de Pi-Hole. Enfin, il est possible d’utiliser des noms de domaines personnalisés si vous optez pour le protocole OpenVPN.

OpenVPN, WireGuard : quel protocole choisir ?

Comme la majorité des services VPN à l’heure actuelle, PiVPN se repose, au choix, sur les protocoles OpenVPN et WireGuard. OpenVPN reste selon nous le protocole à privilégier pour un maximum de sécurité. De son côté, WireGuard est un protocole récent et très prometteur, nous le conseillons davantage pour être utilisés sur les appareils mobiles, car étant beaucoup moins gourmands en ressources, il ménagera la durée de vie des batteries de smartphones et autres tablettes.

Si vous souhaitez en apprendre davantage à ce sujet, consultez notre article qui explore les protocoles qu’utilise un VPN.

Matériels et logiciels

Comme évoqué en introduction, ce projet est très abordable et ne nécessite pas de matériel particulier, hormis un Raspberry Pi !
À ce sujet, vous pouvez réaliser ce projet avec n’importe quel modèle de Raspberry Pi, mais les performances seront meilleures en optant au minimum pour un Raspberry Pi 3. Ne vous reste ensuite qu’à vous équiper d’une carte microSD d’une capacité d’au moins 8 Go pour débuter.

Un Raspberry Pi 3B+ suffit amplement pour exécuter OpenVPN

Du côté logiciel, il vous faudra flasher votre carte SD avec la dernière image de Raspberry Pi OS, à l’aide de Raspberry Pi Imager ou balenaEtcher notamment. Inutile de télécharger la version complète de Raspberry Pi OS, la version Lite suffira. Si ce n’est pas déjà fait, activez le SSH, changez le mot de passe par défaut et tenez à jour le système d’exploitation.

Vous serez également amené à configurer votre box internet, il s’agira simplement d’ouvrir un port pour rendre accessible votre serveur VPN depuis l’extérieur. Il y a également deux autres points sur lesquelles nous n’allons pas revenir au sein de cet article, mais dont vous aurez peut-être l’utilité selon vos besoins et exigences : la mise en place d’un DDNS (Dynamic DNS) pour lier un nom de domaine à une adresse IP, chose qu’il est possible de faire gratuitement avec No-IP, ou encore l’installation de DNSCrypt, permettant de chiffrer les requêtes DNS quand bien même vous sélectionnerez un fournisseur DNS sécurisé.

Installation de PiVPN

OpenVPN peut parfaitement être installé et configuré manuellement sur votre Raspberry Pi, mais PiVPN offre une solution clé en main et rapide, idéale pour les débutants. À vrai dire, son installation se résume pratiquement à l’exécution d’une commande dans le terminal. Une fois votre Pi démarré, il suffit ainsi d’entrer la commande suivante pour installer OpenVPN :

curl -L https://install.pivpn.io | bash

Le téléchargement et l’installation des packages correspondants demandent quelques minutes d’attentes avant de déboucher sur une configuration pas à pas.

Pour commencer, PiVPN vous informe qu’il nécessite une adresse IP statique attribuée par votre routeur via DHCP. Sur la deuxième page de configuration, vous serez amené à valider cette attribution DHCP ou à configurer manuellement une adresse IP fixe.

PiVPN vous demande ensuite de choisir un utilisateur local, logiquement il s’agit de « Pi ». C’est cet utilisateur qui aura toutes les autorisations pour gérer le fonctionnement et les fichiers de configuration d’OpenVPN.

Se voulant synonyme de simplicité, PiVPN vous propose ensuite de gérer pour vous les mises à jour de sécurité. Sélectionner Yes pour l’y autoriser.

C’est à ce moment que vous allez avoir le choix entre OpenVPN et Wireguard.

PiVPN vous laisse ensuite le choix entre protocoles UDP ou TCP. Une configuration UDP sera plus rapide car elle transmet les paquets sans attendre de confirmation. Dans le cas contraire, une configuration TCP demande confirmation de la réception des paquets, avec à la clé une vérification de leur intégrité.

Vous êtes ensuite amené à choisir le port que votre serveur OpenVPN utilisera. Le port 1194 est proposé par défaut, mais vous pouvez choisir à votre guise selon vos besoins. N’oubliez pas de bien ouvrir ce port dans les règles NAT/PAT de votre routeur.

Sélectionner le fournisseur de DNS de votre choix. Si la confidentialité est un enjeu pour vous, il est préférable de se passer de Google. Nous avons sélectionné Quad9, qui ne collecte pas les données de ses utilisateurs.

Trois niveaux de chiffrement vous sont ensuite proposés, choisissez celui qui vous convient le mieux. Le chiffrement de 4096-bit risque de considérablement ralentir notre connexion, nous avons conservé l’option recommandée, 2048-bit.

Avant de terminer, il vous est proposé d’activer les fonctionnalités d’OpenVPN 2.4, chose que nous vous recommandons de faire, hormis si vous utilisez des applications qui ne le prenne pas charge.

Une fois l’installation terminée, le Raspberry Pi doit effectuer un redémarrage. Une fois exécuté, ouvrez le terminal et entrez la commande « pivpn add », vous permettant de créer un profil .ovpn.

Entrez le nom du client, si besoin modifiez la valeur par défaut pour la durée du certificat, puis choisissez un mot de passe suffisamment fort. Cette opération va générer un fichier .ovpn sous le chemin /home/pi /ovpns. Copiez ce fichier sur un support de stockage ou votre PC et conservez-le. Sachez qu’il faudra créer un profil différent pour chaque appareil avec lesquels vous souhaitez utiliser OpenVPN. Répétez l’opération si c’est le cas. Si jamais vous utilisez une URL personnalisée, éditez le fichier .ovpn pour remplacer l’IP par votre URL.

Se connecter à votre propre serveur VPN

Il ne nous reste plus qu’à nous connecter à notre serveur VPN depuis n’importe quel appareil. Pour cela, il suffit de télécharger et installer OpenVPN Connect, disponible pour de nombreuses plateformes, y compris macOS et iOS, Android, Windows et ainsi de suite. Précisons qu’il existe d’autres programmes qui font l’affaire, tel que Tunnelblick pour macOS ou encore Viscosity, pour macOS comme Windows.

Il suffit alors de lancer OpenVPN Connect, puis de cliquer sur « Add », afin d’ajouter le profil précédemment créé avec le fichier .ovpn. Entrez votre mot de passe, faites basculer l’interrupteur : vous êtes désormais connecté à votre serveur VPN, via votre connexion internet et le Raspberry Pi !

Pour gérer simplement votre VPN, tapez pivpn -command dans le terminal de votre Raspberry Pi. Vous pourrez ainsi consulter la liste des clients connectés, afficher un QR code pour connecter un client mobile, afficher les certificats valides et révoqués, ou encore révoquer des certificats.