Configurer un serveur DNS avec AdGuard Home et Unbound

Dans cet article, nous allons voir comment configurer un serveur DNS local robuste et respectueux de votre vie privée. L’objectif est de combiner deux outils puissants : AdGuard Home pour bloquer les publicités et les traqueurs, et Unbound pour résoudre les requêtes DNS directement à la racine (root), sans passer par les serveurs de votre FAI ou de Google.

Nous verrons également comment gérer facilement une zone DNS locale pour vos propres équipements. Ce guide est conçu pour être accessible, même si vous débutez dans la gestion de serveurs réseaux.

1. Pourquoi cette architecture ?

L’architecture que nous allons mettre en place est la suivante :

Vos appareils -> AdGuard Home -> Unbound -> Serveurs Root d’Internet

  • AdGuard Home agit comme un bouclier. Il reçoit toutes les requêtes DNS de votre réseau, filtre celles qui correspondent à des domaines malveillants ou publicitaires, et bloque ces requêtes. Il permet aussi de gérer facilement vos noms de domaine locaux.
  • Unbound est un résolveur DNS récursif. Au lieu de demander l’adresse IP d’un site à Google (8.8.8.8) ou à Cloudflare (1.1.1.1), Unbound interrogera directement les serveurs racine (root servers) d’Internet. Cela garantit qu’aucun intermédiaire ne collecte l’historique de votre navigation.

2. Prérequis

Pour suivre ce tutoriel, vous aurez besoin de :

  • Une machine sous Linux (un Raspberry Pi, un mini-PC ou une machine virtuelle sur Debian/Ubuntu fera parfaitement l’affaire).
  • Une adresse IP locale fixe pour cette machine (par exemple 192.168.1.100).
  • Des droits administrateur (root ou sudo).

3. Installation et configuration d’Unbound

Commençons par installer le moteur de résolution, Unbound.

Installation

Sur Debian/Ubuntu, l’installation se fait simplement via APT :

sudo apt update
sudo apt install unbound unbound-host

Configuration d’Unbound

Par défaut, Unbound est déjà bien configuré, mais nous allons l’optimiser et le faire écouter sur un port spécifique (le port 5335) pour laisser le port standard (53) libre pour AdGuard Home.

Créez ou modifiez le fichier /etc/unbound/unbound.conf.d/pi-hole.conf (le nom importe peu, tant qu’il finit par .conf) :

sudo nano /etc/unbound/unbound.conf.d/adguard.conf

Ajoutez la configuration suivante :

server:
    # On écoute uniquement sur l'interface locale (localhost) et sur le port 5335
    verbosity: 0
    interface: 127.0.0.1
    port: 5335
    do-ip4: yes
    do-udp: yes
    do-tcp: yes

    # Sécurité et vie privée : on ne résout pas les adresses IP privées via internet
    private-address: 192.168.0.0/16
    private-address: 169.254.0.0/16
    private-address: 172.16.0.0/12
    private-address: 10.0.0.0/8
    private-address: fd00::/8
    private-address: fe80::/10

    # Optimisation du cache
    harden-glue: yes
    harden-dnssec-stripped: yes
    use-caps-for-id: no
    edns-buffer-size: 1232
    prefetch: yes
    num-threads: 1
    so-rcvbuf: 1m

Téléchargez ensuite la liste des serveurs root à jour pour qu’Unbound sache qui interroger (ceci s’exécute automatiquement, mais c’est bien de le faire une fois à la main) :

sudo wget -O /var/lib/unbound/root.hints https://www.internic.net/domain/named.cache

Redémarrez Unbound pour appliquer les changements :

sudo systemctl restart unbound

Vous pouvez tester que Unbound fonctionne correctement avec la commande suivante (elle devrait retourner l’adresse IP demandée) :

dig google.com @127.0.0.1 -p 5335

4. Installation et configuration d’AdGuard Home

Maintenant qu’Unbound est prêt, passons à l’interface principale : AdGuard Home.

Installation d’AdGuard Home

La méthode la plus simple est d’utiliser le script d’installation officiel fourni par AdGuard. Exécutez la commande suivante :

curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v

Une fois installé, AdGuard Home lance un assistant web. Ouvrez votre navigateur et allez sur http://<IP_DE_VOTRE_SERVEUR>:3000 (par exemple http://192.168.1.100:3000).

Suivez l’assistant :

  1. Interface d’écoute : Laissez toutes les interfaces pour l’interface d’administration (port 80) et pour le serveur DNS (port 53).
  2. Identifiants : Créez un nom d’utilisateur et un mot de passe sécurisé.
  3. Terminez l’installation.

Paramétrer Unbound comme serveur Upstream

Connectez-vous maintenant à l’interface d’administration d’AdGuard (sur le port 80).

Allez dans Paramètres -> Paramètres DNS. Dans la section Serveurs DNS en amont (Upstream DNS servers), supprimez tout ce qui s’y trouve, et ajoutez l’adresse de votre instance Unbound :

127.0.0.1:5335

Cochez la case Requêtes parallèles (Parallel requests) en dessous, puis cliquez sur “Tester les serveurs amonts” et enfin sur Appliquer.

Désormais, AdGuard Home enverra toutes les requêtes qu’il ne bloque pas vers Unbound !

Ajouter des listes de blocage (Blocklists)

L’intérêt principal d’AdGuard est de bloquer les publicités. Pour cela, il utilise des listes maintenues par la communauté.

Allez dans Filtres -> Listes de blocage DNS (DNS blocklists). Cliquez sur Ajouter une liste de blocage -> Choisir dans la liste.

Voici les listes les plus recommandées pour un bon équilibre entre blocage et absence de faux positifs :

Sélectionnez-les et sauvegardez. Vos appareils seront maintenant protégés contre la majorité des traqueurs et publicités.

5. Gestion de la zone DNS locale

Si vous hébergez d’autres services sur votre réseau (par exemple un NAS, un serveur domotique), il est très pratique d’y accéder via un nom de domaine local (comme nas.home ou plex.home) au lieu de se souvenir de l’adresse IP.

AdGuard Home gère cela de manière très intuitive :

  1. Allez dans le menu Filtres -> Réécritures DNS (DNS rewrites).
  2. Cliquez sur Ajouter une réécriture DNS.
  3. Dans le champ Nom de domaine, entrez le nom souhaité (ex: nas.local ou nas.mondomaine.fr).
  4. Dans le champ Adresse IP, entrez l’adresse IP locale de l’équipement (ex: 192.168.1.50).
  5. Sauvegardez.

Immédiatement, tout appareil de votre réseau utilisant AdGuard comme serveur DNS pourra accéder au NAS en tapant nas.local dans son navigateur !

6. Configurer vos appareils

La dernière étape consiste à dire à vos appareils (ou à votre box internet / routeur) d’utiliser votre nouveau serveur DNS.

La meilleure méthode est de modifier la configuration de votre routeur (serveur DHCP) pour qu’il distribue l’adresse IP de votre serveur AdGuard (ex: 192.168.1.100) comme serveur DNS principal à tous les appareils de votre réseau.

[!TIP] Si votre box internet ne permet pas de modifier le DNS, vous pouvez désactiver le serveur DHCP de votre box, et activer celui intégré directement dans AdGuard Home (dans Paramètres -> Paramètres DHCP) !

Conclusion

Félicitations ! Vous possédez maintenant un résolveur DNS totalement indépendant et ultra-rapide. Non seulement votre navigation sera débarrassée des publicités intrusives, mais vos requêtes ne seront plus analysées par les grands fournisseurs d’accès à internet, garantissant une confidentialité optimale pour tout votre réseau domestique.

Sources

Pour aller plus loin, voici les liens vers les documentations officielles et les projets mentionnés :

Catégories : SysAdmin Linux 
Tags: DNS 

Suggestions de lecture :