Résolveur Dns Unbound

Vos petites astuces, répertoire des tutoriels et astuces
Avatar du membre
yomane
Messages : 201
Enregistré le : mar. 16 août 2016 16:36
Contact :

Résolveur Dns Unbound

Message par yomane »

Bonjour

Pour ceux qui souhaitent, installer ou optimiser leur Résolveur Dns Unbound sur un poste de travail. Je vous propose ce petit tuto, qui peut être améliorer
Unbound_1.png
Unbound_1.png (54.67 Kio) Vu 5493 fois
Petit Rappel de Stéphane Bortzmeyer (ingénieur en sécurité, notamment du DNS) http://www.bortzmeyer.org/root66-dns-vie-privee.html

- La quasi-totalité des activités sur l'Internet commencent par une requête DNS, la demande faite au résolveur DNS, le sont par les applications.
- Le résolveur DNS, après interrogation des serveurs DNS faisant autorité, va répondre aux demandes des applications.
- Un résolveur DNS local, est donc une application qui va se charger de gérer les demandes ou requêtes DNS des applications.

Installation en 10 étapes

1°) Télécharger Unbound
2°) Télécharger les serveurs racines
3°) Mise a jour par contab des serveurs racines
4°) Générer les clefs TLS
5°) Activer l'option Antipub dans Unbound
6°) Mise a jour par crontab du fichier Antipub
7°) Configuration réseau pour la prise en compte d'unbound
8°) Configuration du fichier conf d'Unbound
9°) Divers tests de fonctionnement d'Unbound
10°) Test après reboot

Conventions : # signifie root terminal ## signifie un commentaire sur la commande
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
1°) Télécharger Unbound ## vous pouvez passer par votre gestionnaire d'application

Code : Tout sélectionner

#apt-get install unbound 

2°) Télécharger les serveurs racines

Code : Tout sélectionner

#wget ftp://FTP.INTERNIC.NET/domain/named.cache -O /etc/unbound/root.hints
3°) Mise a jour par contab des serveurs racines (1er jour de la semaine à 5h)

Code : Tout sélectionner

#crontab -e 
a°) choisir editeur nano
b°) copier/coller la ligne ci-dessous dans cron
00 5 * * 1 wget ftp://ftp.internic.net/domain/named.cache" onclick="window.open(this.href);return false; -O /etc/unbound/root.hints && /etc/init.d/unbound restart
c°) enregistrer le fichier cron (crtl+o), fermer le fichier cron (crtl+x)
Unbound_2.png
4°) Générer les clefs TLS

Code : Tout sélectionner

#unbound-control-setup
Unbound_3.png
5°) Télécharger fichier Antipub dans Unbound

Code : Tout sélectionner

#wget -q -O- 'http://pgl.yoyo.org/adservers/serverlist.php?hostformat=unbound&showintro=0&mimetype=plaintext' > /etc/unbound/unbound_add_servers
Changement de propriétaire du fichier : unbound_add_servers

Code : Tout sélectionner

#chown unbound:unbound /etc/unbound/unbound_ad_servers
##
6°) Mise a jour par crontab du fichier Antipub nommé : unbound_add_servers

Code : Tout sélectionner

#crontab -e
a) même procédure que mettre a jour les serveurs racines (3°)
59 4 * * 1 wget -q -O- 'http://pgl.yoyo.org/adservers/serverlis ... =plaintext' > /etc/unbound/unbound_add_servers

7°) Configuration réseau pour la prise en compte d'unbound
- dans votre gestionnaire de réseau - onglet Ipv4 et Ipv6
Unbound_4.png
Unbound_5.png
- Désactivez Dnsmasq (outil DNS par défaut du gestionnaire de réseau)

Code : Tout sélectionner

# sed -i 's/dns=dnsmasq/#dns=dnsmasq/g' /etc/NetworkManager/NetworkManager.conf
- Relancer le gestionnaire de réseau

Code : Tout sélectionner

#/etc/init.d/network-manager restart
8°) Configuration du fichier conf d'Unbound
-Désactiver le service unbound le temps de configurer le fichier unbound.conf

Code : Tout sélectionner

#/etc/init.d/unbound stop
- Editez le fichier conf d'Unbound ## adapter selon votre editeur de fichier ou en terminal avec nano...

Code : Tout sélectionner

#gedit /etc/unbound/unbound.conf

[/size]
Ma configuration commentée est dans le lien ci-dessous (4 options prises en compte dans ma configuration)

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°) divers options relatifs à une certaine anonymisation

http://www.global-informatique-securite ... bound.html
Copier/coller ## vous pouvez adapter selon votre configuration

- Changer les droits du fichier log d'unbound

Code : Tout sélectionner

#cd  /var/log/
## 750 possible mais pour moi ça bloque unbound.

Code : Tout sélectionner

#chmod 777 unbound.log

- Si le fichier unbound.log n'existe pas (c'est mon cas) le créer

Code : Tout sélectionner

#touch /var/log/unbound.log
- Supprimer le cache-DNS local

Code : Tout sélectionner

#/etc/init.d/dns-clean restart
- Relancer Unbound

Code : Tout sélectionner

#/etc/init.d/unbound restart
9°) Divers tests de fonctionnement d'Unbound
-Pour vérifier si le fichier unbound.conf comporte des erreurs

Code : Tout sélectionner

#unbound-checkconf /etc/unbound/unbound.conf
Unbound_6.png
- Pour le test de confidentialité DNS

Code : Tout sélectionner

#dig +nodnssec +short TXT qnamemintest.internet.nl
Unbound_7.png
- Test activation DNSSEC (temps réponse unbound plus courte à la 2ème intérrogation)

Code : Tout sélectionner

#dig com. SOA +dnssec

## il faut la présence du drapeau 'ad'
Unbound_8.png
Unbound_9.png
Unbound_10.png
Unbound_10.png (17.41 Kio) Vu 5493 fois
- Test TLS (Réponse : (secure) devra apparaitre)

Code : Tout sélectionner

#unbound-host com. -f /var/lib/unbound/root.key -v 

Code : Tout sélectionner

#unbound-host dnssec.cz -f /var/lib/unbound/root.key -v 

Code : Tout sélectionner

#unbound-host dnssec.cz -C /etc/unbound/unbound.conf -v
Unbound_11.png
- Test visuel graphique dans votre navigateur
http://www.dnssec.cz" onclick="window.open(this.href);return false; ## sur la partie droite, si vous voyez une clé verte, c'est ok
https://en.internet.nl/" onclick="window.open(this.href);return false; ## cliquez “Test my internet connection” ## Réponse : DNSSEC validation

10°) Test après reboot

Code : Tout sélectionner

#nmcli dev show | grep DNS
## vérification boucle locale dns

Code : Tout sélectionner

#lsof -i :53  
## vérification unbound unique résolveur dns

Code : Tout sélectionner

#netstat -laputen | grep unbound
## synthèse des 2 1ère commande
Unbound_12.png
Vérification dans journal système de l'activité du Résolveur dns UNBOUND
Unbound_13.png
Pour les experts qui souhaitent analyser les stats d'Unbound

Code : Tout sélectionner

#unbound-control stats
## les stats d'Unbound....

+ d'infos pour une optimisation +
Modifié en dernier par débitant le sam. 3 mars 2018 18:51, modifié 6 fois.
Image
[/img]Discord : Invitation => https://discord.gg/HBWnGy3
"Jamais Souris ne confie a un seul trou sa Destinée"

mpedro
Messages : 1517
Enregistré le : dim. 8 nov. 2015 22:13
Contact :

Re: Résolveur Dns Unbound

Message par mpedro »

Merci pour le tuto.
Stretch 32bits cinnamon/Fedora25/Sarah
Compaq 8510p/MSI GE70/Raspberry Pi2

Avatar du membre
yomane
Messages : 201
Enregistré le : mar. 16 août 2016 16:36
Contact :

Re: Résolveur Dns Unbound

Message par yomane »

@mpedro

Pas d'quoi... C'est le partage.. N'hesite pas a partager si tu trouves des optimisations...

;)
Image
[/img]Discord : Invitation => https://discord.gg/HBWnGy3
"Jamais Souris ne confie a un seul trou sa Destinée"

Avatar du membre
débitant
modérateur
Messages : 11524
Enregistré le : mar. 14 juil. 2015 18:22
Localisation : Lorraine France

Re: Résolveur Dns Unbound

Message par débitant »

beau tuto que je vais mettre dans le répertoire ;)

mpedro
Messages : 1517
Enregistré le : dim. 8 nov. 2015 22:13
Contact :

Re: Résolveur Dns Unbound

Message par mpedro »

C'est pour ça que je l'avais fait remonter :D très beau tuto.
Stretch 32bits cinnamon/Fedora25/Sarah
Compaq 8510p/MSI GE70/Raspberry Pi2

Avatar du membre
yomane
Messages : 201
Enregistré le : mar. 16 août 2016 16:36
Contact :

Re: Résolveur Dns Unbound

Message par yomane »

merci à vous, ;) il peut-être améliorer ..bien entendu...
Image
[/img]Discord : Invitation => https://discord.gg/HBWnGy3
"Jamais Souris ne confie a un seul trou sa Destinée"

Crevette
Messages : 2
Enregistré le : sam. 2 févr. 2019 17:14

Re: Résolveur Dns Unbound

Message par Crevette »

Merci beaucoup pour ce tuto!

Mais j'ai un petit souci d'erreur de mon fichier unbound.conf :( qui dit ça:

Code : Tout sélectionner

[root@localhost unbound]# unbound-checkconf /etc/unbound/unbound.conf
/etc/unbound/unbound.conf:10: error: cannot open include file '/etc/unbound/unbound.conf.d/unbound.conf': No such file or directory
/etc/unbound/unbound_add_servers:14: error: syntax error
read /etc/unbound/unbound.conf failed: 2 errors in configuration file

Je n'ai pas de répertoire /etc/unbound/unbound.conf.d/

Dans mon /etc/unbound il y a ça:

Code : Tout sélectionner

[root@localhost unbound]# ls -l
total 268
-rw-r--r-- 1 root    root      3315 févr.  2 13:22 root.hints
-rw-r--r-- 1 unbound unbound 242890 févr.  2 13:46 unbound_add_servers
-rw-r--r-- 1 root    root      2669 févr.  2 17:09 unbound.conf
-rw-r--r-- 1 root    root      1315 févr.  2 12:58 unbound.conf.orig
-rw-r----- 1 root    root      2455 févr.  2 13:42 unbound_control.key
-rw-r----- 1 root    root      1330 févr.  2 13:42 unbound_control.pem
-rw-r----- 1 root    root      2459 févr.  2 13:42 unbound_server.key
-rw-r----- 1 root    root      1318 févr.  2 13:42 unbound_server.pem
J'ai copié collé le contenu du lien
http://www.global-informatique-securite ... bound.html
comme indiqué dans mon fichier unbound_add_servers

Voilà mon unbound.conf:
-------------------------------------------------------------------------------------------------------------

Code : Tout sélectionner

# Unbound configuration file for Mageia
#
# See the unbound.conf(5) man page.
#
# See /usr/share/doc/unbound/examples/unbound.conf for a commented
# reference config file.
#
# The following line includes additional configuration files from the
# /etc/unbound/unbound.conf.d directory.
include: "/etc/unbound/unbound.conf.d/unbound.conf" ## gestion DNSSEC
include: /etc/unbound/unbound_add_servers ## antipub mise a jour chaque semaine crontab

server:
verbosity: 2 ## degré de verbosité des journaux
root-hints: "/etc/unbound/root.hints" ## serveurs racines mise a jour chaque semaine crontab

qname-minimisation: yes ## envoie un minimum d'information DNS pour améliorer l'aspect privé ##

statistics-interval: 0
extended-statistics: yes
statistics-cumulative: yes

interface: 127.0.0.1 ## autorisé a la boucle locale
port: 53 ## port d'écoute
do-ip4: yes ## ipv4 autorisé
do-ip6: yes ## ipv6 non autorisé je n'ai pas d'adresse ipv6
do-udp: yes ## protocole autorisé
do-tcp: yes ## protocole de secours

access-control: 127.0.0.0/8 allow ## j'autorise mon serveur
access-control: 192.168.0.1/24 allow ## j'autorise le réseau
access-control: 0.0.0.0/0 refuse ## j'interdis tout le reste de l'Internet !

hide-identity: yes ## cacher certaines informations
hide-version: yes ## cacher certaines informations
harden-glue: yes ## limite l'usurpation de DNS
private-address: 192.168.0.0/16 ## Renforcer la vie privée des adresses du LAN
use-caps-for-id: yes ## cacher certaines informations
val-clean-additional: yes ## assure de nettoyer toutes les données DNS non sécurisé
do-not-query-localhost: no ## localhost peut être interrogé

harden-dnssec-stripped: yes ## DNSSEC pour les zones de confiance

## optimisation ##
num-threads: 4  ## nombre de cœurs CPU dont dispose votre station

key-cache-slabs: 8 ## gèrent les conflits de verrouillage en les diminuant
infra-cache-slabs: 8 ## gèrent les conflits de verrouillage
msg-cache-slabs: 8 ## gèrent les conflits de verrouillage
rrset-cache-slabs: 8 ## gèrent les conflits de verrouillage

key-cache-size: 16m
msg-cache-size: 4m ## Taille du cache
rrset-cache-size: 8m ## Taille du cache

outgoing-range: 206 ## gère le nombre de connexions par cœurs CPU

so-rcvbuf: 1m ## Taille du buffer pour le port UDP
so-sndbuf: 1m ## gestion surcharge serveur
so-reuseport: yes ## performances protocole UDP

prefetch: yes ## gestion cache
cache-min-ttl: 3600 ## gestion cache
cache-max-ttl: 86400 ## gestion cache

## gestion logs
logfile: /var/log/unbound.log
use-syslog: yes ## utilise journal syslog
unwanted-reply-threshold: 10000000 ## éviter l'empoisonnement DNS
val-log-level: 2
prefetch-key: yes
------------------------------------------------------------------------------------------------------------------
Il y a une petite erreur au paragraphe 5°)
il manque un d à la ligne suivante ;-) à unbound_ad_servers
#chown unbound:unbound /etc/unbound/unbound_ad_servers


J'ai une mageia 6.1
Linux localhost 4.9.35-desktop-1.mga6 #1 SMP Thu Jun 29 19:27:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux


Quelqu'un pourrait il m'aider s'il vous plait?
Modifié en dernier par débitant le sam. 2 févr. 2019 20:42, modifié 1 fois.
Raison : ajout des balises "code" pour faciliter la lecture du sujet

Avatar du membre
débitant
modérateur
Messages : 11524
Enregistré le : mar. 14 juil. 2015 18:22
Localisation : Lorraine France

Re: Résolveur Dns Unbound

Message par débitant »

bonjour,
j'ai repris ton message pour y ajouter les balises "code" pour facilité la lisibilité de ton sujet
pour l'utilisation des balises voir : tuto barre d'outils des messages
merci d'en tenir compte ;)

Crevette
Messages : 2
Enregistré le : sam. 2 févr. 2019 17:14

Re: Résolveur Dns Unbound

Message par Crevette »

Heu merci!

Ooups, effectivement, je n'ai pas fait du tout attention à tout ça.

Désolé!
Du coup, j'ai suivi le lien et consulté le tuto d'utilisation...

Avatar du membre
david37
modérateur
Messages : 3884
Enregistré le : lun. 22 août 2016 05:06

Re: Résolveur Dns Unbound

Message par david37 »

Salut yomane,

Super tuto ;) tres detaille j'aime beaucoup.
Par contre, juste par curiosite et pour ma culture, quelles sont les differences (avantages et inconvenients) de dns unbound avec dnscrypt-proxy ?
PC1: Mobo: Gigabyte B550 AORUS Elite 2 / CPU: AMD Ryzen 7 3700X / GPU: MSI Radeon RX 580 Armor / RAM: 32 GB @3600 MHz CL16 / SSD: Samsung 970 EVO 500 GB / LM 20.2 Xfce
PC2: HP Pavilion 15 / AMD Ryzen 5 5500U with Radeon Graphics / 16GB RAM / 500 GB SSD / Debian 11 Xfce
PC3: Dell-Latitude E7240 / 2.1GHz i7-4600U / Intel Haswell-ULT HD 4400 / 8GB RAM / 250 GB Hard Drive / LM 20.2 Xfce

Répondre