Sécuriser un service DNS

De SeRoM - Wiki
Aller à : navigation, rechercher
Draft Draft / Brouillon
Cette page/chapitre est un brouillon, pas un article ou une règle, et peut être incomplète ou non-fiable! Vous êtes invités à faire des suggestions en page de discussion.

Introduction

Un DNS chrooté

RedHat

C'est assez simple. Il existe un paquet qui fait tout ça pour nous: bind-chroot

 yum install bind-chroot

Voici les fichier qu'il déploie

 rpm -ql bind-chroot
     /var/named/chroot
     /var/named/chroot/dev
     /var/named/chroot/dev/null
     /var/named/chroot/dev/random
     /var/named/chroot/dev/zero
     /var/named/chroot/etc
     /var/named/chroot/etc/named.caching-nameserver.conf
     /var/named/chroot/etc/named.conf
     /var/named/chroot/etc/rndc.key
     /var/named/chroot/var
     /var/named/chroot/var/log
     /var/named/chroot/var/log/named.log
     /var/named/chroot/var/named
     /var/named/chroot/var/named/data
     /var/named/chroot/var/named/slaves
     /var/named/chroot/var/run
     /var/named/chroot/var/run/named
     /var/named/chroot/var/tmp

Et il remple les fichiers de configurations par des liens.

 ls -l /etc/named*
     lrwxrwxrwx 1 root named 51 Oct 22 13:07 /etc/named.caching-nameserver.conf -> /var/named/chroot/etc/named.caching-nameserver.conf
     lrwxrwxrwx 1 root named 32 Oct 22 13:07 /etc/named.conf -> /var/named/chroot/etc/named.conf
     lrwxrwxrwx 1 root named 41 Oct 22 13:07 /etc/named.rfc1912.zones -> /var/named/chroot/etc/named.rfc1912.zones


Debian

Restrindre les 'allow-xxx'

allow-transfer

Définition des destinations

Dans les configurations il est de bon ton de n'autorisé personne à récupérer les information de vos zones.

 options {
         allow-transfer { none; };
         ...
 };

Autorisé la boucle local est une bonne idée pour le troubleshooting:

  options {
         allow-transfer { localhost; };
         ...
 }; 

Enfin dans votre définition de zone autorisez les serveurs DNS slave s'ils existent


Securisé avec TSIG

 dnssec-keygen -a HMAC-MD5 -b 128 -n HOST serverMaster-serverSlave01
 cat KserverMaster-serverSlave01.+157+*.private | grep ^Key:
     Key: WGIoUTIHYM+zzl6sLUCxQA==
 vim /var/named/chroot/etc/serverMaster-serverSlave01.key
     key "serverMaster-serverSlave01" {
             algorithm hmac-md5;
             secret "WGIoUTIHYM+zzl6sLUCxQA==";
     };
 scp /var/named/chroot/etc/serverMaster-serverSlave01.key serverSlave01:/var/named/chroot/etc/serverMaster-serverSlave01.key
 chown root:named /var/named/chroot/etc/serverMaster-serverSlave01.key
 chmod 640 /var/named/chroot/etc/serverMaster-serverSlave01.key
 
 ssh serverSlave01 chown root:named /var/named/chroot/etc/serverMaster-serverSlave01.key
 ssh serverSlave01 chmod 640 /var/named/chroot/etc/serverMaster-serverSlave01.key

!!! Des deux cotés

 vim /var/named/chroot/etc/named.conf
     include "etc/tserverMaster-serverSlave01.key";

!! coté slave

 vim /var/named/chroot/etc/named.conf
     server <IP_Master> {
             keys { serverMaster-serverSlave01 };
     };

!! coté Master

 vim /var/named/chroot/etc/named.conf
     option {
               allow-transfer { key serverMaster-serverSlave01; };
               ...
     };

allow-query

allow-update

La mise à jours DNS (DynDNS) n'est pas une très bonne idée d'un point de vue sécurité.

Mettre en place plusieurs vues

Autres astuces intéressantes

Bogus

 server 192.168.0.254 { bogues yes; };

BlackHole

 options {
     blackhole { 192.168.0.254; };
 };

Masquer la version

 options {
     version "No version !";
 };