Binden Sie das DNS-Ratenlimit und die Werte für Antworten pro Sekunde und Fenster

8

In der named.conf meines DNS-Servers sehe ich

    rate-limit {
            responses-per-second 5;
            window 5;
    };

Was bedeutet das eigentlich? Und kann es Probleme mit DNS-Clients verursachen? Ist das eine zu enge Konfiguration?

Red Cricket
quelle
2
Was "was bedeutet es eigentlich" betrifft, würde ich den entsprechenden Abschnitt im Handbuch empfehlen , siehe auch den gleichen Abschnitt für die kommende Version 9.10
Håkan Lindqvist

Antworten:

7

Es begrenzt die Anzahl identischer Antworten, die ein einzelner DNS-Client in einer Sekunde erhalten kann. Die window 5Option ermöglicht einen Burst von 5 * 5 Antworten.

"Identische Antworten" und "einzelner DNS-Client" sind hier nicht offensichtliche Begriffe. Weitere Informationen finden Sie hier: http://web.archive.org/web/20140209100744/http://ss.vix.su/~ vjs / rl-arm.html .

Im Allgemeinen ist es eine gute Sache, die Rate zu begrenzen - kann Ihnen im Falle eines DOS-Angriffs eines Tages helfen. Die Standardeinstellungen sollten in den meisten Fällen in Ordnung sein.

Skarap
quelle
Der Teil über "Burst" im ersten Absatz ist falsch. windowwird nur zur Steuerung der Zeitspanne verwendet, in der "identische Antworten", die an jeden "einzelnen DNS-Client" gesendet werden, verfolgt werden. Im BIND 9 Administrator-Referenzhandbuch heißt es: Das Konto [des Kunden RRL] kann nicht positiver als das Limit pro Sekunde oder negativer als das windowMal pro Sekunde werden. Diese Nachricht von Vernon Schryver erklärt das Verhalten des Algorithmus genauer.
Kempniu
11

Sie sollten das Administratorreferenzhandbuch für BIND 9.9 lesen .

Grundsätzlich responses-per-secondist die Anzahl identischer Antworten, die pro Sekunde an ein einzelnes Ziel gesendet werden können. Die Definitionen sind schwierig.

Ein einzelnes Ziel ist ein Block von Netzwerkadressen mit der Größe, die in ipv4-prefix-lengthoder ipv6-prefix-lengthnach Bedarf konfiguriert wurde . Also, wenn der ipv4-prefix-length24 ist, und beide 192.0.2.1und 192.0.2.2sind Abfragen des DNS - Server, werden sie diese Quote teilen und können nur so viele Abfragen zwischen den beiden von ihnen senden.

Identische Antworten sind Antworten auf Anfragen nach einem bestimmten RR-Typ für einen bestimmten vorhandenen Namen oder für einen nicht vorhandenen Namen. Die folgenden Abfragen sind alle unterschiedlich:

IN A example.net.
IN A www.example.net.
IN AAAA example.net.
IN A nonexistent.domain.example.net.

Alle folgenden Abfragen sind jedoch identisch (vorausgesetzt nonexistent.domain.example.net.usw. werden ihren Namen gerecht):

IN A nonexistent.domain.example.net.
IN A nonexistent.domain2.example.net.
IN SOA other.nonexistent.domain.example.net.

windowmacht die Sache noch etwas komplizierter. Dies ist die Anzahl der Sekunden, für die das Kontingent überwiesen werden kann. Multiplizieren windowund responses-per-secondgeben das Maximum an, um das ein Kontingent positiv sein kann, oder grundlegender die Burst-Kapazität.

Um ein umfassendes Beispiel zu geben:

Sie sind der nicht wiederkehrende, maßgebliche Nameserver für example.net.. Stellen Sie sich vor, in den letzten 10 Sekunden wurde überhaupt kein DNS-Verkehr gesehen, und die Konfiguration in der Frage gilt global. Die folgenden Ereignisse treten nacheinander auf:

  1. Host 198.51.100.1 sendet 100 Anfragen für IN NS example.net.. 25 werden zugelassen und die restlichen 75 werden ignoriert.
  2. Host 198.51.100.1 sendet 100 Anfragen für IN A nonexistent.example.net.. 25 werden zugelassen und die restlichen 75 werden ignoriert.
  3. Host 198.51.100.1 sendet 1 Abfrage für IN MX nonexistent-domain.example.net. Es wird ignoriert, da das Limit für nicht vorhandene Domänen erreicht wurde.
  4. Host 198.51.100.1 sendet 1 Abfrage für IN A example.net.. Es ist erlaubt.
  5. Die Hosts 192.0.2.1 bis 192.0.2.50 senden jeweils eine einzelne Abfrage für IN NS example.net.. 25 von ihnen erhalten Antworten und die restlichen 25 werden ignoriert. Das Kontingent für 198.51.100.0/24 gilt nicht für diese Hosts, sie teilen sich jedoch das Kontingent für 192.0.2.0/24.
  6. Eine Sekunde vergeht
  7. Die Hosts 192.0.2.26 bis 192.0.2.50 wiederholen ihre Abfrage IN NS example.net.. 5 von ihnen erhalten Antworten und die restlichen 20 werden ignoriert, da das Kontingent nur durch 5 Abfragen pro Sekunde aufgefüllt wird.
Falcon Momot
quelle
4
iptables -A INPUT -p udp --dport 53 -m recent --set --name dnslimit
iptables -A INPUT -p udp --dport 53 -m recent --update --seconds 60 --hitcount 11 --name dnslimit -j DROP 

IPtables können genauso gut funktionieren. Hält den Datenverkehr vollständig vom Dienst fern, wenn ein Angriff gefunden wird.

Tiffany Walker
quelle
genial! Ich habe nicht einmal an Iptables gedacht. Aber was bedeutet das auf Englisch? Ich kann mir vorstellen ... wenn eine IP 11 oder mehr DNS-Abfragen sendet, blockieren sie diese für 60 Sekunden, oder?
Red Cricket
Nein, die Übersetzung lautet: Akzeptieren Sie nicht mehr als 11 Pakete innerhalb eines Zeitraums von 60 Sekunden und löschen Sie alle anderen Pakete.
Drcelus
1
Ich hatte ein Problem, nachdem ich versucht hatte, Ihre nette Lösung anzuwenden, hatte ich einen Fehler wie: "iptables: Anwenden von Firewall-Regeln: iptables-restore v1.4.7: -c Paketzähler nicht numerisch Fehler in Zeile: 17" Zeile 17 ist die erste einer von dir. Ich sollte ein bestimmtes Modul laden?
Die erste Zeile sollte wie folgt lauten: iptables -A INPUT -p udp -m udp --dport 53 -m letzter --set --name dnslimit --rsource
2
Ich würde nicht so weit gehen zu sagen, dass es "genauso gut funktioniert". Diese Rate begrenzt sich, ohne zu ahnen, ob es sich tatsächlich um dieselbe Abfrage handelt, die Spam ist, oder um unterschiedliche Abfragen. Letzteres wäre viel wahrscheinlicher legitimer Datenverkehr.
Håkan Lindqvist
0

Ich denke nicht, dass es eine gute Idee ist, das Limit zu bewerten. Fragen Sie sich: Beschränken Sie auch die Antworten des Webservers? Warum sind DNS-Antworten Ihrer Meinung nach weniger wichtig als Webserver-Antworten?
Und selbst wenn Sie das Ratenlimit festlegen, klingen diese 5 Anforderungen / Sek. Sehr niedrig.

Sandor Marton
quelle
2
Ratelimiting Webserver-Antworten können in bestimmten Fällen keine so schlechte Idee sein. Bei DNS handelt es sich jedoch hauptsächlich um UDP, das (im Gegensatz zu http) leicht gefälscht werden kann. Daher ist eine Ratenbegrenzung erforderlich, um zu verhindern, dass Nameserver bei Verstärkungs- oder Reflexionsangriffen verwendet werden.
Arjarj
Wenn er kein offener Resolver ist, denke ich nicht, dass es ein gutes Ziel für Reflexions- / Verstärkungsangriffe ist, aber Sie haben Recht. 5 req / sec finde ich immer noch zu niedrig.
Sandor Marton
1
Er gibt nicht an, ob es sich um einen rekursiven oder einen autorisierenden Server handelt. Für einen autorisierenden Server ist eine Ratenbegrenzung weiterhin wichtig. Außerdem sind es nicht nur 5 Anfragen pro Sekunde, sondern 5 gleiche Antworten pro Sekunde, die sogar korrigiert werden, wenn Sie unterschiedliche Antworten generieren. Im Allgemeinen ist die Einstellung "5 Anfragen pro Sekunde" beim Binden in Ordnung (da ein legitimer Server auch dazwischen andere Fragen stellt).
Arjarj
Ok, ich habe die Dokumente überprüft und wie ich sehe, ist das Ratenlimit eine Einstellung pro Client und nicht pro Server. Ich hatte den Eindruck, dass die Bindung auf insgesamt 5 req / s begrenzt wäre. Pro Client sind 5 Req / Sek. In Ordnung.
Sandor Marton