Unbound
| Fiche express | |
|---|---|
| Domaine | Résolveur DNS récursif / cache |
| Commandes | unbound, unbound-control, unbound-checkconf
|
| Config | /etc/unbound/unbound.conf
|
| Service | systemctl restart unbound.service
|
| Voir aussi | Firewalld (ouverture du port DNS), Systemctl (gestion du service) |
Unbound est un résolveur DNS récursif et cache, validant DNSSEC, disponible en standard sur RHEL7 et plus comme alternative légère à BIND/named pour un usage de résolveur cache (par opposition à un serveur faisant autorité sur une zone).
Installation et démarrage
yum install unbound
systemctl start unbound.service
systemctl enable unbound.service
Configuration
La configuration se fait dans /etc/unbound/unbound.conf.
Interface d'écoute et contrôle d'accès
# écouter sur toutes les interfaces
interface: 0.0.0.0
# autoriser les clients d'un réseau donné à interroger le résolveur
access-control: 172.25.0.0/24 allow
Forwarding vers un autre résolveur
Pour transmettre toutes les requêtes (zone racine .) à un résolveur amont plutôt que de résoudre soi-même en itératif :
forward-zone:
name: "."
forward-addr: 172.25.254.254
Exclusions DNSSEC
Pour exempter un domaine de la validation DNSSEC (utile si sa chaîne de confiance est cassée) :
domain-insecure: example.com
Trust anchors DNSSEC
Il est possible de signer la validation des zones avec des ancres de confiance via l'option trust-anchor. La KSK (Key Signing Key, la clé qui signe les autres clés de la zone) d'une zone peut être identifiée avec :
dig +dnssec DNSKEY google.fr
Validation et rechargement de la configuration
unbound-checkconf
systemctl restart unbound.service
Pare-feu
Ouvrir le port DNS (53) via firewalld — voir Firewalld :
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
Cache
# dumper et recharger le cache complet
unbound-control dump_cache
unbound-control load_cache dump.out
# vider une entrée précise ou toute une zone
unbound-control flush www.google.fr
unbound-control flush_zone google.fr
Pour la gestion des ancres de confiance DNSSEC en particulier, voir aussi l'outil dnssec-trigger.
Interroger avec dig
dig A google.fr
dig @serverX.example.fr A lab.example.fr
dig +tcp A example.fr
dig +trace A example.fr
Codes de retour DNS
- SERVFAIL : le nameserver a rencontré une erreur et n'a pas pu fournir de réponse
- NXDOMAIN : le nom de domaine demandé n'existe pas dans la zone
- REFUSED : le nameserver refuse de répondre au client pour des raisons de sécurité (contrôle d'accès)