--- title: Unbound created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, dns, resolver, privacy, networking, auto-hebergement] confidence: high contested: false sources: [https://selfh.st/apps/?tag=DNS, https://github.com/NLnetLabs/unbound] --- # Unbound ## 📋 MĂ©tadonnĂ©es | Attribut | Valeur | |----------|--------| | **Nom** | Unbound | | **Slug** | unbound | | **Description** | Resolver DNS rĂ©cursif, validant et avec cache | | **Site officiel** | https://www.nlnetlabs.nl/projects/unbound/about/ | | **Repository** | https://github.com/NLnetLabs/unbound | | **Licence** | BSD-3-Clause | | **Stars GitHub** | 4,596 | | **CatĂ©gorie** | DNS | | **Type** | app | | **Tags** | [catalogue, dns, resolver, privacy, networking] | --- ## 📝 Description **Unbound** est un serveur DNS rĂ©cursif validant et mettant en cache, dĂ©veloppĂ© par NLnet Labs. Il est conçu pour offrir une rĂ©solution DNS sĂ©curisĂ©e, rapide et respectueuse de la confidentialitĂ©. ### CaractĂ©ristiques principales - **Validation DNSSEC** : VĂ©rifie l'authenticitĂ© des rĂ©ponses DNS - **Cache intelligent** : RĂ©duit la latence et la charge sur les serveurs upstream - **ConfidentialitĂ©** : Support de DoT (DNS over TLS) et DoH (DNS over HTTPS) - **LĂ©ger et rapide** : Faible empreinte mĂ©moire, haute performance - **SĂ©curisĂ©** : Conception sĂ©curisĂ©e par dĂ©faut, sandboxing - **Modulaire** : Support des plugins et configuration flexible - **Respect des standards** : ImplĂ©mentation conforme aux RFC DNS ### Cas d'usage - Serveur DNS local pour rĂ©seau domestique ou entreprise - Resolver DNS de confiance pour remplacer les DNS du FAI - Composant d'infrastructure DNS interne - Protection contre le DNS spoofing et le cache poisoning --- ## 🚀 Installation ### Docker Compose (RecommandĂ©) ```yaml version: '3.8' services: unbound: image: mvance/unbound:latest container_name: unbound restart: unless-stopped ports: - "53:53/tcp" - "53:53/udp" - "853:853/tcp" # DNS over TLS (optionnel) volumes: - ./config/unbound.conf:/opt/unbound/etc/unbound/unbound.conf:ro - unbound-data:/opt/unbound/etc/unbound/var environment: - TZ=Europe/Paris networks: - dns-network # SĂ©curitĂ© security_opt: - no-new-privileges:true cap_drop: - ALL cap_add: - NET_BIND_SERVICE - SETGID - SETUID deploy: resources: limits: cpus: '0.5' memory: 256M reservations: cpus: '0.1' memory: 64M volumes: unbound-data: networks: dns-network: driver: bridge ``` ### Configuration minimale (unbound.conf) ```conf server: verbosity: 1 interface: 0.0.0.0 port: 53 do-ip4: yes do-ip6: yes do-udp: yes do-tcp: yes # SĂ©curitĂ© harden-glue: yes harden-dnssec-stripped: yes harden-referral-path: yes # Performance num-threads: 2 msg-cache-slabs: 4 rrset-cache-slabs: 4 infra-cache-slabs: 4 key-cache-slabs: 4 rrset-cache-size: 128m msg-cache-size: 64m so-rcvbuf: 1m so-sndbuf: 1m # ConfidentialitĂ© qname-minimisation: yes aggressive-nsec: yes use-caps-for-id: yes # Logging logfile: "/var/log/unbound/unbound.log" log-queries: yes log-replies: yes # ContrĂŽle d'accĂšs (ajuster selon votre rĂ©seau) access-control: 127.0.0.0/8 allow access-control: 192.168.0.0/16 allow access-control: 10.0.0.0/8 allow access-control: 172.16.0.0/12 allow # Forwarders sĂ©curisĂ©s (optionnel - sinon rĂ©solution racine) # forward-zone: # name: "." # forward-addr: 1.1.1.1@853#cloudflare-dns.com # forward-addr: 1.0.0.1@853#cloudflare-dns.com # forward-ssl-upstream: yes # DNS over TLS # tls-cert-bundle: /etc/ssl/certs/ca-certificates.crt ``` ### Image alternative : Officielle NLnet Labs ```yaml services: unbound: image: nlnetlabs/unbound:latest container_name: unbound restart: unless-stopped ports: - "53:53/tcp" - "53:53/udp" volumes: - ./config:/etc/unbound environment: - UNBOUND_UID=1000 - UNBOUND_GID=1000 ``` --- ## 🔧 Configuration avancĂ©e ### DNS over TLS (DoT) ```conf server: interface: 0.0.0.0@853 tls-service-key: "/etc/unbound/tls/server.key" tls-service-pem: "/etc/unbound/tls/server.pem" tls-port: 853 ``` ### Forwarding vers Quad9 (sĂ©curisĂ© + filtered) ```conf forward-zone: name: "." forward-addr: 9.9.9.9@853#dns.quad9.net forward-addr: 149.112.112.112@853#dns.quad9.net forward-ssl-upstream: yes ``` ### Interface Web (via unbound-control) ```bash # Activer le contrĂŽle Ă  distance unbound-control-setup # Commandes utiles unbound-control status unbound-control stats_noreset unbound-control flush ``` --- ## 📊 Monitoring ### MĂ©triques Prometheus (via unbound-exporter) ```yaml unbound-exporter: image: klutchell/unbound-exporter:latest container_name: unbound-exporter restart: unless-stopped ports: - "9167:9167" command: --unbound.host tcp://unbound:8953 depends_on: - unbound ``` ### Healthcheck ```yaml healthcheck: test: ["CMD", "drill", "@127.0.0.1", "cloudflare.com"] interval: 30s timeout: 10s retries: 3 start_period: 10s ``` --- ## 🔒 SĂ©curitĂ© ### Bonnes pratiques 1. **Restreindre l'accĂšs** : Limiter les `access-control` Ă  votre rĂ©seau local 2. **Activer DNSSEC** : `harden-dnssec-stripped: yes` (activĂ© par dĂ©faut) 3. **Minimisation QNAME** : `qname-minimisation: yes` pour la confidentialitĂ© 4. **Cache poison protection** : `harden-glue: yes`, `harden-referral-path: yes` 5. **Mises Ă  jour** : Maintenir Unbound Ă  jour pour les correctifs de sĂ©curitĂ© 6. **RĂ©seau isolĂ©** : ExĂ©cuter dans un conteneur avec privilĂšges minimaux ### Hardening ```conf server: # Protection contre les attaques unwanted-reply-threshold: 10000 harden-large-queries: yes harden-short-bufsize: yes # Limites ratelimit: 1000 ip-ratelimit: 1000 # Cache poisoning protection val-clean-additional: yes ``` --- ## 🌐 Alternatives | Alternative | Description | Cas d'usage | |-------------|-------------|-------------| | **BIND** | Le serveur DNS de rĂ©fĂ©rence | Grandes infrastructures, DNS autoritaire | | **Knot Resolver** | Resolver moderne et modulaire | Haute performance, scripting Lua | | **PowerDNS Recursor** | Resolver rapide et flexible | Environnements PowerDNS existants | | **CoreDNS** | DNS cloud-native | Kubernetes, microservices | | **dnsmasq** | LĂ©ger et simple | Routeurs, petits rĂ©seaux | ### 🔗 Pages LiĂ©es - [[app-pihole]] — Resolver + bloqueur (peut utiliser Unbound en backend) - [[app-adguard-home]] — Alternative tout-en-un avec UI web - [[app-blocky]] — Proxy DNS lĂ©ger en Go - [[app-technitium-dns]] — Serveur DNS autoritaire - [[cat-dns]] — Toutes les apps DNS du catalogue ### Comparaison | CritĂšre | Unbound | BIND | Knot Resolver | |---------|---------|------|---------------| | FacilitĂ© | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | | Performance | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | | DNSSEC | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | | ModularitĂ© | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | | Documentation | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | --- ## 📚 Ressources - [Documentation officielle](https://www.nlnetlabs.nl/documentation/unbound/) - [Manuel unbound.conf](https://www.nlnetlabs.nl/documentation/unbound/unbound.conf/) - [GitHub Repository](https://github.com/NLnetLabs/unbound) - [Guide de hardening DNS](https://www.cisa.gov/dns-hardening-guide) --- ## 🆕 Changelog | Version | Date | Changements | |---------|------|-------------| | 1.0 | 2024 | CrĂ©ation de la fiche | --- *Fiche gĂ©nĂ©rĂ©e pour le Catalogue Self-Hosted - CatĂ©gorie DNS*