Bind9 negado consulta

4

Eu criei um servidor DNS baseado em bind9 para funcionar apenas no modo de encaminhamento:

Este é o meu arquivo named.conf.options:

#acl goodclients {
#        localhost;
#        localnets;
#};


options {

        directory "/var/cache/bind";

        // If there is a firewall between you and nameservers you want
        // to talk to, you may need to fix the firewall to allow multiple
        // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses replacing
        // the all-0's placeholder.

        recursion yes;

        #allow-query { goodclients; };

        forwarders {
            8.8.8.8;
            8.8.4.4;
        };
        forward only;

        //========================================================================
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See https://www.isc.org/bind-keys
        //========================================================================
        dnssec-validation auto;

        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
};

Eu configurei o cliente e tudo funciona bem, mas recebi erros como este:

May 15 08:54:49 digitalocean named[3294]: client x.x.x.x#8137 (unix.stackexchange.com): query (cache) 'unix.stackexchange.com/A/IN' denied

Onde x.x.x.x é o meu endereço IP público.

Observe que o servidor DNS é público e estou usando seu IP público na configuração do cliente.

Devo ignorar a mensagem de erro?

Quando cavar o google.com usando o IP público do servidor DNS (y.y.y.y):

dig @y.y.y.y google.com


; <<>> DiG 9.9.5-3ubuntu0.8-Ubuntu <<>> @y.y.y.y google.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 28091
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;google.com.            IN  A

;; Query time: 15 msec
;; SERVER: y.y.y.y#53(y.y.y.y)
;; WHEN: Sun May 15 14:57:56 CEST 2016
;; MSG SIZE  rcvd: 39

Isso é confuso.

    
por 4m1nh4j1 15.05.2016 / 15:00

2 respostas

2

Encontrei. A solução é adicionar:

allow-query {
            any;
        };

EDITAR: A solução do Rui F Ribeiro funciona, mas preciso criar um servidor público. Se você quiser evitar os problemas de segurança, consulte os comentários.

    
por 15.05.2016 / 16:06
4

Não está funcionando porque você comentou as diretivas allow-query e goodclients . Você deve removê-los do comentário e preencher goodclients com os IPs / redes que o BIND deve responder às consultas.

acl goodclients {
    localhost;
    x.x.x.0/24;
};

options {
    ...
    allow-query { goodclients; };

}

De link

allow-query defines an match list of IP address(es) which are allowed to issue queries to the server.

Por favor, note que a partir do BIND 9.4.1-P1, o comportamento padrão de allow-query mudou de permitido para proibido.

link

    
por 15.05.2016 / 16:09