====== 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 {{tag>freebsd dns bind}}