BIND: habilitando o registro de consultas negadas

BIND: habilitando o registro de consultas negadas

Estou tentando fazer com que o bind 9.11 (padrão no CentOS 8) registre consultas que não puderam ser respondidas ou que lista clientes que consultam constantemente o servidor, mas não têm permissão para fazê-lo.

Finalmente, quero usar esse log para alimentá-lo ao fail2ban e bloquear esses "idiotas".

O servidor é o NS principal responsável por responder dúvidas sobre os domínios que possui, mas nada mais.

Primeiro tentei registrar tudo, conforme descrito emhttps://kb.isc.org/docs/aa-01526mesmo com nível de depuração completo, mas nunca encontrei um logline incluindo a palavra "negado" ou similar, exceto quando alguém solicitou transferências de zona completas (que certamente só são permitidas a partir do NS secundário) assim:

27 de agosto de 2020 11:40:47.317 cliente @ 0x7fd284052510 94.102.208.167#51041 (somedomain.com): transferência de zona 'somedomain.com/AXFR/IN' negada

Ao solicitar ao servidor um nome pelo qual ele não é responsável, o cliente obtém:

cavar @ns.mydomain.com www.disney.com
Resposta não oficial:
*** Não consigo encontrar www.disney.com: Sem resposta

o que está certo, mas vincular apenas registra algo assim:

27 de agosto de 2020 11:43:27.741 consultas: informações: cliente @0x7fd2840bf440 1.2.3.4#34369 (www.disney.com): consulta:www.disney.comEM A + (xxxx)

o que não me dá ideia de que tipo de resposta foi enviada ao cliente.

A configuração atual é:

logging {
        channel "my_queries" {
                file "/var/log/named.queries" versions 600 size 20m;
                print-time yes;
                print-category yes;
                print-severity yes;
                severity dynamic;
        };
        channel "security_file" {
                file "/var/log/named.security";
                severity dynamic;
                print-time yes;
        };
        category "queries" { "my_queries"; };
        category client { "security_file"; };
        category security { "security_file"; };
        category lame-servers { null; };
};

Então: como posso criar logentries para clientes que não têm permissão para perguntar ao servidor em primeiro lugar?

Responder1

No meu caso eu vejo:

27-Aug-2020 13:33:17.170 security: info: client @0x7f88b57bdf90 192.168.10.165#18237 (www.google.com): view 192.168.10.0/24: query (cache) 'www.google.com/AAAA/IN' denied
27-Aug-2020 13:33:17.170 query-errors: info: client @0x7f88b57bdf90 192.168.10.165#18237 (www.google.com): view 192.168.10.0/24: query failed (REFUSED) for www.google.com/IN/AAAA at ../../../bin/named/query.c:7144

Minha configuração é (in /etc/bind/named.conf.options):

logging {
  channel replace_syslog {
    file "/var/log/bind/named.log" versions 5 size 2m;
    severity info;
    print-time yes;
    print-category yes;
    print-severity yes;
    };
  category default { replace_syslog; default_debug; default_syslog ; };
  category lame-servers { null; };
  channel query.log {
    file "/var/log/bind/query.log" versions 2 size 2M;
    severity debug 3;
    print-time yes;
  };
  category queries { query.log; };
};

informação relacionada