Unbound
<translate>
Unbound is a validating, recursive, caching DNS resolver. It is designed to be fast and lean and incorporates modern features based on open standards.
Vendor: nlnetlabs.nl
Developer: NLnet Labs
License: BSD license 1.22.0 (.tar.gz)
Web: [1]
Sommaire
- 1 INSTALLER UNBOUND SUR OPENSUSE
- 1.1 Préambule
- 1.2 Caractéristiques
- 1.3 Télécharger Unbound
- 1.4 Téléchargement les serveurs racines
- 1.5 Téléchargement fichier Antipub dans Unbound
- 1.6 Changement de propriétaire du fichier unbound_add_servers
- 1.7 Créations Service & Timer maj via systemD
- 1.8 Service SystemD : filtre antipub
- 1.9 Timer SystemD : filtre antipub
- 1.10 Service SystemD : maj roots.hints
- 1.11 Timer SystemD : maj roots.hints
- 1.12 Génération des clefs TLS
- 1.13 Configuration réseau
- 1.14 Désactivation Dnsmasq & systemd-resolved
- 1.15 Rechargement du gestionnaire de réseau
- 1.16 Configuration du fichier conf d'Unbound
- 1.17 Finalisation paramètre système
- 1.18 Divers Tests de Fonctionnement unbound
INSTALLER UNBOUND SUR OPENSUSE
Préambule
La plupart des connexions Internet commencent par une requête DNS, envoyée à un résolveur DNS. Celui-ci peut être fourni par votre FAI ou configuré localement sur votre réseau personnel.
Fonctionnement :
- Réception des requêtes : Traite des requêtes pour résoudre des noms de domaine en adresses IP.
- Cache : Il vérifie son cache pour une réponse existante avant d'interroger d'autres serveurs.
- Interrogation itérative : Contacte les serveurs racines pour localiser les serveurs TLD.
- Interroge : les serveurs TLD pour identifier les serveurs autoritaires.
- Contacte : les serveurs autoritaires pour obtenir l'adresse IP finale.
- Mise en cache : Les réponses sont mises en cache pour améliorer la rapidité des requêtes futures.
- Sécurité : protocoles DoH DoT DNSSEC QNAME.
Conclusion
Le résolveur DNS est un élément essentiel d'Internet, son utilisation locale peut offrir des avantages significatifs.
Autres solutions open source : BIND, Knot_DNS, Dnsmasq, Systemd_resolvedCaractéristiques
- Résolveur DNS / cache récursive et validante
- Prise en charge des serveurs racine
- DNS sur TLS (DoT) / DNS-over-HTTPS (DoH)
- DNS Qname minimisation / Sécurité DNSSEC
- Trafic IPv4 et IPv6 / Protocoles UDP & TCP
- Compatible POSIX et Unix-like
- Famille BSD / macOS / Linux / Microsoft Windows
- Bibliothèque d'API client intégrante / Logiciel libre et open source / Monitoring avec Munin, Cacti et Zabbix
- Code en C / Interfaces pour Python et Java
- Basic / Standard / Advanced / Expert / Custom
- Version stable : 1.21.0 09/2024 / Correctifs / Améliorations des fonctionnalités
- REDIRECTION [[2]]
Télécharger Unbound
su
# zypper in unbound
- REDIRECTION [[3]]
Téléchargement les serveurs racines
# wget https://www.internic.net/domain/named.cache -O /etc/unbound/root.hints
Téléchargement fichier Antipub dans Unbound
# wget -q -O- 'http://pgl.yoyo.org/adservers/serverlist.php?hostformat=unbound&showintro=0&mimetype=plaintext' > /etc/unbound/local.d/unbound_add_servers
Changement de propriétaire du fichier unbound_add_servers
# chown unbound:unbound /etc/unbound/local.d/unbound_add_servers
Créations Service & Timer maj via systemD
Service SystemD : filtre antipub
# nano /etc/systemd/system/ update-unbound-ads.service
[Unit]
Description=Update Unbound ad blocking lists
After=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/bin/wget -O /etc/unbound/local.d/unbound_add_servers 'http://pgl.yoyo.org/adservers/serverlist.php?hostformat=unbound&showintro=0&mimetype=plaintext'
ExecStartPost=/usr/bin/systemctl restart unbound
Restart=on-failure
RestartSec=30s
[Install]
WantedBy=multi-user.target
Timer SystemD : filtre antipub
# nano /etc/systemd/system/ update-unbound-ads.timer
[Unit]
Description=Weekly update of Unbound ad blocking lists
[Timer]
OnCalendar=weekly
RandomizedDelaySec=3600
Persistent=true
Unit=update-unbound-ads.service
[Install]
WantedBy=timers.target
Service SystemD : maj roots.hints
# nano /etc/systemd/system/ update-unbound-roots.service
[Unit]
Description=Update Unbound root hints
After=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/bin/wget ftp://ftp.internic.net/domain/named.cache -O /etc/unbound/root.hints
ExecStartPost=/usr/bin/systemctl restart unbound
Restart=on-failure
RestartSec=30s
[Install]
WantedBy=multi-user.target
Timer SystemD : maj roots.hints
#nano /etc/systemd/system/ update-unbound-roots.timer
[Unit]
Description=Monthly update of Unbound root hints
[Timer]
OnCalendar=monthly
RandomizedDelaySec=3600
Persistent=true
Unit=update-unbound-roots.service
[Install]
WantedBy=timers.target
Mise à jour des services
systemctl daemon-reload
Activer au démarrage
systemctl enable update-unbound-ads.service update-unbound-roots.service systemctl enable update-unbound-ads.timer update-unbound-roots.timer
Demarrer les services et timers
systemctl start update-unbound-ads.service update-unbound-roots.service systemctl start update-unbound-ads.timer update-unbound-roots.timer
Vérification des services
systemctl is-enabled update-unbound-ads.service update-unbound-roots.service
Vérification des Timers
systemctl status update-unbound-ads.timer update-unbound-roots.timer
Avantages de cette méthode
- Centralisation: Intégration avec systèmeD.
- Fléxibilité : Spécifier des conditions d'activation.
- Gestion des erreurs : Relance le service en cas d'échec.
- Précision : planification des tâches granulaire
Si vous préférez un script cron
- REDIRECTION [[4]]
Génération des clefs TLS
# unbound-control-setup
Configuration réseau
Toutes les informations pour configurer votre réseau
- Configuration serveur dns ipv4 : 127.0.0.1
- Configuration serveur dns ipv6 : ::1
- Configuration Globale ipv4 seulement
- Configuration Globale ipv4 + ipv6 seulement
- Configuration localhost + passerelle ipv4 + ipv6 seulement
Connaitre adresse ipv4 + ipv6
# hostname -I
Résultat
192.168.1.44 192.168.122.1 2001:861:4900:6ed0:b6dd:6963:98f2:b9bf ipv4 adresse ipv4 kvm ipv6 adresse
Connaitre masque sous-réseau & passerelle ipv4
ipcalc --all-info -j 192.168.1.0/24
Résultat
"NETWORK":"192.168.1.0", "NETMASK":"255.255.255.0", (masque sous-réseau) "PREFIX":"24", "BROADCAST":"192.168.1.255", "REVERSEDNS":"1.168.192.in-addr.arpa.", "ADDRSPACE":"Private Use", "ADDRCLASS":"Class C", "MINADDR":"192.168.1.1", "MAXADDR":"192.168.1.254", (passerelle) "ADDRESSES":"254"
Connaitre la passerelle ipv6 et prefix
ip -6 route show default
Résultat
default via fe80::9698:8fff:fe27:1a55 dev eno1 proto static metric 100 pref medium
Désactivation Dnsmasq & systemd-resolved
DNSMASQ
- Vérifier activation dnsmasq
- Stopper le Service
- Désactiver dnmasq au démarrage
# systemctl status dnsmasq
# sudo systemctl stop dnsmasq
# sudo systemctl disable dnsmasq
# sudo killall dnsmasq
SYSTEMD-RESOLVED
- Vérifier activation systemd-resolved
- Stopper le Service
- Désactiver systemd-resolved au démarrage
- Verifier fichier conf de resovl
# systemctl status systemd-resolved
# sudo systemctl stop systemd-resolved
# sudo systemctl disable systemd-resolved
# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver :127.0.0.1
nameserver ::1
Rechargement du gestionnaire de réseau
# systemctl restart NetworkManager
Configuration du fichier conf d'Unbound
- Arrêt du service unbound
# systemctl stop unbound
- Fichier unbound.conf (16/11/2024)
- REDIRECTION [[5]]/
- Edition du fichier conf d'Unbound
# gedit /etc/unbound/unbound.conf
Copier/coller ## a adaptation au choix selon les options d'Unbound
- Une configuration commentée
- ) qname-minimisation = anomyniser les requètes dns
- ) fichier antipub = bloque le maximum de pub, spam...
- ) dnssec = sécurité des requètes dns
- ) optimiser pour cpu 4 core
- ) ♦ forward-zone activé pour vpn ♦
- ) ♦ forward-zone désactivé pour DoT ♦
- ) paramètres anonymisation activés
Finalisation paramètre système
- Création fichier log et droits
# touch /var/log/unbound.log
# chmod 755 /var/log/unbound.log
Activation des signatures numériques de DNSSEC se fait manuellement et non plus automatiquement
a) Création du répertoire unbound
# mkdir /var/lib/unbound
b) Changement de propriétaire du répertoire
# chown unbound unbound
c) Création signature numérique DNSSEC
# sudo -u unbound unbound-anchor -v -a /var/lib/unbound/root.key
- Fin de la Signature numérique manuelle de DNSSEC
- Supprimer cache-DNS local
Installer nscd
# zypper in nscd
# systemctl restart nscd
- Rechargement Unbound
# systemctl restart unbound
- Rechargement Networkmanager
# systemctl restart NetworkManager
- Lancement unbound au démarrage
# systemctl enable unbound
- Voir le status d'unbound et les erreurs
#systemctl status unbound
Divers Tests de Fonctionnement unbound
- Vérification des erreurs du fichier configuration
# unbound-checkconf /etc/unbound/unbound.conf
# unbound-checkconf: no errors in /etc/unbound/unbound.conf
export PATH=$PATH:/usr/sbin
- Vérification DNSSEC
# dig +nodnssec +short TXT qnamemintest.internet.nl
localhost:/ # dig +nodnssec +short TXT qnamemintest.internet.nl
a.b.qnamemin-test.internet.nl.
"HOORAY - QNAME minimisation is enabled on your resolver :)!"
- Vérification temps de réponse résolveur.
# dig com. SOA +dnssec
; <<>> DiG 9.20.3 <<>> com. SOA +dnssec
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30669
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1232
;; QUESTION SECTION:
;com. IN SOA
;; ANSWER SECTION:
com. 878 IN SOA a.gtld-servers.net. nstld.verisign-grs.com. 1733029982 1800 900 604800 900
com. 878 IN RRSIG SOA 13 1 900 20241208051302 20241201040302 29942 com. U9d3C0wO/5O3yi0WaqWX6BnC7IVXLe2RaPm+3k+bUaRtlSFToO7kTOXK 9+bw2sCdz+AoRwS0iYHK2B1icc4/5Q==
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Sun Dec 01 06:13:42 CET 2024
;; MSG SIZE rcvd: 204
RETOUR doit avoir : * drapeau ad * et temps de réponse 0ms
- Vérification Test TLS (Réponse :
# unbound-host com. -f /var/lib/unbound/root.key -v # unbound-host dnssec.cz -f /var/lib/unbound/root.key -v # unbound-host dnssec.cz -C /etc/unbound/unbound.conf -v
localhost:/ # unbound-host com. -f /var/lib/unbound/root.key -v
com. has no address (secure)
com. has no IPv6 address (secure)
com. has no mail handler record (secure)
localhost:/ # unbound-host dnssec.cz -f /var/lib/unbound/root.key -v
dnssec.cz has address 217.31.205.51 (secure)
dnssec.cz has IPv6 address 2001:1488:0:3::5 (secure)
dnssec.cz mail is handled by 10 mail.nic.cz. (secure)
dnssec.cz mail is handled by 15 mx.nic.cz. (secure)
localhost:/ # unbound-host dnssec.cz -C /etc/unbound/unbound.conf -v
dnssec.cz has address 217.31.205.51 (secure)
dnssec.cz has IPv6 address 2001:1488:0:3::5 (secure)
dnssec.cz mail is handled by 10 mail.nic.cz. (secure)
dnssec.cz mail is handled by 15 mx.nic.cz. (secure)
RETOUR : doit contenir le mot secure
- Test visuel graphique dans votre navigateur
- Site : http://www.dnssec.cz/ (clé verte=OK)
- Site : https://en.internet.nl/connection (Réponse : DNSSEC validation=OK)
- Vérification boucle locale DNS
# nmcli dev show | grep DNS
- Vérification unique résolveur dns dans le système (uniquement résolveur Undound)
# lsof -i :53
- Vérification port d'écoute unbound tcp & udp
# ss -laputen | grep unbound
- Analyse stats d'Unbound
# unbound-control stats
Pour connaitres les DNS de votre FAI
- REDIRECTION [[6]]
<translate>