ADC

Vermeiden von DNS-DDoS-Angriffe

DNS-Server sind eine der kritischsten Komponenten eines Netzwerks und müssen vor Angriffen geschützt werden. Eine der grundlegendsten Arten von DNS-Angriffen ist der DDoS-Angriff. Angriffe dieser Art nehmen zu und können zerstörerisch sein. Sie können Folgendes tun, um DDoS-Angriffe abzuwehren:

  • Negative Aufzeichnungen löschen.
  • Beschränken Sie die Gültigkeitsdauer (TTL) negativer Aufzeichnungen.
  • Bewahren Sie NetScaler-Speicher auf, indem Sie den vom DNS-Cache verbrauchten Speicher einschränken.
  • Bewahren Sie DNS-Einträge im Cache auf.
  • Aktivieren Sie den DNS-Cache-Bypass.

Negative Datensätze löschen

Ein DNS-Angriff füllt den Cache mit negativen Einträgen (NXDOMAIN und NODATA). Daher werden Antworten auf legitime Anfragen nicht zwischengespeichert, sodass neue Anfragen zur DNS-Auflösung an einen Backend-Server gesendet werden. Die Antworten erfolgen daher verzögert.

Sie können jetzt die negativen DNS-Einträge aus dem DNS-Cache der NetScaler-Appliance löschen.

Leeren negativer Cache-Datensätze mithilfe der CLI

Geben Sie an der Eingabeaufforderung Folgendes ein:

flush dns proxyrecords -type (dnsRecordType | negRecType) NXDOMAIN | NODATA

Beispiel:

flush dns proxyrecords –negRecType NODATA

Leeren negativer Cache-Datensätze mithilfe der GUI

  1. Navigieren Sie zu Konfiguration > Traffic Management > DNS > Records.
  2. Klicken Sie im Detailbereich auf Flush Proxy Records.
  3. Wählen Sie im Feld Flush Type die Option Negative Recordsaus.
  4. Wählen Sie im Feld Negative Records Type entweder NXDOMAIN oder NODATAaus.

Schutz vor zufälligen Subdomain- und NXDOMAIN-Angriffen

Um zufällige Subdomain- und NXDOMAIN-Angriffe zu verhindern, können Sie den DNS-Cache-Speicher einschränken und die TTL-Werte für negative Datensätze anpassen.

Um die vom DNS-Cache verbrauchte Speichermenge zu begrenzen, geben Sie die maximale Cachegröße (in MB) sowie die Cachegröße (in MB) zum Speichern negativer Antworten an. Wenn eines der Grenzwerte erreicht ist, werden dem Cache keine weiteren Einträge hinzugefügt. Außerdem werden Syslog-Meldungen protokolliert, und wenn Sie SNMP-Traps konfiguriert haben, werden SNMP-Traps generiert. Wenn diese Grenzwerte nicht gesetzt sind, wird das Caching fortgesetzt, bis der Systemspeicher erschöpft ist.

Ein höherer TTL-Wert für negative Datensätze kann dazu führen, dass Datensätze gespeichert werden, die für eine lange Zeit nicht wertvoll sind. Ein niedrigerer TTL-Wert führt dazu, dass mehr Anfragen an den Backend-Server gesendet werden.

Die TTL des negativen Datensatzes wird auf einen Wert gesetzt, der der niedrigere Wert des TTL-Werts oder des „Expires“ -Werts des SOA-Datensatzes sein kann.

Hinweis:

  • Diese Einschränkung wird pro Paket-Engine hinzugefügt. Wenn MaxCacheSize beispielsweise auf 5 MB festgelegt ist und die Appliance über 3 Paket-Engines verfügt, beträgt die gesamte Cachegröße 15 MB.
  • Die Cachegröße für die negativen Datensätze muss kleiner oder gleich der maximalen Cachegröße sein.
  • Wenn Sie das DNS-Cache-Speicherlimit auf einen Wert reduzieren, der unter der Menge der bereits zwischengespeicherten Daten liegt, bleibt die Cachegröße über dem Grenzwert, bis die Daten altern. Das heißt, es übersteigt TTL0 oder ist geleert (Befehl flush dns proxyrecords oder Flush Proxy Records in der NetScaler GUI).
  • Informationen zum Konfigurieren von SNMP-Traps finden Sie unter Konfigurieren des NetScaler zum Generieren von SNMP-Traps.

Beschränken Sie den vom DNS-Cache belegten Speicher mit der Befehlszeilenschnittstelle

Geben Sie an der Eingabeaufforderung Folgendes ein:

set dns parameter -maxCacheSize <MBytes> -maxNegativeCacheSize <MBytes>

Beispiel:

set dns parameter - maxCacheSize 100 -maxNegativeCacheSize 25

Beschränken Sie den vom DNS-Cache verbrauchten Speicher mithilfe der GUI

Navigieren Sie zu Konfiguration > Traffic Management > DNS, klicken Sie auf DNS-Einstellungen ändernund stellen Sie die folgenden Parameter ein:

  • Maximale Cachegröße in MB
  • Maximale negative Cachegröße in MB

Schränken Sie die TTL negativer Datensätze mithilfe der CLI ein

Geben Sie an der Eingabeaufforderung Folgendes ein:

set dns parameter -maxnegcacheTTL <secs>

Beispiel:

set dns parameter -maxnegcacheTTL 360

Schränken Sie die TTL negativer Datensätze mithilfe der GUI ein

  1. Navigieren Sie zu Konfiguration > Traffic Management > DNS.
  2. Klicken Sie auf DNS-Einstellungen ändern und legen Sie den Parameter Max Negative Cache TTL in sec fest.

DNS-Einträge im Cache aufbewahren

Ein Angriff kann den DNS-Cache mit unwichtigen Einträgen überfluten, kann aber dazu führen, dass die bereits zwischengespeicherten legitimen Datensätze geleert werden, um Platz für die neuen Einträge zu schaffen. Um zu verhindern, dass Angriffe den Cache mit ungültigen Daten füllen, können Sie die legitimen Datensätze auch dann beibehalten, wenn sie ihre TTL-Werte überschreiten.

Wenn Sie den CacheNoExpire-Parameter aktivieren, werden die derzeit im Cache befindlichen Datensätze beibehalten, bis Sie den Parameter deaktivieren.

Hinweis:

  • Diese Option kann nur verwendet werden, wenn die maximale Cachegröße angegeben ist (MaxCacheSize-Parameter).
  • Wenn MaxNegCacheTTL konfiguriert und CacheNoExpire aktiviert ist, hat CacheNoExpire Priorität.

Bewahren Sie DNS-Einträge mithilfe der CLI im Cache auf

Geben Sie an der Eingabeaufforderung Folgendes ein:

set dns parameter -cacheNoExpire ( ENABLED | DISABLED)

Beispiel:

set dns parameter -cacheNoExpire ENABLED

Bewahren Sie DNS-Einträge mithilfe der GUI im Cache auf

  1. Navigieren Sie zu Konfiguration > Traffic Management > DNS und klicken Sie auf DNS-Einstellungen ändern.
  2. Wählen Sie Cache No Expire aus.

DNS-Cache-Bypass aktivieren

Für eine bessere Sichtbarkeit und Kontrolle von DNS-Anfragen stellen Sie den CacheHitBypass-Parameter so ein, dass alle Anfragen an die Backend-Server weitergeleitet werden und der Cache erstellt, aber nicht verwendet werden kann. Nachdem der Cache erstellt wurde, können Sie den Parameter deaktivieren, sodass Anfragen aus dem Cache bearbeitet werden.

Aktivieren Sie den DNS-Cache-Bypass mithilfe der CLI

Geben Sie an der Eingabeaufforderung Folgendes ein:

set dns parameter -cacheHitBypass ( ENABLED | DISABLED )

Beispiel:

set dns parameter -cacheHitBypass ENABLED

Aktivieren Sie den DNS-Cache-Bypass mithilfe der GUI

  1. Navigieren Sie zu Konfiguration > Traffic Management > DNS und klicken Sie auf DNS-Einstellungen ändern.
  2. Wählen Sie Cache Hit Bypassaus.

Den Slowloris Angriff verhindern

Eine DNS-Anfrage, die sich über mehrere Pakete erstreckt, stellt die potenzielle Gefahr eines Slowloris Angriffs dar. Die NetScaler-Appliance kann DNS-Abfragen, die in mehrere Pakete aufgeteilt sind, im Hintergrund löschen.

Sie können den splitPktQueryProcessing Parameter auf ALLOW oder DROP einer DNS-Abfrage setzen, wenn die Abfrage in mehrere Pakete aufgeteilt ist.

Hinweis: Diese Einstellung gilt nur für DNS-TCP.

Beschränken Sie die DNS-Abfragen mithilfe der CLI auf ein einzelnes Paket

Geben Sie an der Eingabeaufforderung Folgendes ein:

set dns parameter -splitPktQueryProcessing ( ALLOW | DROP )

Beispiel:

set dns parameter -splitPktQueryProcessing DROP

Beschränken Sie DNS-Abfragen mithilfe der GUI auf ein einzelnes Paket

  1. Navigieren Sie zu Konfiguration > Traffic Management > DNS und klicken Sie auf DNS-Einstellungen ändern.
  2. Wählen Sie im Feld Verarbeitung von Split Packet Query Processing die Option ALLOW oder DROPaus.

Sammeln Sie Statistiken der DNS-Antworten, die aus dem Cache bereitgestellt werden

Sie können Statistiken der DNS-Antworten sammeln, die aus dem Cache bereitgestellt werden. Verwenden Sie dann diese Statistiken, um einen Schwellenwert zu erstellen, ab dem mehr DNS-Verkehr verloren geht, und setzen Sie diesen Schwellenwert mit einer bandbreitenbasierten Richtlinie durch. Bisher war die Bandbreitenberechnung für einen virtuellen DNS-Lastausgleichsserver nicht korrekt, da die Anzahl der aus dem Cache abgegebenen Anfragen nicht gemeldet wurde.

Im Proxymodus werden die Statistiken für Anforderungsbytes, Antwortbytes, Gesamtzahl der empfangenen Pakete und Gesamtzahl der gesendeten Pakete kontinuierlich aktualisiert. Bisher wurden diese Statistiken nicht immer aktualisiert, insbesondere für einen virtuellen DNS-Lastausgleichsserver.

Im Proxymodus können Sie jetzt auch die Anzahl der DNS-Antworten ermitteln, die aus dem Cache bereitgestellt werden. Um diese Statistiken zu sammeln, wurden dem stat lb vserver <DNSvirtualServerName> Befehl die folgenden Optionen hinzugefügt:

  • Anfragen — Gesamtzahl der Anfragen, die vom virtuellen DNS- oder DNS_TCP-Server empfangen wurden. Beinhaltet die an das Backend weitergeleiteten Anfragen und die aus dem Cache beantworteten Anfragen.
  • Vserver hits — Gesamtzahl der Anfragen, die an das Backend weitergeleitet wurden. Die Anzahl der Anfragen, die aus dem Cache bedient werden, ist die Differenz zwischen der Gesamtzahl der Anfragen und der Anzahl der Anfragen, die vom virtuellen Server bedient werden.
  • Antworten — Gesamtzahl der von diesem virtuellen Server gesendeten Antworten. Wenn ein virtueller DNS-LB-Server beispielsweise 5 DNS-Anfragen empfangen, 3 davon an das Backend weitergeleitet und 2 davon aus dem Cache bedient hat, würde der entsprechende Wert jeder dieser Statistiken wie folgt lauten:
    • Vserver-Treffer: 3
    • Anfragen: 5
    • Antworten: 5
Vermeiden von DNS-DDoS-Angriffe