Unbound

Aller à : navigation, rechercher
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.21.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
  • Mise en cache récursive et validante
  • Prise en charge des serveurs racine
  • DNS sur TLS (DoT)
  • DNS Qname minimisation
  • Trafic IPv4 et IPv6
  • Protocoles UDP & TCP configurables
  • DNS-over-HTTPS (DoH)
  • Sécurité DNSSEC
  • Compatible POSIX et Unix-like

Systèmes d'exploitation

  • Famille BSD
  • macOS
  • Linux
  • Microsoft Windows

Autres Fonctionnalités

  • Bibliothèque d'API client intégrante
  • Logiciel libre et open source
  • Monitoring avec Munin, Cacti et Zabbix

Langages de programmation

  • Code en C
  • Interfaces pour Python et Java

Configuration

  • Basic (Basique)
  • Standard (Standard)
  • Advanced (Avancée)
  • Expert (Expert)
  • Custom (Personnalisée)

Versions récentes

  • Dernière version stable : 1.21.0 (septembre 2024)
  • Correctifs de sécurité et améliorations des fonctionnalités

Petit Rappel de l'utilité d'un serveur DNS :

Stéphane Bortzmeyer (ingénieur en sécurité, notamment du DNS)

  1. REDIRECTION [[2]]

Télécharger Unbound

En Terminal, Gestionnaire d'application ou Dépôts communautaire.
Attention : Terminal profil utilisateur, droits roots 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 

Tâche cron.weekly pour serveurs racines, et fichier antipub

Attention : Pour une tache hebdomadaire créer le script dans /etc/cron.weekly
 # sudo nano /etc/cron.weekly/update_unbound 
#!/bin/bash

# Télécharger le fichier root.hints
wget ftp://ftp.internic.net/domain/named.cache -O /etc/unbound/root.hints

# Télécharger la liste des serveurs
wget -q -O /etc/unbound/local.d/unbound_add_servers 'http://pgl.yoyo.org/adservers/serverlist.php?hostformat=unbound&showintro=0&mimetype=plaintext'

# Redémarrer le service Unbound
systemctl restart unbound

Avantages de cette méthode

  1. Clarté : script centralisé dans un répertoire approprié.
  2. Simplicité : risque d'erreurs réduit du fichier /etc/crontab.
  3. Flexibilité : script modifiable sans modifier crontab.
  4. REDIRECTION [[4]]

Rendre le script exécutable

 # sudo chmod +x /etc/cron.weekly/update_unbound 

Génération des clefs TLS

# unbound-control-setup 

Configuration réseau pour la prise en compte d'unbound

  • Gestionnaire de réseau - onglet DNS Ipv4
  • Ajoutez IP de votre serveur DNS 127.0.0.1
  • Ajoutez IP de votre PC votre masque sous réseau puis la passerelle de votre Box
Screenshot 20181025 124016.png

Gestionnaire de réseau - onglet DNS Ipv6 désactivé

Screenshot 20181025 124728.png

dans le gestionnaire de réseau - onglet DNS Ipv6 activé

Screenshot 20181025 125412.png

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 

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 (09/121/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
 # rcnscd restart 
  • 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
  • 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  
localhost:/ # dig com. SOA +dnssec  
;; communications error to 127.0.0.1#53: timed out

; <<>> DiG 9.20.1 <<>> com. SOA +dnssec
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24171
;; 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.                    30      IN      SOA     a.gtld-servers.net. nstld.verisign-grs.com. 1726979172 1800 900 604800 86400
com.                    30      IN      RRSIG   SOA 13 1 900 20240929042612 20240922031612 59354 com. 5tGf1UO6nbCpdWaNNsvHJmLUy8NnFLWgPF5vXGDipDa6L7bStSIdmD6S vIdFl+T/6K3BhHrOqmDXPTynuEafwA==

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Mon Sep 23 17:14:26 CEST 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]]