BIND: Aktivieren der Protokollierung abgelehnter Abfragen

BIND: Aktivieren der Protokollierung abgelehnter Abfragen

Ich versuche, Bind 9.11 (Standard unter CentOS 8) so zu bekommen, dass es Abfragen protokolliert, die nicht beantwortet werden konnten, oder Clients auflistet, die ständig den Server abfragen, dies aber nicht dürfen.

Schließlich möchte ich diese Protokollierung nutzen, um sie an fail2ban weiterzugeben und diese „Idioten“ zu blockieren.

Der Server ist ein primärer NS, der für die Beantwortung von Anfragen zu den von ihm verwalteten Domänen zuständig ist, mehr jedoch nicht.

Zuerst habe ich versucht, alles zu protokollieren, wie inhttps://kb.isc.org/docs/aa-01526sogar mit vollständigem Debug-Level, habe aber nie eine Logzeile mit dem Wort „abgelehnt“ oder ähnlichem gefunden, außer wenn jemand eine vollständige Zonenübertragung anforderte (die sicherlich nur vom sekundären NS aus erlaubt ist), wie folgt:

27.08.2020 11:40:47.317 Client @0x7fd284052510 94.102.208.167#51041 (somedomain.com): Zonenübertragung „somedomain.com/AXFR/IN“ abgelehnt

Wenn der Server mit einer Abfrage einen Namen anfordert, für den er nicht zuständig ist, erhält der Client eine:

dig @ns.mydomain.com www.disney.com
Nicht verbindliche Antwort:
*** Kann www.disney.com nicht finden: Keine Antwort

was richtig ist, aber bind loggt nur so etwas:

27.08.2020 11:43:27.741 Abfragen: Info: Client @0x7fd2840bf440 1.2.3.4#34369 (www.disney.com): Abfrage:www.disney.comIN A + (xxxx)

was mir keinen Hinweis darauf gibt, welche Art von Antwort an den Kunden gesendet wurde.

Die aktuelle Konfiguration ist:

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

Also: Wie kann ich Protokolleinträge für Clients erstellen, die ursprünglich keine Abfrage beim Server durchführen durften?

Antwort1

In meinem Fall sehe ich:

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

Meine Konfiguration ist (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; };
};

verwandte Informationen