Transferência de zona de ligação recusada

10

ATUALIZAR:

Versão BIND:

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

Sistema operacional:

CentOS release 5.6 (Final)

Após a execução [[email protected]] $ dig @10.224.45.130 example.com. axfr:

Escravo:

; <<>> 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.

Mestre:

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

A mesma mensagem de erro de antes.

ATUALIZAÇÃO 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

Eu provavelmente já observei todas as páginas relacionadas à configuração mestre / escravo do BIND e, durante toda a minha vida, não consigo fazer a transferência de zona funcionar.

Aqui está a minha configuração: (role para baixo para descrição do problema)

Master: 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";
};

Escravo: 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;
    };
};

Aqui está o problema. Quando eu reinicio o nome no servidor escravo, ele vê que os arquivos da zona ainda não existem e solicita uma transferência do servidor mestre:

named.log (escravo)

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

... após o qual o servidor mestre recebe a solicitação de transferência:

named.log (mestre)

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

... e responde com a solicitação de transferência, que é negada:

named.log (mestre)

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

... no servidor escravo, ele aparece como RECUSADO:

named.log (escravo)

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

Olhando para todas as configurações repetidamente, não consigo encontrar nada errado com as configurações. Eu tenho o endereço IP do servidor mestre listado na mastersconfiguração da zona escrava, e o endereço IP do servidor escravo listado na allow-transferconfiguração das opções das opções principais.

Todos os endereços IP são o que deveriam ser, não é como se estivesse tentando usar o endereço IP público e sendo rejeitado porque o endereço IP não corresponde. Eu tenho o iptables configurado para permitir conexões TCP / UDP na porta 53 (e 953) nos dois servidores. Eu configurei as permissões de arquivo corretamente para que o diretório / slaves onde os arquivos da zona escrava estão armazenados seja gravável pelo namedusuário.

Não importa o que eu faça, sempre recebo o mesmo erro. Se alguém puder me dar uma idéia do que estou perdendo, eu realmente aprecio isso!

Sarah Ryan
fonte
2
Já experimentou (temporariamente) a configuração allow-transferpara anyver se isso resolve o problema? Sua allow-transfercláusula parece correto, mas isso irá eliminar qualquer chance de problemas ...
voretaq7
Não, ainda estou recebendo o mesmo erro. Também tentei adicionar o endereço IP da WAN do servidor mestre à configuração 'mestres', apenas por precaução, e isso também não foi corrigido.
Sarah Ryan
1
Você correu rndc reconfigdepois de alterar a configuração no mestre?
Cakemox 29/08/11

Respostas:

3

Para começar, tente verificar se uma transferência de zona funciona.

No escravo, emita dig @master your-domain. axfr

Quais versões do BIND e qual sistema operacional?

dmourati
fonte
Atualizei minha pergunta com a saída e os logs deste comando. Ele mostra como sendo negado, como na solicitação de transferência de zona regular. Também adicionei informações sobre versões e SO. Desculpe por deixar essas informações importantes de fora.
Sarah Ryan
1
OK, o fato de o comando dig falhar indica que ainda há um problema no mestre. @ voretaq7 acima, a permissão de transferência sugerida para qualquer um que eu concorde é uma etapa razoável de solução de problemas. Adicione localhost ao allow-transsfer, tente o comando dig do mestre em localhost. Configure também um "tcpdump -i any port 53" no master para verificar os endereços IP de origem / destino. Você diz "Eu tenho o iptables configurado para permitir conexões TCP / UDP na porta 53 (e 953) nos dois servidores", mas adicione a saída de "iptables -L -n -v" no mestre. Isso ou desligue o iptables no mestre e teste novamente.
dmourati
Adicionei localhost (assim como todos os outros nomes de host e endereços IP) à configuração de transferência de permissão e ainda estou recebendo o mesmo erro. Adicionei a saída do comando iptables que você solicitou, além de desativar o iptables ao tentar novamente. Ainda sem sorte.
Sarah Ryan
3

Encontrei o problema. Estou usando um BIND com chroot, mas estava editando os arquivos conf em / etc e não em / var / named / chroot / etc. Então as mudanças que eu estava fazendo não estavam sendo vistas. Copiei os arquivos conf para o diretório chroot e tudo funciona bem agora.

Sarah Ryan
fonte
1
Bom e velho chroot. Que bom que você encontrou.
precisa saber é o seguinte
1

Pode parecer que isso já esteja coberto pela allow-transferinstrução options, mas tente adicionar uma allow-transferinstrução explícita na zona.

Realmente não vejo nada de errado com sua configuração. Parece que deve funcionar. O bind está escutando nessa porta? ( Ou seja, algum pedido foi bem-sucedido? Ou todos falharam?)

Bem, tenho mais duas idéias que vale a pena tentar.

  1. Verifique se seus relógios estão atualizados (pelo menos dentro de uma margem razoável) nos dois servidores.

  2. Você pode ter o SELinux interferindo. Tente desativá-lo temporariamente para testar.

bahamat
fonte
Tentei colocar a opção de transferência de permissão na configuração da zona e ainda está me dando o mesmo erro. São apenas solicitações de transferência que falham. Posso consultar com êxito qualquer servidor no tipo de registro e ele retornará como esperado. Mas quando tento fazer a transferência de zona, recebo mensagens de erro negadas / recusadas.
Sarah Ryan
Verifique minha resposta para uma atualização.
bahamat