1.2. Configuration de BIND en tant que serveur DNS de mise en cache
Par défaut, le serveur DNS BIND résout et met en cache les recherches réussies et celles qui ont échoué. Le service répond ensuite aux requêtes portant sur les mêmes enregistrements à partir de son cache. Cela permet d'améliorer considérablement la vitesse des recherches DNS.
Conditions préalables
- L'adresse IP du serveur est statique.
Procédure
Installez les paquets
bind
etbind-utils
:# dnf install bind bind-utils
Si vous souhaitez exécuter BIND dans un environnement change-root, installez le paquetage
bind-chroot
:# dnf install bind-chroot
Notez que l'exécution de BIND sur un hôte avec SELinux en mode
enforcing
, qui est le mode par défaut, est plus sûre.Modifiez le fichier
/etc/named.conf
et apportez les modifications suivantes à l'instructionoptions
:Mettez à jour les instructions
listen-on
etlisten-on-v6
pour spécifier les interfaces IPv4 et IPv6 sur lesquelles BIND doit écouter :listen-on port 53 { 127.0.0.1; 192.0.2.1; }; listen-on-v6 port 53 { ::1; 2001:db8:1::1; };
Mettez à jour l'instruction
allow-query
pour configurer les adresses et plages IP à partir desquelles les clients peuvent interroger ce serveur DNS :allow-query { localhost; 192.0.2.0/24; 2001:db8:1::/64; };
Ajoutez une déclaration
allow-recursion
pour définir à partir de quelles adresses IP et de quelles plages BIND accepte les requêtes récursives :allow-recursion { localhost; 192.0.2.0/24; 2001:db8:1::/64; };
AvertissementN'autorisez pas la récursivité sur les adresses IP publiques du serveur. Dans le cas contraire, le serveur peut être impliqué dans des attaques d'amplification DNS à grande échelle.
Par défaut, BIND résout les requêtes en interrogeant de manière récursive un serveur DNS faisant autorité à partir des serveurs racine. Vous pouvez également configurer BIND pour qu'il transmette les requêtes à d'autres serveurs DNS, tels que ceux de votre fournisseur d'accès. Dans ce cas, ajoutez une déclaration
forwarders
avec la liste des adresses IP des serveurs DNS vers lesquels BIND doit transférer les requêtes :forwarders { 198.51.100.1; 203.0.113.5; };
En guise de solution de repli, BIND résout les requêtes de manière récursive si les serveurs de transfert ne répondent pas. Pour désactiver ce comportement, ajoutez une déclaration
forward only;
.
Vérifier la syntaxe du fichier
/etc/named.conf
:# named-checkconf
Si la commande n'affiche aucune sortie, la syntaxe est correcte.
Mettez à jour les règles
firewalld
pour autoriser le trafic DNS entrant :# firewall-cmd --permanent --add-service=dns # firewall-cmd --reload
Démarrer et activer BIND :
# systemctl enable --now named
Si vous souhaitez exécuter BIND dans un environnement change-root, utilisez la commande
systemctl enable --now named-chroot
pour activer et démarrer le service.
Vérification
Utiliser le serveur DNS nouvellement configuré pour résoudre un domaine :
# dig @localhost www.example.org ... www.example.org. 86400 IN A 198.51.100.34 ;; Query time: 917 msec ...
Cet exemple suppose que BIND fonctionne sur le même hôte et répond aux requêtes sur l'interface
localhost
.Après avoir interrogé un enregistrement pour la première fois, BIND ajoute l'entrée à son cache.
Répétez la requête précédente :
# dig @localhost www.example.org ... www.example.org. 85332 IN A 198.51.100.34 ;; Query time: 1 msec ...
Grâce à l'entrée mise en cache, les requêtes ultérieures pour le même enregistrement sont nettement plus rapides jusqu'à l'expiration de l'entrée.
Prochaines étapes
- Configurez les clients de votre réseau pour qu'ils utilisent ce serveur DNS. Si un serveur DHCP fournit les paramètres du serveur DNS aux clients, mettez à jour la configuration du serveur DHCP en conséquence.
Ressources supplémentaires
- Considérations sur la protection de BIND avec SELinux ou son utilisation dans un environnement change-root
-
named.conf(5)
page de manuel -
/usr/share/doc/bind/sample/etc/named.conf