Présentation

Le DNS (Domain Name System) est un élément majeur dans le monde de l'informatique, il s'agit d'un service utilisé pour traduire les noms de domaine Internet en adresse IP ou autres enregistrements. C'est ce qui va permettre de taper “wiki.oweteam.com” au lieu de 188.165.169.82 dans la barre d'URL de votre navigateur préféré. Plus d'information sur le DNS sur la page wikipedia

Ici, on va voir comment mettre en place de genre de service en utilisant les outils NSD et Unbound, tous deux développés par le labo NLnetLabs en utlisant des moyens de sécurité avancés tels que DNSSEC et DNS over TLS.

NSD

Serveur de nom de domaine faisant autorité, peu couteux en ressources, simple à configurer, efficace, et open source. Du au design de NSD, ce dernier n'implémente pas un cache. Il est donc préférable de le coupler avec un autre outil permettant de gérer la résolution et le cache récursif. C'est là qu'intervient Unbound.

Unbound

Unbound est un résolveur DNS récursif et permet de mettre en cache les résolutions DNS. Son utilisation couplée avec NSD permet de séparer le serveur autoritaire et le resolveur récursif afin de garantir une meilleure séurité. Unbound est également capable d'être configuré pour utiliser des option de sécurité avancées telles que le DNSSEC ou encore le DNS Over TLS.

DNSSEC

Le DNSSEC dont les spécifications sont publiées dans la RFC 4033 permet de sécuriser l'authenticité de la réponse DNS. Lorsque le navigateur envoie une requête, celle-ci revient avec une clef d'authentification qui atteste que l'IP renvoyée est la bonne.
L'utilisateur est alors assuré d'accéder au bon site lorsqu'il reçoit une IP validée par DNSSEC.
Si un hacker tente de modifier la table contenue dans le serveur DNS protégé par DNSSEC, ce dernier refuse ses requêtes, l'information envoyée n'étant pas signée.
Ce procédé permet donc d'ajouter une sécurité contre les attaque d'empoisonnement du cache.

DNS Over TLS

Le DNS over TLS dont les spécifications sont publiées dans la RFC 7858 ajoute une couche de chiffrement supplémentaire lors des requêtes DNS entre un client et un resolveur. En plus de garantir la confidentialité des échanges, cela garantit également l'intégrité, les données ne peuvent pas être modifiées en cour de route.
Le DNS over TLS tourne en TCP sur le port 853.
Si vous souhaitez avoir plus d'informations sur le DNS over TLS, vous pouvez vous rendre sur le blog de Stéphane Bortzmeyer

Architecture

Installation

Unbound

Unbound est utilisable sur un grand nombre d'OS, que ce soit dans le monde Unix où dans le monde Windows. S'il n'est pas disponible de base, il suffit juste de l'installer avec le gestionnaire de paquet de sa distribution, ou se rendre sur la page des téléchargements.

Le lab étant monté sur un OpenBSD, la commande pour l'installer est la suivante:

pkg_add unbound

Par défaut, unbound est installé dans le répertoire /var/unbound/ et le fichier de configuration se trouve dans le répertoire ./etc

/var/unbound/etc/unbound.conf
server:
        interface: 192.168.122.42@53
        access-control: 0.0.0.0/0 allow
        hide-identity: yes
        hide-version: yes
 
remote-control:
        control-enable: yes
        control-interface: 192.168.122.42
        control-use-cert: no
        control-interface: /var/run/unbound.sock
 
forward-zone:
        name: "."                       
        forward-addr: 9.9.9.9
        forward-first: yes
 
stub-zone:
        name: "dns.lab"
        stub-addr: 192.168.122.42@8053
        stub-addr: 192.168.122.3@8053

NSD

NSD est utilisable sur un grand nombre d'OS, que ce soit dans le monde Unix où dans le monde Windows. S'il n'est pas disponible de base, il suffit juste de l'installer avec le gestionnaire de paquet de sa distribution, ou se rendre sur la page des téléchargements.

Le lab étant monté sur un OpenBSD, la commande pour l'installer est la suivante:

pkg_add nsd

Par défaut, NSD est installé dans le répertoire /var/nsd/ et le fichier de configuration se trouve dans le répertoire ./etc

/var/nsd/etc/nsd.conf
server:
        hide-version: no
        verbosity: 1
        database: "" # disable database
        port: 8053
 
remote-control:
        control-enable: yes
 
## tsig key example
key:
        name: "sec_key"
        algorithm: hmac-sha256
        secret: "bWVrbWl0YXNkaWdvYXQ="
 
# master zone
zone:
        name: "dns.lab"
        zonefile: "/var/nsd/zones/master/dns.lab"
        notify: 192.168.122.43@8053 sec_key
        provide-xfr: 192.168.122.43@8053 sec_key
 
## reverse zone
zone:
        name: "122.168.192.in-addr.arpa"
        zonefile: "/var/nsd/zones/master/reverse.dns.lab"
        notify: 192.168.122.43@8053 sec_key
        provide-xfr: 192.168.122.43@8053 sec_key

Client

Côté client, une simple modification du fichier /etc/resolv.conf suffit:

/etc/resolv.conf
nameserver 192.168.122.42
nameserver 192.168.122.43

Tests

Bloquer un domaine

wiki/dns.txt · Dernière modification: 2018/04/23 19:13 (modification externe)
CC0 1.0 Universal
Powered by PHP Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Valid HTML5