7.8 KiB
7.8 KiB
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é)
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)
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
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)
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)
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)
# 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)
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
healthcheck:
test: ["CMD", "drill", "@127.0.0.1", "cloudflare.com"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
🔒 Sécurité
Bonnes pratiques
- Restreindre l'accès : Limiter les
access-controlà votre réseau local - Activer DNSSEC :
harden-dnssec-stripped: yes(activé par défaut) - Minimisation QNAME :
qname-minimisation: yespour la confidentialité - Cache poison protection :
harden-glue: yes,harden-referral-path: yes - Mises à jour : Maintenir Unbound à jour pour les correctifs de sécurité
- Réseau isolé : Exécuter dans un conteneur avec privilèges minimaux
Hardening
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
🆕 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