Guides

Utiliser Pi-hole et le VPN Mullvad sur un Raspberry Pi

Utiliser Pi-hole et le VPN Mullvad sur un Raspberry Pi
Table des matieres

Introduction

Vous craignez que votre fournisseur d'accès Internet vous espionne et lise tout le trafic de votre réseau domestique ? Vous en avez assez de voir des publicités partout ? Ou vous n'aimez simplement pas l'idée qu'une entreprise puisse voir et suivre chaque mouvement de souris et chaque frappe lorsque vous naviguez ?

Si ce sont vos préoccupations, vous êtes au bon endroit. Dans ce guide pratique, nous allons configurer un bloqueur de publicités et de traceurs pour tout le réseau, une sorte de bouclier numérique entre vous, votre fournisseur et les sociétés d'analyse.

Nous utiliserons Pi-hole (un système de filtrage DNS très populaire) pour bloquer les publicités et les traceurs, ainsi que le VPN Mullvad (un fournisseur très respectueux de la vie privée) pour cacher votre trafic Web à votre fournisseur.

Ce dont nous avons besoin

Raspberry Pi

L'élément principal est le Raspberry Pi, un petit ordinateur connu qui permet de tester des projets chez soi sans serveur coûteux. Son processeur ARM et sa mémoire suffisent largement à notre bouclier réseau.

Présentation du Raspberry Pi

Nous utiliserons Raspberry Pi OS, plus précisément la version Lite sans interface graphique. Une variante de 4 ou 8 Go est recommandée, même si l'installation en consommera bien moins. Des notions de terminal et de connexions SSH sont également nécessaires.

Mullvad

Ce projet nécessite un compte Mullvad. Ce fournisseur VPN populaire et respectueux de la vie privée ne demande même pas d'adresse e-mail : un numéro de compte aléatoire suffit, sans mot de passe.

Présentation du VPN Mullvad

Mullvad applique une politique stricte de non-conservation des journaux et ne stocke ni l'historique du trafic, ni les requêtes DNS, ni les horaires de connexion, ni les adresses IP, ni la consommation de bande passante. C'est un excellent choix pour éloigner votre trafic de votre fournisseur. J'ai aussi choisi Mullvad pour son attachement à la liberté d'expression et à un Internet ouvert.

1. Préparer le Raspberry Pi

Cette guide ne couvre pas l'installation du système ; nous passons directement à la configuration réseau. De nombreux guides détaillés sont disponibles en ligne. Commençons par configurer l'adresse IP du Pi.

2. Définir une IP statique

Pour utiliser le Raspberry Pi comme serveur DNS (Pi-hole) et passerelle (Mullvad), nous devons définir une IP statique. Une adresse attribuée par DHCP peut changer et empêcher les autres appareils de retrouver le Pi. Nous allons donc utiliser NetworkManager pour fixer une adresse.

Lister les interfaces réseau

Terminal
nmcli con show

Liste des connexions NetworkManager

Dans mon cas, la connexion s'appelle netplan-eth0 et le périphérique eth0.

Configurer avec l'interface texte

Vous pouvez utiliser l'interface simple ou la ligne de commande. Pour ouvrir l'interface :

Terminal
sudo nmtui

Ou depuis la ligne de commande

Cette méthode est plus rapide. Remplacez les noms et adresses par ceux de votre réseau.

Terminal
sudo nmcli con mod netplan-eth0 ipv4.addresses "192.168.21.82/24" ipv4.gateway "192.168.21.1" ipv4.dns "192.168.21.1,1.1.1.1" ipv4.method manual

Appliquer les changements

Terminal
sudo nmcli device reapply eth0

Vérifier l'interface

Vérifiez que l'adresse, la passerelle et le DNS correspondent aux valeurs définies.

Terminal
nmcli device show eth0

Détails de l'interface NetworkManager

Le Raspberry Pi possède maintenant une IP statique. En SSH, la connexion peut être interrompue ; reconnectez-vous avec la nouvelle adresse.

3. Installer Pi-hole

Mettre d'abord le système à jour

Installez les dernières mises à jour et redémarrez le Pi :

Terminal
sudo apt update && sudo apt full-upgrade -ysudo reboot

Mise à jour du système Raspberry Pi

Installer Pi-hole

Utilisez l'installateur officiel en une étape. Vous pouvez examiner le script avant de l'exécuter.

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

Écran d'accueil de l'installateur Pi-hole

Confirmez l'IP statique et cliquez sur Continue.

Sélection d'interface de l'installateur Pi-hole

Choisissez Cloudflare comme DNS amont pour le moment ; nous le changerons lorsque Mullvad fonctionnera.

Sélection du DNS amont Pi-hole

Confirmez la liste StevenBlack Unified Hosts, un bon point de départ pour bloquer les domaines publicitaires et de suivi.

Installation Pi-hole terminée

L'installation est terminée. Notez le lien du panneau et le mot de passe : http://<pi-ip>/admin ou http://pi.hole/admin.

Connexion à l'interface Web Pi-hole

Définir un nouveau mot de passe

Changez le mot de passe généré depuis le terminal et n'en réutilisez jamais un autre.

Terminal
sudo pihole setpassword

Tableau de bord Pi-hole

Le bloqueur réseau fonctionne. Consultez la documentation officielle pour en savoir plus.

4. Configurer le DNS du réseau

Pi-hole ne filtre que les requêtes qu'il reçoit. Configurez le DHCP du routeur pour distribuer l'IP du Raspberry Pi comme DNS principal, puis renouvelez les baux ou reconnectez les clients. Si le routeur ne le permet pas, configurez chaque appareil manuellement. Le Pi peut aussi utiliser Pi-hole via /etc/dhcpcd.conf ou NetworkManager ; une mauvaise configuration peut couper la connexion.

5. Installer WireGuard et Mullvad

Une fois Pi-hole opérationnel, installez WireGuard. WireGuard crée un tunnel VPN chiffré, léger et rapide. Mullvad fournit le fichier de configuration ; WireGuard le lit, établit la connexion et achemine le trafic, tandis que Pi-hole filtre le DNS.

Installer WireGuard

Terminal
sudo apt install wireguard wireguard-tools resolvconf -y

Installation de WireGuard

Configurer WireGuard

Téléchargez depuis votre compte Mullvad une configuration WireGuard pour Linux, choisissez un serveur et enregistrez-la sous mullvad.conf dans /etc/wireguard.

Terminal
sudo chmod 600 /etc/wireguard/mullvad.conf

Démarrer et vérifier le tunnel

Terminal
sudo wg-quick up mullvad
Terminal
sudo wg showcurl https://am.i.mullvad.net/connected

Vous devez voir "You are connected to Mullvad". Activez ensuite le démarrage automatique :

Terminal
sudo systemctl enable wg-quick@mullvad

Service WireGuard activé

Pour arrêter le tunnel pendant le dépannage :

Terminal
sudo wg-quick down mullvad

Acheminer le trafic par Mullvad

Pour les autres appareils, le Pi doit transférer et masquer le trafic. Nous supposons que :

  • L'interface LAN est eth0.
  • L'interface WireGuard Mullvad est mullvad, car le fichier s'appelle mullvad.conf.
  • L'adresse LAN du Raspberry Pi est 192.168.21.82.

Remplacez les valeurs d'exemple par les vôtres. Vérifiez les interfaces avec :

Terminal
ip link show

Si elle s'appelle wg0, remplacez mullvad par wg0.

Activer le transfert IPv4

Terminal
sudo sysctl net.ipv4.ip_forward

Transfert IPv4 désactivé

La valeur doit être 1. Si elle vaut 0, activez-la :

Terminal
sudo sysctl -w net.ipv4.ip_forward=1

Rendez le réglage permanent :

Terminal
echo 'net.ipv4.ip_forward=1' | sudo tee /etc/sysctl.d/99-router.confsudo sysctl --system
Terminal
sudo sysctl net.ipv4.ip_forward

Transfert IPv4 activé

Autoriser le transfert et ajouter le NAT

Terminal
sudo iptables -A FORWARD -i eth0 -o mullvad -j ACCEPTsudo iptables -A FORWARD -i mullvad -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Terminal
sudo iptables -t nat -A POSTROUTING -o mullvad -j MASQUERADE

Installez l'outil de persistance :

Terminal
sudo apt install iptables-persistent -y

Configuration IPv4 enregistrée

Configuration IPv6 enregistrée

Terminal
sudo netfilter-persistent save

Règles de pare-feu persistantes

Configurer les appareils réseau

Utilisez ces valeurs sur chaque appareil :

  • Une IP dans le même LAN que le Raspberry Pi.
  • L'IP du Raspberry Pi comme passerelle par défaut.
  • L'IP du Raspberry Pi comme serveur DNS.

Tester la route par étapes

Terminal
ping 192.168.21.82

Puis testez le DNS Cloudflare 1.1.1.1 :

Terminal
ping 1.1.1.1

Enfin, testez la résolution DNS :

Terminal
nslookup example.com

En cas d'échec :

  • Si le premier test échoue, vérifiez le réseau et la passerelle du PC.
  • Si le premier réussit mais que 1.1.1.1 échoue, vérifiez le transfert IPv4, le NAT et le pare-feu Mullvad.
  • Si l'IP publique fonctionne mais pas le DNS, vérifiez que Pi-hole écoute sur le LAN et que le PC l'utilise comme DNS.
Terminal
sudo wg show

Vérification du trafic Mullvad

Les compteurs doivent augmenter. Vérifiez l'adresse publique depuis le PC :

Terminal
curl https://am.i.mullvad.net/connected

Sortie de la commande de connexion Mullvad

6. Vérifier notre sécurité

Ouvrez la vérification de connexion Mullvad et contrôlez l'IP de sortie ainsi que les résolveurs DNS.

Vérification de connexion Mullvad

Comprendre le résultat

  • Si l'IP de sortie appartient à Mullvad, comme **it-mil-wg-001** à Milan, le trafic passe correctement par Mullvad.
  • Si les résolveurs sont des adresses Cloudflare telles que **172.70.x.x**, **1.1.1.1** ou l'adresse IPv6 correspondante, Pi-hole transmet actuellement les requêtes à Cloudflare.

En général, Using Mullvad VPN et No WebRTC leaks sont verts, tandis que No DNS leaks est rouge, car Cloudflare n'est pas exploité par Mullvad.

Rendre le contrôle DNS vert

Remplacez le DNS amont de Pi-hole par un DNS Mullvad :

  • 1
    DNS interne Mullvad : 10.64.0.1. Fonctionne uniquement avec le tunnel WireGuard actif.
  • 2
    DNS public Mullvad sans filtrage : 194.242.2.2. Fonctionne même si le tunnel tombe brièvement.
  • 3
    DNS public Mullvad avec blocage des publicités, traceurs et logiciels malveillants : 194.242.2.4.
  • 4
    DNS public Mullvad avec blocage des publicités uniquement : 194.242.2.3.

Dans le tableau de bord Pi-hole :

  • 1
    Ouvrez l'interface d'administration Pi-hole.
  • 2
    Allez dans Settings, puis DNS.
  • 3
    Sous Upstream DNS Servers, désélectionnez Cloudflare et les autres fournisseurs.
  • 4
    Sélectionnez Custom et saisissez une adresse DNS Mullvad. Ajoutez IPv4 et IPv6 si nécessaire.
  • 5
    Cliquez sur Save en bas de la page.

Paramètres DNS Pi-hole

Attendez quelques secondes, puis relancez le test sur mullvad.net/check. No DNS leaks devrait être vert.

Si une fuite DNS est toujours signalée

Le navigateur utilise souvent son propre DNS over HTTPS et ignore Pi-hole. Désactivez donc le DNS sécurisé.

Firefox

  • 1
    Ouvrez Settings, puis Privacy & Security.
  • 2
    Faites défiler jusqu'à DNS over HTTPS.
  • 3
    Sélectionnez Off.
  • 4
    Redémarrez Firefox et relancez le test Mullvad.

Chrome

  • 1
    Ouvrez chrome://settings/security.
  • 2
    Dans Use secure DNS, désactivez l'option.
  • 3
    Redémarrez Chrome et relancez le test Mullvad.

Edge

  • 1
    Ouvrez edge://settings/privacy.
  • 2
    Trouvez Use secure DNS et désactivez-le.
  • 3
    Redémarrez Edge et relancez le test Mullvad.

Si le résultat ne change pas, essayez une fenêtre privée ou un autre navigateur pour identifier la source de la fuite.

Conclusion

Votre Raspberry Pi agit maintenant comme bloqueur de publicités et de traceurs pour tout le réseau et achemine le trafic par le VPN Mullvad. Maintenez Raspberry Pi OS, Pi-hole, WireGuard et la configuration Mullvad à jour pour conserver une installation fiable et sécurisée.

Voilà, c'est terminé pour aujourd'hui. J'espère que ce guide vous a plu !

Questions frequentes

Trouvez des reponses rapides aux questions les plus courantes sur ce sujet.

À quoi sert l'utilisation de Pi-hole avec Mullvad sur un Raspberry Pi ?

Pi-hole bloque les publicités et les traceurs au niveau DNS, tandis que Mullvad achemine le trafic Internet dans un tunnel VPN chiffré. Ensemble, ils assurent un filtrage DNS à l'échelle du réseau et une protection VPN aux appareils qui utilisent le Raspberry Pi comme serveur DNS et passerelle.

Un Raspberry Pi peut-il exécuter Pi-hole et Mullvad WireGuard simultanément ?

Oui. Il peut exécuter Pi-hole comme serveur DNS du réseau et WireGuard comme client VPN Mullvad. Avec le transfert IPv4 et le NAT configurés, il peut aussi acheminer le trafic des autres appareils dans le tunnel VPN.

Pourquoi le Raspberry Pi a-t-il besoin d'une adresse IP statique ?

Il lui faut une adresse stable pour que les autres appareils puissent toujours le trouver comme serveur DNS et passerelle. Une adresse DHCP changeante pourrait interrompre le filtrage DNS et empêcher les appareils d'atteindre la passerelle VPN.

Comment acheminer le trafic de mon réseau domestique par Mullvad ?

Activez le transfert IPv4, autorisez le transfert entre les interfaces LAN et WireGuard, ajoutez une règle de masquerade pour l'interface VPN et configurez chaque appareil afin qu'il utilise le Pi comme passerelle et serveur DNS.

Quel serveur DNS Mullvad utiliser avec Pi-hole ?

Utilisez le DNS interne Mullvad 10.64.0.1 lorsque le tunnel WireGuard est actif. Pour le DNS public Mullvad, utilisez 194.242.2.2 sans filtrage, 194.242.2.4 avec blocage des publicités et traceurs, ou 194.242.2.3 avec blocage des publicités uniquement.

Pourquoi la vérification Mullvad signale-t-elle une fuite DNS avec Cloudflare ?

Cloudflare n'est pas exploité par Mullvad ; sa vérification peut donc signaler une fuite même si le tunnel fonctionne correctement. Pour afficher No DNS leaks, configurez Pi-hole avec un résolveur DNS Mullvad plutôt qu'avec Cloudflare.

Comment corriger une fuite DNS causée par le navigateur ?

Désactivez DNS over HTTPS ou le DNS sécurisé dans le navigateur, puis relancez la vérification Mullvad. Si le résultat ne change pas, testez une fenêtre privée ou un autre navigateur pour déterminer s'il contourne Pi-hole.

Bruma

Auteur

Bruma

Publie:
Mis a jour: