To sidebar

jeudi, 3. juin 2021

Pi-hole et Unbound DNS, le mariage parfait ?

Après avoir installé et testé Pi-hole puis pour un autre usage, Unbound DNS, je me suis mis en quête de mieux.

En effet, Pi-hole est très bien (je le préfère à Adguard home pour mes usages), mais il a un défaut qui me déplait.
En fait, Pi-hole fait du cache, et dans le cas où il ne trouve pas un adresse, il renvoi la requête à un ou plusieurs DNS, et gros, il redirige la requête.
Problème, que se passe-t'il si ce DNS est H.S. ? (C'est le cas pour 1.1.1.1 à l'heure où j'écris ce billet de blog)
Que se passe-t'il si je tombe sur un DNS "menteur" qui va filtrer ma requête car se trouvant dans un pays censurant ladite requête ?
Etc, etc...
En gros, pourquoi Pi-hole ne s'adresse-t'il pas directement aux serveurs racine ?

Il y a bien sûr de nombreuses raisons techniques, comme la lenteur de la première résolution, le fait que cela nécessite un plus gros cache, etc, etc...

MAIS ! Je préfère cette solution car cela me permet de décider ce que je filtre ou non. Et je peux le contrôler plus finement.

C'est alors que je suis tombé sur cet article : https://thelinuxexperiment.com/setting-up-pi-hole-as-a-recursive-dns-server/

Le principe, c'est d'utiliser Unbound DNS comme serveur récursif. Ce dernier étant connecté aux serveurs racine. Et de conserver pi-hole comme serveur filtrant, ce dernier renvoyant les requêtes à Unbound DNS.

Donc je rappelle les étapes :

  • Installer Unbound DNS :
    sudo apt install unbound
  • Configurer Unbound DNS avec le fichier /etc/unbound/unbound.conf.d/pi-hole.conf
    server:
        # If no logfile is specified, syslog is used
        # logfile: "/var/log/unbound/unbound.log"
        verbosity: 0
    
        interface: 127.0.0.1
        port: 5335
        do-ip4: yes
        do-udp: yes
        do-tcp: yes
    
        # May be set to yes if you have IPv6 connectivity
        do-ip6: no
    
        # You want to leave this to no unless you have *native* IPv6. With 6to4 and
        # Terredo tunnels your web browser should favor IPv4 for the same reasons
        prefer-ip6: no
    
        # Use this only when you downloaded the list of primary root servers!
        # If you use the default dns-root-data package, unbound will find it automatically
        #root-hints: "/var/lib/unbound/root.hints"
    
        # Trust glue only if it is within the server's authority
        harden-glue: yes
    
        # Require DNSSEC data for trust-anchored zones, if such data is absent, the zone becomes BOGUS
        harden-dnssec-stripped: yes
    
        # Don't use Capitalization randomization as it known to cause DNSSEC issues sometimes
        # see https://discourse.pi-hole.net/t/unbound-stubby-or-dnscrypt-proxy/9378 for further details
        use-caps-for-id: no
    
        # Reduce EDNS reassembly buffer size.
        # Suggested by the unbound man page to reduce fragmentation reassembly problems
        edns-buffer-size: 1472
    
        # Perform prefetching of close to expired message cache entries
        # This only applies to domains that have been frequently queried
        prefetch: yes
    
        # One thread should be sufficient, can be increased on beefy machines. In reality for most users running on small networks or on a single machine, it should be unnecessary to seek performance enhancement by increasing num-threads above 1.
        num-threads: 1
    
        # Ensure kernel buffer is large enough to not lose messages in traffic spikes
        so-rcvbuf: 1m
    
        # Ensure privacy of local IP ranges
        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

    Pour ma part, j'ai mis do-ip6 à yes
  • Redémarrer Unbound DNS :
    sudo service unbound restart
  • Aller dans Pi-hole et renseigner 127.0.0.1#5335 comme seul DNS forwarder
Et c'est tout.

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

Fil des commentaires de ce billet

© Le blog de bagu, after the WP Dusk To Dawn theme Propulsé par Dotclear