Il est possible (et même souhaitable) de sécuriser son DNS local. Voici quelque recettes. Pour plus de détails, se reporter au livre Securing and Optimizing Linux: Red Hat Edition [2]
/* * Fichier utilise pour la resolution des noms d'hote se terminant par * domaine1. Seul le DNS d'adresse 192.168.2.1 a le droit de recuperer les * informations a partir de ce DNS. */ zone "domaine1" { type master; file "domaine1"; allow-transfer { 192.168.2.1 ; }; };
Les transferts de zones étant utilisé par les spammers et les spoofers d'IP, il est recommandé de spécifier cette option. Si on n'a pas de DNS secondaire, on peut mettre l'adresse loopback (127.0.0.1). On peut préciser plusieurs adresses ;
listen-on { 192.168.1.1 ; } ;
dans le fichier /etc/named.conf ;
/* * Fichier utilise pour la resolution des noms d'hote se terminant par * domaine1. Seul le DNS d'adresse 192.168.2.1 a le droit de recuperer les * informations a partir de ce DNS. Seuls les hotes du domaine 192.168.1.0/24 * sont autorises a interroger ce DNS local. */ zone "domaine1" { type master; file "domaine1"; allow-transfer { 192.168.2.1 ; }; allow-query {192.168.1.0/24 ; }; };
L'adresse 192.168.1.0/24 signifie toute les adresses dont les 24 premiers bits commencent par 192.168.1.0. Comme on a une adresse de classe C avec un masque de réseau correspondant à une adresse de classe C, cela revient à dire tous les hôtes du réseau 192.168.1.0 ;
zone "bind" chaos { type master; file "bind"; allow-query { localhost ; }; };
Le fichier bind contient :
$TTL 1d @ CHAOS SOA localhost. root.localhost. ( 1 ; serial 3H ; refresh 15M ; retry 1W ; expire 1D ; minimum ) NS localhost.
# useradd -M -r -d /var/named -s /bin/false named # groupadd -r named
Ne pas oublier de changer le script d'initialisation (/etc/rc.d/init.d/named sous RedHat ou /etc/init.d/named sous Debian rajouter SuSE) pour y mettre la ligne :
/usr/sbin/named -u named -g named