PiVPN et Pi-hole : Sécurité et vie privée (VPN auto-hébergé)

Ce tutoriel a été réalisé sur un Raspberry Pi. Le Raspberry est un mini-ordinateur. Ses avantages sont qu’il est très abordable et possède une puissance correcte pour une faible consommation électrique. Il permet de réaliser de nombreux projets.

Le projet que je trouve le plus intéressant avec cet appareil est la mise en place d’un serveur VPN (PiVPN) et d’un serveur de blocage des traqueurs web et des publicités (Pi-hole). Cette installation vous permettra non seulement se bloquer les publicités et les traqueurs web mais également de sécuriser et chiffer vos flux de données jusqu’à votre domicile. Ce tutoriel s’adresse à des personnes techniques ayant des bases en réseau et en système Linux.

Pour ma part je dispose d’un Raspberry 2 équipé d’une carte micro SD de 8Go. Je branche cet appareil directement sur la box de mon opérateur. Le Raspberry fonctionne sous Raspbian 10, une version de Debian dédiée au Raspberry. Pour installer ce système d’exploitation, vous pouvez vous référer à cet article : Installation Debian.

Commencez par vous connecter à votre Raspberry en SSH. (Changez les identifiants par défaut pour plus de sécurité).

passwd

Veillez à ce que votre Raspberry et vos dépôts soient à jour avant de procéder à l’installation.

apt update
apt upgrade

Installation de PiVPN :

Tapez la commande suivante afin de télécharger le paquet pivpn :

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

Laissez l’installation se dérouler.

Le serveur vous posera ensuite quelques questions pour sa configuration.

Dans votre Box internet veillez à définir une IP à toujours attribuer au Raspberry afin que celle-ci reste fixe.

Le serveur va alors vous demander si la configuration IP reçue en DHCP vous convient.

Choisissez un utilisateur local pour conserver les configurations. Ici vous pouvez conserver celui par défaut à savoir ‘pi’.

Il vous sera ensuite demandé si vous souhaitez que les mises à jours soient configurées automatiquement. Choisissez ‘Yes’ (Vous devrez redémarrer régulièrement le serveur pour la bonne application des mises à jour)

Concernant le protocole Choisissez UDP.

Vous aurez ensuite la possibilité de choisir un port par défaut pour le service de VPN. OpenVPN utilise par défaut le port 1194. Notez que ce port peut parfois être bloqué par le pare feu de votre point de connexion en nomadisme (hotels, écoles, pays étranger,…). J’ai préféré pour ma part utiliser le port 443 qui correspond aux échanges HTTPS qui est rarement bloqué.

Vous devrez ouvrir ce port dans les options de port forwarding de votre Box en précisant l’adresse IP du serveur et le protocole UDP.

Le niveau de chiffrement à appliquer vous sera demandé. En fonction de vos ressources, je vous conseille au minimum 2048 qui est un standard robuste en 2020.

Le serveur va alors appliquer votre configuration et créer les clés de chiffrement (Cela prend plusieurs minutes).

Vous aurez le choix entre télécharger les paramètres de chiffrement en ligne ou les configurer depuis votre serveur. Choisissez ‘No’ si vous voulez gagner du temps.

L’assistant de configuration vous demandera alors entre l’utilisation de votre IP publique ou une entrée DNS. Je vous recommande d’utiliser une entrée DNS car votre adresse IP publique est susceptible de changer au cours du temps. Vous pouvez passer par un service tel que No-IP qui est totalement gratuit. Vous devrez alors configurer un DNS dynamique dans votre Box. Vous devrez également renseigner votre nom DNS à cette étape de la configuration du type : ‘example.ddns.net’.

Puis vous devrez choisir vos serveurs DNS. Pour ma part, je me repose sur ceux de mon opérateur. Je choisis donc Custom et je renseigne l’adresse IP 10.8.0.1 qui correspondra a l’IP de pi-hole pour le tunnel VPN.

A ce moment vous avez terminé la configuration de votre serveur. Vous allez maintenant pouvoir la tester.

Redémarrez votre Raspberry pour la prise en compte des modifications.

Pour ajouter un profil PiVPN, utilisez la commande suivante :

pivpn add

Renseignez alors un nom d’utilisateur et un mot de passe pour ce profil. Un fichier *.ovpn sera généré dan le répertoire /home/pi/ovpns.

Vous pourrez récupérer ce fichier sur votre ordinateur avec le logiciel WinSCP par exemple qui vous permet de naviguer dans l’arborescence de votre machine à la manière de Windows via une connexion SSH.

Une fois le fichier récupéré, installé un client openvpn (Windows, Android…).

Vous devrez alors importer un profil. Sélectionnez alors le fichier *.ovpn préalablement récupéré.

Cliquez ensuite sur connecter pour initier la connexion.

Voici quelques commandes utilies côté serveur pour paramétrer vos profils :

Pour afficher les clients connectés :

pivpn clients

Pour afficher la liste des profils :

pivpn list

Pour révoquer un profil :

pivpn revoke

Et pour ajouter un nouveau profil, ce sera toujours la commande :

pivpn add

Installation de Pi-hole :

Tapez la commande suivant pour télécharger le paquet pi-hole :

curl -sSL https://install.pi-hole.net | bash

L’installation va alors débuter.

Choisissez l’interface sur laquelle on va configurer pi-hole. Pour ma part, j’ai choisi tun0 afin de monitorer tout le trafic venant de mes clients PiVPN.

Choisissez ensuite un fournisseur de DNS. Pour ma part, je m’appuie toujours sur le DNS de ma Box en renseignant l’adresse IP de ma Box dans l’option Custom.

On vous demandera alors de choisir les listes de blocage que vous souhaitez. J’utilise les choix par défauts qui sont très complets. Vous pourrez en ajouter par la suite.

Choisissez le fonctionnement sur les protocoles IPv4 et IPv6.

Validez les paramètres IP de votre configuration.

Validez également l’installation de l’interface web d’administration afin de faciliter vos démarches par la suite (Utilisez les paramètres recommandés).

L’installation va alors se terminer.

Vous pourrez ensuite joindre votre serveur via son interface web en tapant l’adresse IP de votre serveur suivi de ‘/admin’. Vous devriez alors arriver sur une interface similaire :

Pour mettre à jour Pi-hole, utilisez la commande :

pihole -up

Les listes de blocages sont mises à jours toutes les semaines par défaut. Vous pouvez en ajouter d’autres depuis l’interface web.


Sources :

Korben (PiVPN)

Sylvain Durand (Pi-hole)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *