Unbound

Aller à : navigation, rechercher

<translate>

Unbound

Unbound is a validating, recursive, caching DNS resolver. It is designed to be fast and lean and incorporates modern features based on open standards.

Download for openSUSE

Vendor: nlnetlabs.nl
Developer: NLnet Labs
License: BSD license 1.22.0 (.tar.gz)
Web: [1]


INSTALLER UNBOUND SUR OPENSUSE

Préambule

DNS : le rôle du résolveur local

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_resolved

Caracté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

Petit Rappel de l'utilité d'un serveur DNS (Stéphane Bortzmeyer ingénieur en sécurité, :
  1. REDIRECTION [[2]]

Télécharger Unbound

En Terminal, Gestionnaire d'application ou Dépôts communautaire.
Attention : Terminal profil utilisateur, droits root pour l'ensemble des manipulations :
 su 
# zypper in unbound 
Dernière version de Unbound, dépôts communautaires :
  1. 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

Attention : Mise à jour : filtre antipub (hebdomadaire) & root.hints (mensuel)

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

  1. Centralisation: Intégration avec systèmeD.
  2. Fléxibilité : Spécifier des conditions d'activation.
  3. Gestion des erreurs : Relance le service en cas d'échec.
  4. Précision : planification des tâches granulaire

Si vous préférez un script cron

  1. REDIRECTION [[4]]

Génération des clefs TLS

# unbound-control-setup 

Configuration réseau

Attention : Les commandes suivantes sont utiles pour configurer votre gestionnaire de 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

Attention : Chaque distribution a une politique différente d'utilisation dnmasq & systemd-resolved :
Attention : Vous n'êtes pas obligé de désactiver systemd-resolved, il devra donc être configuré pour unbound :

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)
  1. REDIRECTION [[5]]/
Attention : Configuration optimisée cpu 4core choix forward-zone a faire par vos soins
Optimisation Unbound pour l'optimisation adaptée & personnel d'unbound. Site d'Unbound .

Click here .

  • 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
  1. ) qname-minimisation = anomyniser les requètes dns
  2. ) fichier antipub = bloque le maximum de pub, spam...
  3. ) dnssec = sécurité des requètes dns
  4. ) optimiser pour cpu 4 core
  5. ) ♦ forward-zone activé pour vpn ♦
  6. ) ♦ forward-zone désactivé pour DoT ♦
  7. ) 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 
Attention : Depuis la version 1.8.3-1.1 changement SIGNATURE NUMERIQUE DNSSEC

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
Attention : Si Terminal ZSH ajouter chemin complet au PATH :
 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
  1. Site : http://www.dnssec.cz/ (clé verte=OK)
  2. 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 
Screenshot 20181025 144331.png
  • Analyse stats d'Unbound
# unbound-control stats 

Pour connaitres les DNS de votre FAI

  1. REDIRECTION [[6]]

<translate>