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