Table des matières
DNS
Bind
Installation
Bind fait parti du “userland” sous FreeBSD, mais il semble préférable de l'installer depuis les ports, dans ce mode de fonctionnement, bind sera mis à jour régulièrement, soit individuellement, soit lorsque l'on fait une mise à jour générale des ports installés, ce qui est beaucoup plus fréquent qu'une mise à jour du système lui même.
portupgrade -N dns/bind98
Configuration
globale (/etc/namedb/named.conf)
listen-on { 127.0.0.1; IP_EXTERNE; };
Exemple de zone maître :
zone "domaine.com" { type master; file "master/domaine.com.db"; Allow-transfer { XXX.XXX.XXX.XXX; }; };
Exemple de zone inverse :
zone "XXX.XXX.XXX.in-addr.arpa" { type master; file "master/XXX.XXX.XXX.in-addr.arpa"; };
Exemple de logging :
logging { channel default_log { file "/var/named/log/named.log" versions 3 size 10m; print-time yes; print-category yes; severity info; }; channel security_log { file "/var/named/log/named.security.log" versions 3 size 5m; print-time yes; print-category yes; severity notice; }; category default { default_log; }; category security { security_log; }; category lame-servers { null; }; };
Zone (/etc/namedb/master/mondomaine.com.db)
Exemple de fichier de zone :
$TTL 3600 ; 1 hour default TTL mondomain.com. IN SOA ns1.mondomain.com. mon@adressemail.com. ( 20110223 ; Serial (generalement la date) 10800 ; Refresh 3600 ; Retry 604800 ; Expire 300 ; Negative Reponse TTL ) IN NS ns1.domain.com. IN NS ns2.domain.com. ; Machine Names localhost IN A 127.0.0.1 ns1 IN A XXX.XXX.XXX.XXX @ IN A XXX.XXX.XXX.XXX www IN A XXX.XXX.XXX.XXX wiki IN A XXX.XXX.XXX.XXX @ IN MX 10 adresse.serveur.mail. @ IN MX 50 adresse.serveur2.mail.
Vérification
On peut vérifier la syntaxe des fichiers de configuration avec les commandes suivantes :
Pour named.conf :
named-checkconf /etc/named.conf
Pour le fichier de zone :
named-checkzone mondomaine.com /etc/namedb/master/mondomaine.com.db
rc.conf
Pour que bind soit lancé au démarrage, il faut l'ajouter dans /etc/rc.conf :
named_enable="YES" named_program="/usr/local/sbin/named"
lors du premier démarrage, on peut l'executer manuellement :
/etc/rc.d/named start
Il est important de lancer bind via son script de démarrage car il prend en compte le paramètre “named_program” situé dans rc.conf qui execute la version installé précedement et non celui qui est installé d'origine, de plus, dans named.conf, les chemins sont défini en fonction du “chroot”, par conséquent, le lancer directement par son executable ne le placerai pas dans ce “chroot” est aucun chemin ne correspondrait.
rndc
C'est l'outil qui sert à contrôler bind.
Configuration
On génere le fichier de configuration :
rndc-confgen -a -c /etc/namedb/rndc.conf -k dnsadmin -b 256
Cela crée un fichier /etc/namedb/rndc.conf contenant ceci :
key "dnsadmin" { algorithm hmac-md5; secret "LA_CLE_GENERE_ALEATOIREMENT"; };
Auquel on ajoute ceci :
options { default-key "dnsadmin"; default-server 127.0.0.1; };
Ensuite on édite de nouveau /etc/named/named.conf pour y ajouter ça :
key "dnsadmin" { algorithm hmac-md5; secret "LA_CLE_GENERE_ALEATOIREMENT_QUI_EST_DANS_RNDC.CONF"; }; controls { inet * allow { 127.0.0.1; } keys { "dnsadmin"; }; };
On peut bien sur remplacer "dnsadmin" par le nom de son choix, mais attention de bien le modifier partout.
Utilisation
forcer le serveur à relire ses fichiers de configuration :
rndc reload
Générer un fichier de statistiques dans /var/named/var/stats :
rndc stats
dig
Afficher les infos d'un domaine :
dig domaine.com
Afficher les infos d'un domaine en utilisant un serveur DNS précis :
dig @serveurdns domaine.com
Afficher des entrées précises d'un nom de domaine :
MX :
dig mx domain.com
A :
dig a domain.com
AAAA :
dig aaaa domain.com
On peut ajouter le paramètre +short pour ne pas s'encombrer d'infos inutiles :
dig domain.com +short dig mx domain.com +short
Voir le serial d'un nom de domaine (affiche le serial de tous les serveurs primaires et secondaires pour le domaine)
dig domain.com +nssearch