DNS Configuration · 18 min read · Sep 08, 2025

Comment configurer un résolveur DNS local avec Unbound sur Rocky Linux 9

Unbound est un logiciel de serveur DNS gratuit et open-source qui peut être utilisé pour valider, résoudre et mettre en cache les DNS. C’est un serveur DNS riche en fonctionnalités qui prend en charge DNS-over-TLS (DoT), DNS-over-HTTPS (DoH), la minimisation des noms de requête, l’utilisation agressive du cache validé par DNSSEC, et le support des zones d’autorité. Unbound se concentre sur la confidentialité et la sécurité des DNS, sans sacrifier la vitesse et les performances.

Unbound est principalement développé par NLnet Labs et distribué sous la licence BSD, et il prend en charge les fonctionnalités modernes sur des normes ouvertes de serveur DNS. Unbound a été rigoureusement audité, et il peut être exécuté sur Linux, BSD et macOS. Unbound est disponible pour la plupart de ces systèmes d’exploitation et peut être installé via le gestionnaire de paquets du système.

Dans ce tutoriel, je vais configurer un serveur DNS local avec Unbound sur un serveur Rocky Linux 9. Vous configurerez Unbound en tant que DNS autoritaire, validant et mettant en cache. En plus de cela, vous configurerez également Unbound en tant que résolveur DNS pour votre réseau local avec DNS-over-TLS (DoT) activé.

À la fin de ce tutoriel, vous configurerez également les journaux Unbound via Rsyslog et Logrotate, et configurerez également une machine cliente Linux pour utiliser Unbound comme résolveur DNS et vérifier votre installation complète à partir de là.

Prérequis

Avant de commencer ce tutoriel, assurez-vous d’avoir les exigences suivantes :

  • Un serveur avec Rocky Linux 9 installé - Cet exemple utilise un Rocky Linux avec le nom d’hôte ‘unbound-rocky’ et l’adresse IP ‘192.168.5.25 ‘.
  • Un utilisateur non-root avec des privilèges d’administrateur root/sudo.
  • Un SELinux fonctionnant en mode permissif.

Et c’est tout. Si toutes les exigences sont en place, allez-y et commencez à installer Unbound sur votre serveur.

Installation d’Unbound

Unbound est un logiciel de serveur DNS qui prend en charge la majorité des systèmes d’exploitation, y compris Linux, BSD et macOS. Sur Rocky Linux, le paquet Unbound est disponible par défaut dans le dépôt officiel de Rocky Linux AppStream.

Dans cette première étape, vous allez installer le paquet Unbound sur votre système Rocky Linux.

Exécutez maintenant la commande dnf ci-dessous pour vérifier le paquet ‘unbound‘ disponible dans le dépôt AppStream. Au moment de la rédaction de cet article, le dépôt AppStream de Rocky Linux fournit Unbound 1.16.

sudo dnf info unbound

Sortie :

unbound info packages

Installez Unbound via la commande dnf ci-dessous. Lorsque vous y êtes invité, saisissez y pour confirmer et appuyez sur ENTRÉE pour continuer.

sudo dnf install unbound

Sortie :

install unbound

Une fois qu’Unbound est installé, démarrez et activez le service ‘unbound’ via l’utilitaire de commande systemctl ci-dessous. Cela démarrera Unbound sur votre serveur Rocky Linux et l’activera pour qu’il s’exécute automatiquement au démarrage du système.

sudo systemctl start unbound  
sudo systemctl enable unbound

Vérifiez le service Unbound en utilisant la commande systemctl ci-dessous. La sortie ‘active (running)‘ confirme que le service Unbound est en cours d’exécution. Et la sortie ‘loaded ….; enabled;…‘ confirme que le service Unbound est activé.

sudo systemctl status unbound

Sortie :

verify unbound

Votre Unbound est maintenant installé et en cours d’exécution avec le fichier de configuration par défaut ‘/etc/unbound/unbound.conf‘. Ensuite, vous allez modifier le fichier de configuration Unbound ‘/etc/unbound/unbound.conf‘ et configurer Unbound en tant que DNS autoritaire, validant et mettant en cache, et également activer Unbound en tant que résolveur DNS avec DoT activé.

Configuration d’Unbound

Par défaut, le fichier de configuration d’Unbound est situé à ‘/etc/unbound/unbound.conf’. Dans cette étape, vous allez modifier le fichier de configuration ‘/etc/unbound/unbound.conf’, puis configurer et optimiser l’installation d’Unbound.

Vous allez configurer Unbound pour fonctionner en tant que DNS autoritaire, validant et mettant en cache. En plus de cela, vous allez également optimiser l’installation d’Unbound pour la performance, la confidentialité et la sécurité. Et enfin, vous allez configurer Unbound en tant que résolveur DNS pour les réseaux locaux.

Tout d’abord, exécutez la commande wget ci-dessous pour télécharger le fichier DNS racine dans ‘/etc/unbound/root.hints‘. Ensuite, changez la propriété du fichier ‘/etc/unbound/root.hints‘ à l’utilisateur et au groupe ‘unbound‘.

wget https://www.internic.net/domain/named.root -O /etc/unbound/root.hints  
sudo chown unbound:unbound /etc/unbound/root.hints

Ensuite, sauvegardez le fichier de configuration Unbound par défaut dans ‘/etc/unbound/unbound.conf.orig‘ et modifiez le fichier original ‘/etc/unbound/unbound.conf‘ en utilisant la commande de l’éditeur nano ci-dessous.

sudo cp -v /etc/unbound/unbound{.conf,.conf.orig}  
sudo nano /etc/unbound/unbound.conf

Maintenant, commençons à configurer Unbound.

Configuration de base d’Unbound

Tout d’abord, vous allez définir quelle adresse IP et quel port le service Unbound doit utiliser. Ensuite, vous allez également configurer un bundle de certificats qui sera utilisé pour authentifier les connexions effectuées en amont et ajouter les serveurs DNS racine via le paramètre ‘root-hints’.

Ajoutez les lignes suivantes dans la section ‘server:‘. Avec ces paramètres, vous exécuterez Unbound sur une adresse IP locale ‘192.168.5.25‘ avec le port UDP par défaut ‘53‘.

server:  
    ...  
    ...  
    # interface-automatic: no  
    do-ip6: no  
    interface: 192.168.5.25  
    port: 53  
    prefetch: yes  
  
    tls-cert-bundle: /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem  
    root-hints: /etc/unbound/root.hints

Paramètres détaillés :

  • do-ip6 : utilisez ‘yes‘ pour exécuter Unbound avec IPv6 ou définissez ‘no‘ pour désactiver IPv6.
  • interface : interface réseau ou adresse IP sur laquelle Unbound sera exécuté. Vous pouvez utiliser une adresse IP ou le nom de l’interface tel que ‘eth0‘. Vous pouvez également exécuter sur un port spécifique en ajoutant un format comme ceci ‘IP-ADDRESS@PORT‘.
  • port : spécifiez le port sur lequel Unbound sera exécuté et les connexions des clients seront gérées par ce port. Le port DNS par défaut est 53.
  • prefetch : défini sur ‘yes‘ pour activer la prélecture des entrées de cache de messages presque expirées.
  • tls-cert-bundle : certificats utilisés pour authentifier les connexions effectuées en amont. Sur les distributions basées sur RHEL, le fichier cert est situé à ‘/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem.
  • root-hints : un fichier qui contient les détails des serveurs DNS racine. Vous avez téléchargé ce fichier dans ‘/etc/unbound/root.hints‘.

Activer le cache DNS

Ajoutez maintenant les lignes suivantes pour activer le DNS récursif en cache via Unbound. Cela mettra en cache les requêtes DNS effectuées par les clients sur le serveur Unbound pendant une certaine période.

    cache-max-ttl: 14400  
    cache-min-ttl: 1200

Paramètres détaillés :

  • cache-max-ttl : TTL ou Time To Live pour les RRSets et les messages dans le cache DNS. Le format est en secondes.
  • cache-min-ttl : temps de vie minimal pour le cache. La valeur par défaut est 0, mais vous pouvez la changer selon votre goût, par exemple ‘1200‘ secondes. Ne définissez pas cela à plus d’une heure ou vous rencontrerez des problèmes en raison de données obsolètes.

Renforcer Unbound

Certains paramètres de confidentialité et de sécurité pour Unbound sont activés par défaut sur la distribution basée sur RHEL. Mais, vous pouvez également ajouter d’autres paramètres comme ces lignes.

    hide-identity: yes  
    hide-version: yes  
    use-caps-for-id: yes

Paramètres détaillés :

  • hide-identity : défini sur yes pour désactiver les réponses des requêtes bind concernant id.server ou hostname.bind.
  • hide-version : défini sur yes pour désactiver les requêtes version.server et version.bind.
  • use-caps-for-id : défini sur yes pour activer l’utilisation de ‘0x20-encoded’ dans la requête pour contrecarrer les tentatives de spoofing.

Définir les adresses privées et les listes de contrôle d’accès

Ensuite, vous devrez définir les adresses privées et les ACL (Listes de Contrôle d’Accès) pour vos réseaux locaux. Assurez-vous de changer le sous-réseau local dans les lignes ci-dessous avec votre environnement réseau actuel.

    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  
  
    # contrôler quels clients sont autorisés à faire des requêtes (récursives)  
    access-control: 127.0.0.1/32 allow_snoop  
    access-control: ::1 allow_snoop  
    access-control: 127.0.0.0/8 allow  
    access-control: 192.168.5.0/24 allow

Paramètres détaillés :

  • private-address : définir les sous-réseaux de réseau privé sur votre infrastructure. Seuls les noms ‘private-domain‘ et ‘local-data‘ sont autorisés à avoir ces adresses privées.
  • access-control : définir le contrôle d’accès dans lequel les clients sont autorisés à faire des requêtes (récursives) au serveur Unbound. Le paramètre ‘allow‘ permettra la récursivité, tandis que le ‘allow_snoop‘ permettra à la fois la récursivité et la non-récursivité.

Configuration d’un nom de domaine local et de sous-domaines

Après avoir configuré les adresses privées et les listes de contrôle d’accès, vous allez maintenant créer des noms de domaine locaux via le paramètre ‘local-zone’ d’Unbound. Cela est très utile, surtout si vous avez plusieurs applications auto-hébergées sur votre réseau local. Vous pouvez facilement définir votre nom de domaine ou sous-domaines et les pointer vers l’adresse IP cible spécifique.

Dans cet exemple, vous allez configurer un domaine local ‘static‘ ‘garden.lan‘ et créer plusieurs sous-domaines via le paramètre ‘local-data‘. Chaque sous-domaine sera pointé vers une adresse IP spécifique, et vous allez également créer des enregistrements PTR via le paramètre ‘local-data-ptr‘.

    # zone locale  
    local-zone: "garden.lan." static  
  
    local-data: "firewall.garden.lan.  IN A 10.0.0.1"  
    local-data: "vault.garden.lan.    IN A 10.0.0.2"  
    local-data: "media.garden.lan.   IN A 10.0.0.3"  
    local-data: "docs.garden.lan.       IN A 10.0.0.4"  
    local-data: "wiki.garden.lan.     IN A 10.0.0.5"  
  
    local-data-ptr: "10.0.0.1  firewall.garden.lan"  
    local-data-ptr: "10.0.0.2  vault.garden.lan"  
    local-data-ptr: "10.0.0.3  media.garden.lan"  
    local-data-ptr: "10.0.0.4  docs.garden.lan"  
    local-data-ptr: "10.0.0.5  wiki.garden.lan"

Paramètres détaillés :

  • local-zone : définir le domaine local ici.
  • local-data : définir un enregistrement A pour les sous-domaines et quelle adresse IP locale sera résolue.
  • local-data-ptr : définir l’enregistrement ptr pour vos sous-domaines.

Optimisation et ajustements d’Unbound

Ensuite, ajoutez les lignes suivantes pour optimiser votre installation d’Unbound. Vous pouvez ajuster et modifier les paramètres ci-dessous en fonction de votre environnement actuel.

    msg-cache-slabs: 8  
    rrset-cache-slabs: 8  
    infra-cache-slabs: 8  
    key-cache-slabs: 8  
    rrset-cache-size: 256m  
    msg-cache-size: 128m  
    so-rcvbuf: 8m

Paramètres détaillés :

  • msg-cache-slabs : le nombre de slabs à utiliser pour le cache de messages. Réglez-le sur 8 pour optimiser Unbound afin d’utiliser plus de mémoire pour le cache.
  • rrset-cache-slabs : le nombre de slabs à utiliser pour le cache RRset. Réglez-le sur 8 pour optimiser Unbound afin d’utiliser plus de mémoire pour le cache RRSet.
  • infra-cache-slabs : le nombre de slabs à utiliser pour le cache d’infrastructure. Réglez-le sur 8 pour optimiser Unbound afin d’utiliser plus de mémoire pour le cache d’infrastructure.
  • key-cache-slabs: le nombre de slabs à utiliser pour le cache de clés. Réglez-le sur 8 pour optimiser Unbound afin d’utiliser plus de mémoire pour le cache de clés.
  • rrset-cache-size : spécifiez la quantité de mémoire pour le cache RRSet. Cet exemple utilise 256Mo, avec la valeur par défaut étant seulement 4Mo.
  • msg-cache-size : spécifiez la quantité de mémoire pour le cache de messages. Cet exemple utilise 128Mo, avec la valeur par défaut étant seulement 4Mo.
  • so-rcvbuf: configurez la taille du tampon pour le port DNS 53/udp à 8Mo.

Configurer Unbound en tant que résolveur DNS avec DNS-over-TLS (DoT)

Enfin, ajoutez une nouvelle section ‘forward-zone‘ pour configurer Unbound en tant que résolveur DNS pour vos réseaux locaux. Cet exemple utilise les serveurs DNS Quad9 avec DoT (DNS-over-TLS) activé comme résolveur DNS en amont.

forward-zone:  
    name: "."  
    forward-ssl-upstream: yes  
    ## Ajoutez également IBM IPv6 Quad9 via TLS  
    forward-addr: 9.9.9.9@853#dns.quad9.net  
    forward-addr: 149.112.112.112@853#dns.quad9.net

Paramètres détaillés :

  • forward-zone : définir la zone de transfert pour Unbound.
  • name : défini sur “.” pour transférer toutes les requêtes DNS.
  • forward-addr: utilisez un transfert spécifique pour transférer toutes les requêtes DNS. Cet exemple utilise Quad9 DNS avec DNS-over-TLS (DoT) activé.

Maintenant, enregistrez et quittez le fichier ‘/etc/unbound/unbound.conf‘ lorsque tout est terminé.

Ensuite, exécutez la commande ci-dessous pour vérifier les configurations d’Unbound et vous assurer que vous avez une configuration correcte et appropriée. Lorsque cela réussit, vous devriez obtenir une sortie ‘unbound-checkconf: no errors in /etc/unbound/unbound.conf‘.

unbound-checkconf

setup unbound

Maintenant, redémarrez le service Unbound via l’utilitaire de commande systemctl ci-dessous et appliquez les modifications.

sudo systemctl restart unbound

Avec cela, vous avez maintenant terminé la configuration d’Unbound et il fonctionne maintenant sur l’adresse IP ‘192.168.5.25‘ avec le port UDP par défaut ‘53‘.

Dans les étapes suivantes, vous allez configurer le firewalld pour ouvrir le port DNS et configurer la journalisation d’Unbound via Rsyslog et Logrotate.

Configuration de Firewalld

Donc, Unbound est en cours d’exécution sur le port UDP par défaut 53. Maintenant, vous devez ouvrir le port DNS 53/UDP sur firewalld et permettre aux clients d’accéder à votre serveur DNS Unbound.

Exécutez la commande firewall-cmd ci-dessous pour ajouter le nouveau service ‘dns‘. Ensuite, rechargez le firewalld pour appliquer les modifications. Lorsque cela réussit, vous devriez obtenir une sortie telle que ‘success‘ sur votre terminal.

sudo firewall-cmd --add-service=dns --permanent  
sudo firewall-cmd --reload

Ensuite, exécutez la commande ci-dessous pour vérifier la liste des services activés sur firewalld. Et vous devriez voir le service ‘dns‘ ajouté au firewalld.

sudo firewall-cmd --list-all

Sortie :

setup firewalld

Configuration du journal Unbound via Rsyslog et Logrotate

Après avoir configuré le firewalld, vous allez maintenant configurer un fichier journal pour Unbound via rsyslog et logrotate. Le service rsyslog créera un fichier journal spécifique pour Unbound et le logrotate fera pivoter le fichier journal d’Unbound à intervalles réguliers.

Créez un nouveau fichier de configuration ‘/etc/rsyslog.d/unbound.conf‘ en utilisant la commande de l’éditeur nano ci-dessous.

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

Ajoutez les lignes suivantes au fichier. Avec cela, le Rsyslog créera un nouveau fichier journal ‘/var/log/unbound.log’ pour le ‘$programname’ == ‘unbound‘.

# Journal des messages générés par l'application unbound   
if $programname == 'unbound' then /var/log/unbound.log  
# arrêter le traitement ultérieur  
& stop

Enregistrez et quittez le fichier ‘/etc/rsyslog.d/unbound.conf‘ lorsque vous avez terminé.

Ensuite, créez un nouveau fichier de configuration Logrotate ‘/etc/logrotate.d/unbound‘ en utilisant la commande de l’éditeur nano ci-dessous.

sudo nano /etc/logrotate.d/unbound

Ajoutez les lignes suivantes au fichier. Cela créera une rotation des journaux pour le fichier journal d’Unbound ‘/var/log/unbound.log‘ sur une base quotidienne.

/var/log/unbound.log {  
  daily  
  rotate 7  
  missingok  
  create 0640 root adm  
  postrotate  
    /usr/lib/rsyslog/rsyslog-rotate  
  endscript  
}

Enregistrez le fichier et quittez l’éditeur lorsque vous avez terminé.

Enfin, exécutez la commande systemctl ci-dessous pour redémarrer les services Rsyslog et Logrotate et appliquer les modifications à votre système.

sudo systemctl restart rsyslog  
sudo systemctl restart logrotate

Avec cela, vous avez maintenant terminé l’installation d’Unbound. Dans l’étape suivante, vous apprendrez comment configurer une machine cliente locale pour utiliser Unbound comme résolveur DNS en utilisant deux méthodes, puis vous vérifierez le serveur DNS Unbound à partir de là.

setup unbound log via rsyslog and logrotate

Configuration du résolveur DNS pour le client

Pour configurer un résolveur DNS sur les machines clientes, vous pouvez utiliser différentes méthodes. Dans cette étape, vous apprendrez comment configurer des résolveurs DNS via NetworkManager et via systemd-resolved combiné avec NetworkManager.

Via NetworkManager

Si vous souhaitez configurer un résolveur DNS via NetworkManager directement, vous devez modifier vos configurations d’interface réseau, qui sont stockées dans le répertoire ‘/etc/NetworkManager/system-connections/‘.

Dans cet exemple, la connexion principale pour la machine cliente est ‘eth0‘, donc la configuration sur NetworkManager devrait être ‘/etc/NetworkManager/system-connections/eth0.nmconnection‘. Vous pouvez avoir différents noms d’interface tels que eth1 et bien d’autres.

Ouvrez le fichier de configuration de l’interface NetworkManager ‘/etc/NetworkManager/system-connections/eth0.nmconnection‘ en utilisant la commande de l’éditeur nano ci-dessous.

sudo nano /etc/NetworkManager/system-connections/eth0.nmconnection

Ajoutez les lignes suivantes à la section ‘[ipv4]‘. Assurez-vous également de changer l’adresse IP sur le paramètre ‘dns‘ avec votre serveur DNS Unbound.

[ipv4]  
...  
dns=192.168.5.25  
ignore-auto-dns=true

Enregistrez et quittez le fichier lorsque vous avez terminé.

Ensuite, exécutez la commande systemctl ci-dessous pour redémarrer le service NetworkManager et appliquer les modifications. Ensuite, vérifiez le fichier de configuration du résolveur DNS ‘/etc/resolv.conf‘ via la commande cat.

sudo systemctl restart NetworkManager  
cat /etc/resolv.conf

Vous devriez obtenir une sortie indiquant que l’adresse IP ‘192.168.5.25‘ est configurée comme le résolveur DNS par défaut pour votre machine cliente.

dns resolver via network manager

Via systemd-resolved et NetworkManager

Une autre façon de configurer un résolveur DNS est via systemd-resolved et NetworkManager. Avec cela, vous pouvez facilement changer le résolveur DNS au niveau du système et ne pas dépendre des interfaces réseau sur votre système.

Sur les distributions basées sur RHEL, le systemd-resolved n’est pas encore installé. Vous pouvez facilement l’installer via la commande dnf ci-dessous. Lorsque vous y êtes invité, saisissez y pour confirmer et appuyez sur ENTRÉE pour continuer.

sudo dnf install systemd-resolved

Sortie :

install systemd-resolved

Après l’installation de systemd-resolved, ouvrez le fichier de configuration ‘/etc/systemd/resolved.conf‘ en utilisant la commande de l’éditeur nano ci-dessous.

sudo nano /etc/systemd/resolved.conf

Dans la section ‘[Resolver]’, décommentez le paramètre ‘DNS‘ et ajoutez l’adresse IP de votre serveur DNS Unbound.

[Resolver]  
DNS=192.168.5.25

Enregistrez et quittez le fichier lorsque vous avez terminé.

Ensuite, exécutez la commande systemctl ci-dessous pour démarrer et activer le service ‘systemd-resolved’.

sudo systemctl start systemd-resolved  
sudo systemctl enable systemd-resolved

configure systemd-resolved

Maintenant, vérifiez le service ‘systemd-resolved‘ pour vous assurer que le service est en cours d’exécution. Vous devriez recevoir une sortie telle que ‘active (running)‘, ce qui confirme que le service est en cours d’exécution. Et la sortie ‘Loaded ../../systemd-resolved.service; enabled;..‘ confirme que le service est activé et démarrera automatiquement au démarrage du système.

sudo systemctl status systemd-resolved

Sortie :

verify systemd-resolved

Avec le systemd-resolved en cours d’exécution, vous allez maintenant modifier le backend DNS pour le service NetworkManager.

Ouvrez le fichier de configuration de NetworkManager ‘/etc/NetworkManager/NetworkManager.conf‘ en utilisant la commande de l’éditeur nano ci-dessous.

sudo nano /etc/NetworkManager/NetworkManager.conf

Sous la section ‘[main]‘, ajoutez le paramètre ‘dns‘ avec la valeur ‘systemd-resolved‘. Cela remplacera le serveur DNS sur votre NetworkManager pour utiliser le service ‘systemd-resolved‘.

[main]  
dns=systemd-resolved

Enregistrez et quittez le fichier lorsque vous avez terminé.

Maintenant, exécutez la commande systemctl ci-dessous pour redémarrer le service NetworkManager et appliquer les modifications. Le nouveau résolveur DNS pour NetworkManager est écrit dans le fichier ‘/run/NetworkManager/resolv.conf‘.

sudo systemctl restart NetworkManager

Exécutez la commande ci-dessous pour supprimer le fichier par défaut ‘/etc/resolve.conf’. Ensuite, créez un nouveau fichier de lien symbolique de ‘/run/NetworkManager/resolv.conf‘ vers ‘/etc/resolv.conf‘.

rm -f /etc/resolv.conf  
ln -s /run/NetworkManager/resolv.conf /etc/resolv.conf

Avec cela, votre machine cliente utilise maintenant le systemd-resolved comme résolveur DNS. Derrière le ‘systemd-resolved‘, vous utilisez le serveur DNS Unbound.

Voici les détails du fichier ‘/etc/resolv.conf‘ après avoir utilisé le systemd-resolved et NetworkManager.

cat /etc/resolv.conf

Sortie :

dns resolver via systemd-resolved

Vérification du serveur DNS Unbound

Exécutez la commande dig ci-dessous pour vous assurer que le DNS Unbound fonctionne en tant que résolveur DNS. Le paramètre ‘@192.168.5.25‘ garantit que vous utilisez un serveur DNS Unbound qui fonctionne sur l’adresse IP ‘192.168.5.25‘.

dig @192.168.5.25

Lorsque cela réussit, vous recevez une réponse du serveur DNS racine comme la sortie ci-dessous. Vous remarquerez également le drapeau ‘ad‘ (données authentiques) dans la sortie d’en-tête, ce qui signifie que DNSSEC est activé.

verify unbound dns resolver

Ensuite, exécutez la commande ci-dessous pour vous assurer que les clients peuvent accéder aux noms de domaine sur Internet.

dig google.com  
dig fb.com

Lorsque cela réussit, vous devriez recevoir des détails de sortie des enregistrements DNS pour le domaine ‘google.com‘ et ‘fb.com‘. Vous pouvez voir que le résolveur DNS qui répond à la requête est ‘127.0.0.53#53‘, qui est le systemd-resolved qui utilise Unbound comme résolveur par défaut. Vous pouvez également voir le ‘Query time‘ pour chaque requête, le ‘Query time‘ pour le domaine ‘google.com‘ est ‘74ms‘ et pour ‘fb.com‘ est ‘154ms‘.

Sortie pour google.com :

dig google.com

Sortie pour fb.com :

dig fb.com

Si vous réexécutez la commande dig ci-dessus, le ‘Query time‘ devrait être réduit. Et cela confirme que vos requêtes ont été mises en cache et que le cache DNS fonctionne.

dig google.com  
dig fb.com

Sortie :

dig google.com after cached

dig fb.com after cached

Ensuite, vérifiez le domaine local ou le sous-domaine via la commande dig ci-dessous. Si cela réussit, chaque sous-domaine sera pointé vers l’adresse IP correcte comme configuré dans le fichier de configuration d’Unbound ‘/etc/unbound/unbound.conf‘.

dig firewall.garden.lan +short  
dig vault.garden.lan +short  
dig media.garden.lan +short

Sortie :

verify local domains

Maintenant, exécutez la commande dig ci-dessous pour vous assurer que les enregistrements PTR sont pointés vers le bon nom de domaine.

dig -x 10.0.0.1 +short  
dig -x 10.0.0.2 +short  
dig -x 10.0.0.3 +short

Sortie :

verify ptr records

Enfin, vous pouvez également vérifier DoT (DNS over TLS) via tcpdump. Installez le paquet ‘tcpdump‘ sur votre serveur Unbound via la commande dnf ci-dessous.

sudo dnf install tcpdump

Saisissez y lorsque vous y êtes invité et appuyez sur ENTRÉE pour continuer.

install tcpdump

Maintenant, exécutez la commande tcpdump ci-dessous pour surveiller le trafic sur l’interface ‘eth0‘ avec le port DoT 853. Dans cet exemple, le DNS Unbound fonctionne sur l’adresse IP ‘192.168.5.25‘ avec l’interface ‘eth0‘.

tcpdump -vv -x -X -s 1500 -i eth0 'port 853'

Déplacez-vous vers la machine cliente et exécutez la commande ci-dessous pour accéder aux noms de domaine externes/internet via la commande dig ci-dessous.

dig twitter.com

Sortie :

verify DNS-over-TLS

Après cela, revenez au serveur Unbound et vous devriez maintenant obtenir une sortie similaire à celle-ci dans la sortie tcpdump.

verify DNS-over-TLS tcpdump

Avec cela, vous avez maintenant installé et configuré un serveur DNS local via Unbound. Vous avez également configuré un résolveur DNS sur les clients RHEL via systemd-resolved et NetworkManager.

Conclusion

Dans ce guide, vous avez installé le serveur DNS local Unbound sur un serveur Rocky Linux 9. Vous avez activé le cache DNS, DNSSEC (activé par défaut), configuré les adresses privées et les ACL, ajouté un domaine local via local-zone, puis configuré Unbound en tant que résolveur DNS avec DoT (DNS-over-TLS).

En plus de cela, vous avez configuré la confidentialité et la sécurité de base des DNS, optimisé Unbound et configuré les journaux d’Unbound via rsyslog et logrotate.

À la fin de ce guide, vous avez également appris comment configurer un résolveur DNS sur les distributions basées sur RHEL via NetworkManager et systemd-resolved. Et vous avez également appris l’utilisation de base de la commande dig pour vérifier le serveur DNS.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.