bind9 korrektes Rekursions-Setup


7

Wenn ich die Rekursion entferne, kann ich keine externen Domänen auflösen, aber dennoch Domänen auf dem DNS-Server auflösen.

Wie kann die Rekursion richtig eingerichtet werden, damit externe Domänen weiterhin aufgelöst werden können, ohne dass der DNS-Server geöffnet bleibt?

named.conf.options

options {
    version "One does not simply get my version";

    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.

    // forwarders {
    //      0.0.0.0;
    // };

    //========================================================================
    // 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 yes;

    auth-nxdomain no;
    listen-on-v6 { any; };
    allow-recursion { any; };
    allow-query {
            any;
            };
    allow-query-cache { any; };
    notify yes;
    dnssec-enable yes;
    dnssec-lookaside . trust-anchor dlv.isc.org.;
    also-notify {
            };
};

Ich habe auch interne Subnetze hinzugefügt, um die Rekursion zuzulassen {subnet / xx; }; Es ist jedoch immer noch nicht möglich, externe Domänen aufzulösen.


2
What is the proper way to setup recursion correctly so external domains can still be resolved without leaving the DNS server open? - Die extrem paranoide empfohlene Hochsicherheitslösung ist. Tu das nicht. Verwenden Sie Ihre autorisierenden Server nicht für die Clientauflösung, wenn Sie dies vermeiden können. ACLs begrenzen das Risiko, wenn Sie für beide denselben Server verwenden. Es besteht jedoch weiterhin die Möglichkeit, dass ein interner Angreifer motiviert ist, Ihr DNS zu beschädigen.
Zoredache

Antworten:


5

Filtern Sie, wer DNS rekursiv abfragen kann und wer nicht mit ACLs.

acl my_net { 
    192.168.1.0/24;
};

acl my_other_net {
    10.0.0.0/8;
};

options {

    [ ... ]


    recursion yes;

    allow-recursion { my_net; };
    blackhole { my_other_net; };

};

Richten Sie außerdem die Ingress- ( BCP 84 ) / Egress-Filterung in Ihrem Gateway ein, um gefälschte UDP-Pakete zu vermeiden, die Ihr Netzwerk erreichen und unerwarteten Datenverkehr oder Vergiftungen erzeugen. Blackhole nicht vertrauenswürdige Teile Ihrer lokalen Infrastruktur.


Die Reihenfolge dieser beiden muss umgekehrt werden, große Zeit. Trotzdem stimme ich Zoredache zu.
Andrew B

@ AndrewB Von welcher Reihenfolge sprichst du?
Xavier Lucas

Die Netzwerkprobleme müssen gelöst werden, bevor die ACL aussagekräftig wird.
Andrew B

@ AndrewB Oh ja, sicher. Ich habe nicht gesagt, dass es einen Befehl gibt, nur dass er beides tun muss :)
Xavier Lucas
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.