Recherche


imprimer pdf
Bind (named) Serveur Dns

rndc

Quand je fais un nmap localhost, voici ce que je vois :

PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
110/tcp open pop-3
143/tcp open imap
443/tcp open https
953/tcp open rndc
10000/tcp open snet-sensor-mgmt


Est ce que le port rndc est normal ?

Oui. Il s'agit d'un port ouvert uniquement en local et accessible uniquement via /usr/sbin/rndc. C'est un logiciel livré avec bind qui permet de gérer bind, permettant par exemple de recharger les zones dns (en cas de modification) :

/usr/sbin/rndc reload


Si vous obtenez une erreur suite à cette commande, c'est certainement parce que la communication entre rndc et le serveur bind n'est pas possible (problème de clé).

Dans ce cas vous pouvez utiliser la commande /usr/sbin/rndc-confgen pour obtenir les lignes à ajouter dans les fichiers de configuration :

/etc/rndc.conf
/etc/named.conf


Pour générer une clé, vous pouvez utiliser la commande suivante:

/usr/sbin/dnssec-keygen -a HMAC-MD5 -b 512 -n ZONE key


Vous pourrez alors recharger une zone DNS directement depuis Webmin, par le bouton "Apply Changes" :



Les erreurs

Si vous avez des problèmes ou des erreurs, il faut chercher l'origine du problème. Pour trouver l'origine, il n'y a rien de mieux que de regarder dans les fichiers de logs. Vous avez tout dans /var/log/messages.

Méthode :
Pour correctement débugger, ouvrez 2 consoles ssh sur votre machine. Sur la première console, lancez tail -f, ce qui vous permettra de voir les erreurs en temps réel.

[root@nsXXXX root]# tail -f /var/log/messages | grep named
Oct 3 21:12:26 nsXXXX named[23985]: listening on IPv4 interface lo, 127.0.0.1#53
Oct 3 21:12:26 nsXXXX named[23985]: listening on IPv4 interface eth0, 213.186.XX.XX#53
Oct 3 21:12:26 nsXXXX named[23985]: could not configure root hints from 'named.ca': file not found
Oct 3 21:12:26 nsXXXX named[23985]: loading configuration: file not found
Oct 3 21:12:26 nsXXXX named[23985]: exiting (due to fatal error)
oct 3 21:12:26 nsXXXX named: named startup failed


Sur la 2ème console, lancez les commandes :

[root@nsXXXX root]# /etc/rc.d/init.d/named restart
Arrêt de named : [ECHOUE]
Démarrage de named : [ECHOUE]


Sous Webmin vous pouvez voir ceci :

Echec du démarrage de BIND : Starting named: [FAILED]

Je fais exprès restart, car si jamais le process fonctionne encore, il sera tué. Apparemment stop et start ne veulent pas marcher, ce qui veut dire qu'il ne tournait pas avant et il ne veut pas redémarrer.

Pourquoi ? La solution est dans les logs :

could not configure root hints from 'named.ca': file not found


Oct 3 21:12:26 nsXXXX named[23985]: could not configure root hints from 'named.ca': file not found

Apparament le fichier named.ca n'est pas là (file not found).
On va regarder d'abord le fichier de configuration de bind /etc/named.conf

[root@nsXXXX root]# less /etc/named.conf
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
include "/etc/rndc.key";


Il y a tout sauf le plus important : la déclaration options. On va donc les ajouter. Il faut éditer /etc/named.conf avec vi ou pico.

[root@nsXXXX root]# pico /etc/named.conf

et on ajoute au debut du fichier la déclaration des options avec le répertoire où se trouve toutes les zones dns :

options {
directory "/var/named";
};

puis on essaie de redémarrer :

[root@nsXXXX root]# /etc/rc.d/init.d/named restart
Arrêt de named : [ECHOUE]
Démarrage de named : [ OK ]

Voilà. Il a redémarré. On regarde les logs pour voir si tout est ok :

[root@nsXXXX root]# tail -f /var/log/messages | grep named
oct 4 15:01:09 nsXXXX named: Arrêt de named failed
Oct 4 15:01:09 nsXXXX named[29086]: starting BIND 9.2.1 -u named
Oct 4 15:01:09 nsXXXX named[29086]: using 1 CPU
Oct 4 15:01:09 nsXXXX named[29089]: loading configuration from '/etc/named.conf'
Oct 4 15:01:09 nsXXXX named[29089]: no IPv6 interfaces found
Oct 4 15:01:09 nsXXXX named[29089]: listening on IPv4 interface lo, 127.0.0.1#53
Oct 4 15:01:09 nsXXXX named[29089]: listening on IPv4 interface eth0, 213.186.XX.XX#53
oct 4 15:01:10 nsXXXX named: Démarrage de named succeeded
Oct 4 15:01:10 nsXXXX named[29089]: command channel listening on 127.0.0.1#953
Oct 4 15:01:10 nsXXXX named[29089]: zone 0.0.127.in-addr.arpa/IN: loaded serial 1997022700
[...]
Oct 4 15:01:10 nsXXXX named[29089]: running


Apparemment, tout va bien. On voit aussi que le serveur dns a commencé le transfert des zones vers le serveur dns secondaire sdns1.ovh.net.

Oct 4 15:01:11 nsXXXX named[29089]: client 212.27.32.132#42227: transfer of 'domain.com/IN': AXFR started
Oct 4 15:01:11 nsXXXX named[29089]: client 212.27.32.132#42228: transfer of 'example.net/IN': AXFR started


On vérifie que le serveur dns répond aux requêtes dns avec des commandes dig.

[root@nsXXXX root]# dig ovh.com

; <<>> DiG 9.2.1 <<>> ovh.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15984
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0
;; QUESTION SECTION:
;ovh.com. IN A
;; ANSWER SECTION:
ovh.com. 86400 IN A 213.186.33.34
;; AUTHORITY SECTION:
ovh.com. 86400 IN NS dns.ovh.net.
ovh.com. 86400 IN NS sdns1.ovh.net.
;; Query time: 367 msec
;; SERVER: 213.186.XX.XX#53(213.186.XX.XX)
;; WHEN: Sat Oct 4 15:03:58 2003
;; MSG SIZE rcvd: 83


On a eu la reponse et elle vient du SERVER: 213.186.XX.XX#53(213.186.XX.XX) donc de la machine. Tout est correct.

could not configure root hints from 'named.ca': permission denied

Visiblement, les permissions ne sont pas correctes. On jette un coup d'oeil sur /etc/named.conf pour voir dans quel répertoire se trouvent les fichiers.

[...]
zone "domaine.com" {
type master;
file "/etc/domaine.com.hosts";
};


Même problème, il manque options et le fichier a été créé dans /etc/ On va donc ajouter options dans /etc/named.conf et bouger le fichier dans /var/named :

[root@nsXXXX root]# pico /etc/named.conf

On ajoute options

options {
directory "/var/named";
};

On modifie le repertoire de la zone domaine.com vers /var/named.

zone "domaine.com" {
type master;
file "domaine.com.hosts";
};

Vous avez remarqué qu'on ne met pas tout le chemin, ces infos sont déjà présentes dans les options. On va copier le fichier dans /var/named :

[root@nsXXXX root]# cp /etc/valheur.com.hosts /var/named

et on essaie de redemarrer bind

[root@nsXXXX root]# /etc/rc.d/init.d/named restart
Arrêt de named : [ECHOUE]
Démarrage de named : [ OK ]

Apparamment, c'est bon. On vérifie les logs:

oct 4 15:26:25 nsXXXX named: Arrêt de named failed
Oct 4 15:26:25 nsXXXX named[3763]: starting BIND 9.2.1 -u named
Oct 4 15:26:25 nsXXXX named[3763]: using 1 CPU
Oct 4 15:26:25 nsXXXX named[3766]: loading configuration from '/etc/named.conf'
Oct 4 15:26:25 nsXXXX named[3766]: no IPv6 interfaces found
Oct 4 15:26:25 nsXXXX named[3766]: listening on IPv4 interface lo, 127.0.0.1#53
Oct 4 15:26:25 nsXXXX named[3766]: listening on IPv4 interface eth0, 213.186.XX.XX#53
oct 4 15:26:25 nsXXXX named: Démarrage de named succeeded
Oct 4 15:26:25 nsXXXX named[3766]: command channel listening on 127.0.0.1#953
Oct 4 15:26:25 nsXXXX named[3766]: zone 0.0.127.in-addr.arpa/IN: loaded serial 1997022700
Oct 4 15:26:25 nsXXXX named[3766]: zone domaine.com/IN: loaded serial 1065250970
Oct 4 15:26:25 nsXXXX named[3766]: zone localhost/IN: loaded serial 42
Oct 4 15:26:25 nsXXXX named[3766]: running
Oct 4 15:26:25 nsXXXX named[3766]: zone domaine.com/IN: sending notifies (serial 1065250970)
Oct 4 15:26:26 nsXXXX named[3766]: client 212.27.32.132#42247: transfer of 'domaine.com/IN': AXFR-style IXFR started


Un petit dig pour voir si tout va bien :

[root@nsXXXX root]# dig ovh.com

; <<>> DiG 9.2.1 <<>> ovh.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63306
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0
;; QUESTION SECTION:
;ovh.com. IN A
;; ANSWER SECTION:
ovh.com. 86400 IN A 213.186.33.34
;; AUTHORITY SECTION:
ovh.com. 86400 IN NS dns.ovh.net.
ovh.com. 86400 IN NS sdns1.ovh.net.
;; Query time: 286 msec
;; SERVER: 213.186.XX.XX#53(213.186.XX.XX)
;; WHEN: Sat Oct 4 15:27:18 2003
;; MSG SIZE rcvd: 83


Vendu.