Skip to main content

PiVPN

PiVPN, c’est un outil super pratique pour ceux qui veulent mettre en place leur propre VPN à la maison, facilement et à moindre coût. Il s’installe sur un Raspberry Pi (d’où son nom), mais il peut aussi fonctionner sur d’autres machines Linux. Avec PiVPN, tu peux sécuriser tes connexions internet, accéder à ton réseau local à distance, ou contourner certaines restrictions géographiques. PiVPN automatise le processus de configuration de VPN, simplifiant une tâche qui peut être complexe pour les utilisateurs novices.

 WireGuard et OpenVPN

1. Performance de la machine (utilisation du processeur)

  • WireGuard : Utilise beaucoup moins de ressources CPU grâce à son design minimaliste et son utilisation de primitives cryptographiques modernes.

    • Différence : WireGuard consomme 40% à 70% moins de CPU qu'OpenVPN lors d'une utilisation intensive.
  • OpenVPN : Plus gourmand en CPU, surtout lorsqu'il utilise des algorithmes cryptographiques plus complexes comme AES-256.

2. Débit (vitesse de connexion)

  • WireGuard : Optimisé pour des débits élevés. Il peut atteindre 20% à 300% de débit supplémentaire par rapport à OpenVPN, surtout sur des connexions avec une faible latence.

    • Par exemple : Sur une même machine, WireGuard pourrait atteindre 900 Mbps tandis qu'OpenVPN plafonnerait à 300 Mbps.
  • OpenVPN : Limité par son architecture qui nécessite plus de cycles CPU pour le chiffrement et le décodage.

3. Nombre de connexions simultanées

  • WireGuard : Peut gérer davantage de connexions simultanées en raison de sa faible consommation de ressources. Environ 30% à 50% de connexions supplémentaires sont possibles sur le même matériel.

  • OpenVPN : Peut gérer moins de connexions simultanées car chaque tunnel consomme plus de ressources CPU et mémoire.

4. Latence

  • WireGuard : A une latence plus faible, environ 10% à 50% de réduction de la latence par rapport à OpenVPN, car il n'implémente pas autant de couches protocolaires.

  • OpenVPN : La latence est plus élevée, en partie en raison de la surcharge de TLS et de son modèle client-serveur.

WireGuard est nettement plus performant qu’OpenVPN dans presque tous les domaines techniques, particulièrement sur des machines légères comme un Raspberry Pi. OpenVPN reste cependant pertinent lorsqu’une compatibilité étendue ou des fonctionnalités spécifiques comme des configurations multi-authentifications sont nécessaires.

Ici je vais vous présenter les deux situations avec WireGuard et OpenVPN.

Installation WireGuard

Assurez vous de mettre à jour votre Raspberry Pi.  Une fois cela fait, le processus d'installation est rapide et ne requiert qu'une seule commande à exécuter : 

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

image.png

Configuration

La configuration est relativement facile à réaliser en suivant le guide, bien qu'il soit en anglais. Les étapes ne sont pas particulièrement complexes : vous décidez d'abord si le Raspberry Pi fonctionnera en mode DHCP ou avec une adresse IP fixe (recommandé pour faciliter la redirection sur votre box). Ensuite, vous choisissez l'utilisateur (User) qui sera autorisé à administrer le serveur VPN.

image.png

Dans mon cas, seul l'utilisateur "said" est configuré sur mon matériel. Vient ensuite l'étape où il faut choisir le mode d'installation, c’est-à-dire le type de service VPN à déployer : OpenVPN ou WireGuard. 

image.png

Nous sommes presque à la fin ! Il reste à spécifier le port à utiliser et à rediriger vers votre Raspberry Pi. Pour WireGuard, le port par défaut est le 51820 (UDP). Sur l'avant-dernier écran, il vous sera demandé de choisir un fournisseur de DNS pour les clients. Si vous utilisez AdGuard ou PiHole dans votre réseau pour bloquer les publicités, c'est l'occasion de sélectionner l'option "Custom" (tout en bas de la liste) et d'y entrer le nom ou l'adresse IP de votre service. Vous pouvez en ajouter deux, séparés par une virgule.

image.png

Enfin, il vous sera demandé de choisir la méthode de connexion à votre serveur VPN : soit en utilisant l’adresse IP publique de votre box, soit en optant pour un domaine DNS (Domaine/Dynamic DNS). Si vous sélectionnez cette dernière option, vous devrez indiquer le nom de domaine (par exemple : domaine.fr/.com/.org…). Et voilà, l’installation et la configuration de votre VPN avec PiVPN sont désormais terminées.

image.png

Un message vous suggérera d'activer les Unattended Upgrades pour automatiser les mises à jour de sécurité. Enfin, il est conseillé de redémarrer votre Raspberry Pi après l'installation de PiVPN. Veillez à configurer correctement votre routeur en ouvrant ce port dans les règles NAT/PAT.

image.png

Ajout d’un utilisateur/périphérique

Pour ajouter un appareil, il vous suffira ensuite de taper la commande suivante :

pivpn -a

image.png

Installation OpenVPN

Avec OpenVPN, peu d'éléments diffèrent durant l'installation.
À cette étape, vous devrez choisir entre OpenVPN et WireGuard.

image.png

PiVPN vous offre ensuite la possibilité de choisir entre les protocoles UDP et TCP. Une configuration en UDP est généralement plus rapide, car les paquets sont envoyés sans nécessiter de confirmation de réception. En revanche, avec le protocole TCP, chaque paquet est confirmé à l’arrivée, ce qui permet une vérification de leur intégrité, mais au prix d’une vitesse légèrement réduite.

image.png

Vous devrez ensuite sélectionner le port que votre serveur OpenVPN utilisera. Par défaut, le port 1194 est suggéré, mais vous êtes libre d’en choisir un autre en fonction de vos besoins. Assurez vous toutefois d’ouvrir ce port dans les règles NAT/PAT de votre routeur pour permettre le bon fonctionnement du serveur.

image.png

Vous aurez le choix entre trois niveaux de chiffrement. Sélectionnez celui qui correspond le mieux à vos besoins. Un chiffrement de 4096 bits peut significativement ralentir la connexion. Pour notre part, nous avons opté pour l’option recommandée, le chiffrement de 2048 bits.

image.png

Commandes PiVPN

image.png