Aller au contenu

Debian : Installer le serveur DNS Unbound


Ldfa

Messages recommandés

Posté(e)

Un petit mémo pour installer et configurer simplement un serveur DNS Unbound, pour éviter d’utiliser ceux des FAI ou autres DNS menteurs.

Dans ce mini tutoriel, je vais installer Unbound sur mon VPS ou se trouve mon serveur OpenVPN, pour que ce dernier configure ma machine client avec ce serveur DNS.

unbound-openvpn

Pour ceux qui n’ont pas de VPS, j’avais fais un article qui explique comment installer Unbound sur son PC Ubuntu : https://memo-linux.com/ubuntu-serveur-dns-unbound/

Sinon, j’avais aussi écris un autre article avec DNSMasq et DNSCrypt, pour chiffrer les requêtes DNS : https://memo-linux.com/dnscrypt-dnsmasq-sur-archlinuxmanjaro-chiffrez-toutes-les-requetes-dns/

Ici le serveur DNS qui sera installé aura pour fonction d’être récursif et faire du cache. Pour faire simple, si le serveur n’arrive pas à résoudre le nom FQDN, il va demander aux serveurs racines et compléter son cache, sinon le serveur répond à partir de son cache.

Attention, il faut absolument sécuriser le serveur pour qu’il ne soit pas ouvert à tout Internet !

  • Installer le paquet Unbound :
apt install unbond
Téléchargement de la liste des serveurs DNS racines :
cd /var/lib/unbound/ && wget ftp://ftp.internic.net/domain/named.cache
Mise en place de cette liste pour le serveur Unbound :
mv named.cache root.hints && chown unbound:unbound root.hints

Fichier de configuration du serveur DNS Unbound

Mon fichier de configuration :

server:
statistics-interval: 0
extended-statistics: yes
statistics-cumulative: yes
verbosity: 3
interface: 127.0.0.1
interface: 10.8.0.1 ## la passerelle VPN
port: 53
do-ip4: yes
do-ip6: no
do-udp: yes
do-tcp: no
access-control: 127.0.0.0/8 allow ## j'autorise mon serveur
access-control: 10.8.0.0/24 allow ## j'autorise le réseau établie avec mon OpenVPN
access-control: 0.0.0.0/0 refuse ## j'interdis tout le reste de l'Internet !
auto-trust-anchor-file: "/var/lib/unbound/root.key"
root-hints: "/var/lib/unbound/root.hints"
hide-identity: yes
hide-version: yes
harden-glue: yes
harden-dnssec-stripped: yes
use-caps-for-id: yes
cache-min-ttl: 3600
cache-max-ttl: 86400
prefetch: yes
num-threads: 6
msg-cache-slabs: 16
rrset-cache-slabs: 16
infra-cache-slabs: 16
key-cache-slabs: 16
rrset-cache-size: 256m
msg-cache-size: 128m
so-rcvbuf: 1m
unwanted-reply-threshold: 10000
do-not-query-localhost: yes
val-clean-additional: yes
##je bloque cetaines pubs
local-zone: "doubleclick.net" redirect
local-data: "doubleclick.net A 127.0.0.1"
local-zone: "googlesyndication.com" redirect
local-data: "googlesyndication.com A 127.0.0.1"
local-zone: "googleadservices.com" redirect
local-data: "googleadservices.com A 127.0.0.1"
local-zone: "google-analytics.com" redirect
local-data: "google-analytics.com A 127.0.0.1"
local-zone: "ads.youtube.com" redirect
local-data: "ads.youtube.com A 127.0.0.1"
local-zone: "adserver.yahoo.com" redirect
local-data: "adserver.yahoo.com A 127.0.0.1"
local-zone: "ask.com" redirect
local-data: "ask.com A 127.0.0.1"
use-syslog: yes
logfile: /var/log/unbound.log
harden-dnssec-stripped: yes
cache-min-ttl: 3600
cache-max-ttl: 86400
prefetch: yes
prefetch-keys: yes

Modifier le fichier /etc/resolv.conf :

nano /etc/resolv.conf
nameserver 127.0.0.1

Tests du serveur Unbound

Relmance du service Unbound :

systemctl restart unbound

Vérifier le status :

systemctl status unbound

Vérifier la résolution de nom à partir du serveur :

drill @127.0.0.1 memo-linux.com
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 16398
;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 
;; QUESTION SECTION:
;; memo-linux.com.	IN	A

;; ANSWER SECTION:
memo-linux.com.	3600	IN	A	46.105.44.210

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 53 msec
;; SERVER: 127.0.0.1
;; WHEN: Mon Mar 14 11:22:34 2016
;; MSG SIZE  rcvd: 48

La résolution fonctionne et le temps de réponse est de 53 millisecondes, si on relance la commande le temps de réponse passe à 0 milliseconde.
Test de résolution de nom à partir un poste client connecté au VPN :

drill @10.8.0.1 memo-linux.com
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 3390
;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 
;; QUESTION SECTION:
;; memo-linux.com.	IN	A

;; ANSWER SECTION:
memo-linux.com.	3561	IN	A	46.105.44.210

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 55 msec
;; SERVER: 10.8.0.1
;; WHEN: Mon Mar 14 12:26:50 2016
;; MSG SIZE  rcvd: 48

La résolution de nom se fait bien à partir du serveur DNS 10.8.0.1 , donc ça fonctionne parfaitement et à moi l’accès à l’Internet sans censure ! 😎

Ressource

Je me suis aidé de cet excellent tutoriel : http://homeserver-diy.net/wiki/index.php?title=Installer_et_configurer_son_serveur_DNS_connect%C3%A9_aux_serveurs_root_avec_Unbound

Afficher l’article complet

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.