Connexion VPN via le Wireguard de la Freebox et utiliser le DNS local de type PiHole AdGuard

# Introduction & Adguard

J’ai en brouillon plusieurs articles et tutoriaux sur Adguard (l’équivalent de Pihole) que je fais tourner chez moi en local sur une machine via Yunohost. L’IP de la machine Yunohost (et donc de Adguard) est défini comme DNS par défaut fournie aux machines du réseau qui se connecte en DHCP (la Freebox sert de routeur). Ainsi toutes les machines du réseau bénéficie d’un filtrage des DNS pour bloquer publicités, tracker etc. (Fonctionnalités apportées par un PiHole/Adguard).

Le présent tutoriel n’a rien de spécifique et s’adapte facilement à toute configuration où il y a un serveur PiHole/Adguard et un serveur VPN Wireguard.

# Wireguard sur la Freebox

Sur la Freebox, j’ai activé la fonctionnalité de serveur Wireguard. Ainsi quand je suis à distance, je peux me connecter via un client sur le service VPN Wireguard de la Freebox (sur smartphone ou PC) et je surfe alors comme si j’étais chez moi (en affichant l’IP publique de ma box Freebox et non plus celle du réseau local), je sécurise ma connexion en chiffrant entre mon appareil et ma Freebox chez moi.

Dans l’interface de Freebox OS, j’ai crée un utilisateur, un compte Wireguard et récupéré le fichier généré.

On trouve facilement des tutoriels sur comment faire.

# Quelques explications sur le fichier généré

J’ai activé le serveur VPN sur différentes Freeebox (chez mes parents, une Mini 4k ; chez moi, une Freebox Révolution).

Voici les explications sur le contenu du fichier à fournir au client Wireguard. Comprendre permettra de modifier et d’adapter par la suite à des besoins plus avancés (qui ne sont pas le sujet de cet article).

[Interface] PrivateKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Address = 192.168.27.68/32 DNS = 212.27.38.253 MTU = 1360 [Peer] PublicKey = /XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX= Endpoint = 82.XX.YY.ZZ:ABCD AllowedIPs = 0.0.0.0/0, 192.168.27.64/27, 192.168.0.0/24

Avec cette configuration, quand on se connecte avec le client Wireguard, on a accès au réseau local et on passe par la Freebox pour aller sur Internet. C’est comme si on était sur le réseau local.

L’adresse dans l’Interface est toujours sur la plage 192.168.27.6X/27.

La plage IP fournie en DHCP au réseau local est sur la plage 192.168.X.0/24

Pour que Wireguard puisse atteindre le réseau privé, il faut autoriser le dit réseau dans les AllowedIPs du Peer et il faut aussi autoriser le trafic de l’IP du client à atteindre le réseau. C’est ce qu’on retrouve dans le fichier de conf généré par la Freebox.

AllowedIPs = 0.0.0.0/0, 192.168.27.64/27, 192.168.X.0/24 (X à remplacer par la plage IP privée de la freebox)

Remarque : si vous ne voulez pas que le trafic internet passe par la Freebox, (mais soit en direct) et utiliser le VPN uniquement pour la connexion au réseau local, il faut supprimer 0.0.0.0/0

# Modification à apporter à la configuration par défaut

On est donc sur le réseau local, à une différence prêt : on a une IP routée différentes des IP fournies par le DHCP, et on a par défaut, usage du DNS indiqué, 212.27.38.253, qui est celui de Free.

C’est cette adresse IP qui est à remplacer par l’IP de son PI Hole/Adguard. Dans mon cas ça donne

[Interface] PrivateKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Address = 192.168.27.68/32 DNS = 192.168.0.1 MTU = 1360

Et comme le réseau local est accessible, la machine utilise alors le serveur PiHole/Adguard pour la résolution DNS.

# Comment vérifier ?

Tout simplement en allant l’interface web du PiHole/Adguard et on voit alors les requêtes émises par la machine (avec date & heure de connexion).

# Aller plus loin

Si on a une configuration particulière pour certaines machines, comme des NAS avec un parefeu, pour atteindre le NAS qui est sur la plage d’IP du réseau local (en 192.168.x.x), il faut bien évidemment que la plage d’IP de Wireguard soit autorisée dans le parefeu du NAS (il faut y ajouter la plage 192.168.27.64/27 comme autorisée dans le parefeu).

Laisser un commentaire

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