Transfert de zone de liaison refusé

10

METTRE À JOUR:

Version BIND:

[[email protected]] $ named -v
BIND 9.3.6-P1-RedHat-9.3.6-16.P1.el5

Système opérateur:

CentOS release 5.6 (Final)

Après l'exécution [[email protected]] $ dig @10.224.45.130 example.com. axfr:

Esclave:

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5 <<>> @10.224.45.130 example.com. axfr
; (1 server found)
;; global options:  printcmd
; Transfer failed.

Maître:

28-Aug-2011 12:29:01.384 client 10.224.45.131#60553: query: example.com IN AXFR -
28-Aug-2011 12:29:01.384 client 10.224.45.131#60553: zone transfer 'example.com/AXFR/IN' denied

Même message d'erreur qu'auparavant.

MISE À JOUR 2:

[[email protected] ~] # iptables -L -n -v
Chain INPUT (policy DROP 30235 packets, 1747K bytes)
 pkts bytes target     prot opt in     out     source               destination         
 171K   23M ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  tun0   *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  tap0   *       0.0.0.0/0            0.0.0.0/0           
57196 6930K ACCEPT     all  --  br0    *       0.0.0.0/0            0.0.0.0/0           
  688 57376 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 8 
37869 6120K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
  392 21216 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22 
    1    64 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:53 
   74  5275 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:53 
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 
    1    64 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:110 
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:143 
    3   192 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:389 
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:443 
    1    64 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:465 
    1    64 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:587 
   13   832 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:636 
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:694 
    1    64 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:843 
    1    64 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:873 
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:953 
  119  7584 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:993 
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:993 
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:1194 
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:1194 
    1    48 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:3306 
    1    64 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:5901 
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            10.224.45.130       tcp dpt:10000 
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:11211 
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:11212 
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:11213 
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:11511 
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:11512 
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:11513 

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 2987  372K ACCEPT     all  --  br0    *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  *      br0     0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:443 

Chain OUTPUT (policy ACCEPT 246K packets, 37M bytes)
 pkts bytes target     prot opt in     out     source               destination

J'ai probablement regardé chaque page concernant la configuration BIND maître / esclave, et je ne peux pas pour la vie de moi faire fonctionner le transfert de zone.

Voici ma configuration: (faites défiler vers le bas pour la description du problème)

Maître: 10.224.45.130

/etc/named.conf

options {
    directory "/var/named";
    version "unknown";
    pid-file "/var/run/named/named.pid";
    recursion yes;
    allow-recursion { localhost; localnets; };
    notify explicit;
    allow-transfer {
        10.224.45.131;
    };
    also-notify {
        10.224.45.131;
    };
};

zone "." {
    type hint;
    file "named.root";
};

zone "example.com" IN {
    type master;
    file "data/example.com.hosts";
};

Esclave: 10.224.45.131

/etc/named.conf

options {
    directory "/var/named";
    version "unknown";
    pid-file "/var/run/named/named.pid";
    recursion yes;
    allow-recursion { localhost; localnets; };
    notify yes;
    allow-transfer { "none"; };
    allow-notify {
        10.224.45.130;
    };
};

zone "." {
    type hint;
    file "named.root";
};

zone "example.com" IN {
    type slave;
    file "slaves/example.com.hosts";
    masters {
        10.224.45.130;
    };
};

Voici le problème. Lorsque je redémarre nommé sur le serveur esclave, il voit que les fichiers de zone n'existent pas encore et demande un transfert du serveur maître:

named.log (esclave)

[10.224.45.131] zone example.com/IN: no database exists yet, requesting AXFR of initial version from 10.224.45.130#53

... après quoi le serveur maître reçoit la demande de transfert:

named.log (maître)

[10.224.45.130] client 10.224.45.131#53467: query: example.com IN AXFR -

... et répond avec la demande de transfert, qui est refusée:

named.log (maître)

[10.224.45.130] client 10.224.45.131#53467: zone transfer 'example.com/AXFR/IN' denied

... sur le serveur esclave, il apparaît comme REFUSÉ:

named.log (esclave)

[10.224.45.131] transfer of 'example.com/IN' from 10.224.45.130#53: failed while receiving responses: REFUSED

En regardant toutes les configs encore et encore, je ne trouve rien de mal avec les paramètres. J'ai l'adresse IP du serveur maître répertoriée dans le mastersréglage de la configuration de la zone esclave, j'ai l'adresse IP du serveur allow-transfermaître répertoriée dans le réglage des paramètres des options maître.

Toutes les adresses IP sont ce qu'elles devraient être, ce n'est pas comme si elles essayaient d'utiliser l'adresse IP publique et étaient rejetées parce que l'adresse IP ne correspond pas. J'ai la configuration iptables pour autoriser les connexions TCP / UDP sur le port 53 (et 953) sur les deux serveurs. J'ai configuré les autorisations de fichier correctement afin que le répertoire / slaves où les fichiers de zone esclave sont stockés soit accessible en écriture par l' namedutilisateur.

Peu importe ce que je fais, j'ai toujours cette même erreur. Si quelqu'un peut me donner une idée de ce qui me manque, je l'apprécierais vraiment!

Sarah Ryan
la source
2
Avez - vous essayé de placer (temporairement) allow-transferà anyvoir si cela résout le problème? Votre allow-transferclause semble correcte, mais cela éliminera tout risque de problèmes ...
voretaq7
Non, toujours la même erreur. J'ai également essayé d'ajouter l'adresse IP WAN du serveur maître au paramètre «maîtres», juste au cas où, et cela ne l'a pas corrigé non plus.
Sarah Ryan
1
Avez-vous exécuté rndc reconfigaprès avoir changé la configuration sur le maître?
Cakemox

Réponses:

3

Pour commencer, essayez de vérifier qu'un transfert de zone fonctionne.

Sur l'esclave, lancez dig @master your-domain. axfr

Quelles versions de BIND et quel système d'exploitation?

dmourati
la source
J'ai mis à jour ma question avec la sortie et les journaux de cette commande. Il montre qu'il est refusé comme dans la demande de transfert de zone régulière. J'ai également ajouté des informations concernant les versions et le système d'exploitation. Désolé d'avoir omis ces informations importantes.
Sarah Ryan
1
OK, donc le fait que la commande dig échoue indique qu'il y a toujours un problème sur le maître. @ voretaq7 ci-dessus autorise le transfert vers tout ce que je reconnais être une étape de dépannage raisonnable. Ajoutez localhost pour allow-transsfer, essayez la commande dig du maître sur localhost. Configurez également un "tcpdump -i any port 53" sur le maître pour vérifier les adresses IP source / destination. Vous dites "J'ai configuré iptables pour autoriser les connexions TCP / UDP sur le port 53 (et 953) sur les deux serveurs" mais veuillez ajouter la sortie de "iptables -L -n -v" sur le maître. Cela ou arrêtez iptables sur le maître et retestez.
dmourati
J'ai ajouté localhost (ainsi que tous les autres noms d'hôtes et adresses IP qu'il pourrait éventuellement être) au paramètre allow-transfer et j'obtiens toujours la même erreur. J'ai ajouté la sortie de la commande iptables que vous avez demandée, ainsi que la désactivation d'iptables lors d'une nouvelle tentative. Toujours pas de chance.
Sarah Ryan
3

Trouvé le problème. J'utilise un BIND chrooté, mais je modifiais les fichiers conf dans / etc et non / var / named / chroot / etc. Les changements que je faisais n'étaient donc pas visibles. J'ai copié les fichiers conf dans le répertoire chroot et tout fonctionne bien maintenant.

Sarah Ryan
la source
1
Bon vieux chroot. Content que vous l'ayez trouvé.
dmourati
1

Il peut sembler que cela est déjà couvert par l' allow-transferinstruction dans options, mais essayez d'ajouter une allow-transferinstruction explicite sous la zone.

Je ne vois vraiment rien de mal avec votre configuration. Il semble que cela devrait fonctionner. Est-ce que bind écoute sur ce port? (C'est-à-dire, des demandes réussissent-elles? Ou échouent-elles toutes?)

Eh bien, j'ai deux autres idées qui valent la peine d'être essayées.

  1. Assurez-vous que vos horloges sont à jour (au moins dans une marge raisonnable) sur les deux serveurs.

  2. Il se peut que SELinux interfère. Essayez de le désactiver temporairement pour tester.

bahamat
la source
J'ai essayé de mettre l'option allow-transfer dans la configuration de zone et cela me donne toujours la même erreur. Ce ne sont que les demandes de transfert qui échouent. Je peux interroger le serveur avec succès pour tout type d'enregistrement et il le renverra comme prévu. Mais lorsque j'essaie de faire le transfert de zone, je reçois des messages d'erreur refusés / REFUSÉS.
Sarah Ryan
Vérifiez ma réponse pour une mise à jour.
bahamat