Comment mettre en place un serveur VPN avec PiVPN ?

Les VPN auto-hébergés sont un outil extrêmement utile lorsqu'il s'agit d'avoir un homelab. Que vous soyez dans un café et sur un réseau wifi public, comme c'est mon cas en ce moment, et que vous souhaitiez créer un tunnel sécurisé vers votre propre réseau avant d'accéder à un site plus sensible, ou même que vous souhaitiez simplement être capable de vous connecter à certains des serveurs que vous hébergez, sans avoir à exposer le SSH au monde entier, un VPN auto-hébergé fera le travail et le fera bien.

En faisant des recherches sur la façon dont je voulais configurer mon VPN, je suis tombé sur PiVPN, un outil simple qui vous permet d'être opérationnel avec une connexion Wireguard ou OpenVPN. Bien que son nom indique qu'il est destiné à être exécuté sur un Raspberry Pi, il n'est pas limité à cette série particulière d'appareils.

Prérequis

Avant de commencer le processus d'installation, vous devrez décider sur quel appareil vous souhaitez héberger votre VPN et configurer les règles de transfert de port pour celui-ci.

Wireguard fonctionne traditionnellement sur le port 51820 et OpenVPN fonctionne généralement sur le port 1194, mais vous êtes libre de choisir votre propre port inutilisé pour faire fonctionner le VPN.

Installation

Maintenant que vous avez configuré votre règle de transfert de port (NAT), vous êtes prêt à commencer le processus d'installation de PiVPN.

Pour commencer, visitez https://www.pivpn.io/ et récupérez la commande suivante :

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

Après avoir exécuté la commande curl, vous verrez apparaître une interface utilisateur qui ressemble à ceci :

Après avoir cliqué sur "Ok" sur l'écran précédent, vous serez averti que votre PiVPN doit fonctionner sur un serveur avec une adresse IP statique, plutôt que dynamique. Comme nous avons mis en place une règle de transfert de port spécifiquement pour une adresse IP, si l'IP du serveur change, le VPN cessera de fonctionner.

Ensuite, il vous sera demandé de sélectionner l'utilisateur du serveur sous lequel vous souhaitez installer le service. Pour ce serveur de démonstration, je n'ai configuré qu'un seul utilisateur.

Maintenant, vous serez invité à choisir entre les deux options VPN différentes : Wireguard ou OpenVPN. Personnellement, j'ai choisi Wireguard mais je vous encourage à faire des recherches par vous-même pour voir ce qui vous convient le mieux.

Après avoir sélectionné le type de VPN que vous souhaitez installer, vous pouvez maintenant sélectionner le port sur lequel vous souhaitez faire fonctionner votre VPN. Pour cette étape, nous allons nous référer à la section Prérequis de cet article, où nous avons configuré une règle de transfert de port. Le port que nous avons ouvert dans cette étape devra s'aligner avec ce que nous entrons ici.

Dans cette étape, vous serez invité à choisir le fournisseur de DNS que vous souhaitez utiliser pour votre VPN. Personnellement, j'héberge moi-même mon DNS interne via un contrôleur de domaine. Si c'est la configuration que vous utilisez actuellement, je vous encourage vivement à utiliser l'option "Custom" à cette étape du processus d'installation et à fournir les adresses IP de vos contrôleurs de domaine exécutant le DNS. Cela sera beaucoup plus utile plus tard si vous essayez d'accéder à distance à votre lab via votre VPN.

Vous pouvez maintenant choisir d'utiliser votre adresse IP publique actuelle ou d'utiliser une entrée DNS. Pour mon installation, j'ai la chance d'avoir une adresse IP statique, donc je vais m'en tenir à la première option. Si vous n'avez pas d'adresse IP publique statique, vous pouvez utiliser un service DNS dynamique et utiliser la deuxième option présentée ci-dessus.

Cette étape vous permet d'activer les mises à jours automatiques sur votre serveur. Un VPN étant un point d'entrée critique sur votre réseau, je vous conseille vivement d'activer les mises à jours automatiques. Cela garantira que votre serveur exécute les dernières mises à jour des paquets de sécurité, protégeant ainsi votre serveur et votre réseau dans son ensemble.

Et voilà, vous devriez maintenant avoir un PiVPN fonctionnel ! Tout ce qu'il reste à faire est de générer des profils clients pour les appareils que vous souhaitez connecter à votre nouveau VPN. Il est important de générer un profil client pour chaque appareil et de ne pas les partager entre plusieurs appareils. Cela constituerait un risque pour la sécurité.

Connecter des appareils à votre PiVPN

Maintenant que notre VPN est créé, nous allons créer notre premier profil client en exécutant la commande "pivpn add".

Vous serez amené à entrer un nom pour le client que vous souhaitez ajouter, puis vous verrez une sortie comme celle-ci :

Enter a Name for the Client: walid-laptop
::: Client Keys generated
::: Client config generated
::: Updated server config
::: WireGuard reloaded
======================================================================
::: Done! walid-laptop.conf successfully created!
::: walid-laptop.conf was copied to /home/ettayeb/configs for easy transfer.
::: Please use this profile only on one device and create additional
::: profiles for other devices. You can also use pivpn -qr
::: to generate a QR Code you can scan with the mobile app.
======================================================================

Le profil devrait être stocké dans votre répertoire personnel sous /configs

~/configs$ ls -l
total 4
-rw-r----- 1 walid walid xxx xxx xx xx:xx walid-laptop.conf

Pour utiliser votre profil, vous devrez l'exporter via une méthode de votre choix, puis l'importer dans votre client VPN.  Je vous suggère d'utiliser la commande scp (ou un outil comme WinSCP si vous êtes sous Windows) pour récupérer les fichiers sur votre serveur.

Conclusion

C'est tout ce qu'il y a à faire ! Vous devriez maintenant avoir un VPN fonctionnel fonctionnant sur votre propre infrastructure de serveur, vous permettant de vous connecter en toute sécurité à votre propre réseau.

Vous vous êtes abonné avec succès à CodeClan
Parfait ! Ensuite, complétez le paiement pour obtenir un accès complet à tout le contenu premium.
Erreur ! Impossible de s'inscrire. Lien invalide.
Bienvenue ! Vous vous êtes connecté avec succès.
Erreur ! Impossible de se connecter. Veuillez réessayer.
Succès ! Votre compte est entièrement activé, vous avez maintenant accès à tout le contenu.
Erreur ! Le paiement Stripe a échoué.
Succès ! Vos informations de facturation sont mises à jour.
Erreur ! La mise à jour des informations de facturation a échoué.