Citrix ADC

Minderung von DNS-DDoS-Angriffen

DNS-Server sind eine der wichtigsten 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 sind auf dem Vormarsch und können destruktiv sein. Sie können Folgendes tun, um DDoS-Angriffe abzuschwächen:

  • Flush negativer Einträge.
  • Beschränken Sie die Lebenszeit (TTL) negativer Einträge.
  • Bewahren Sie Citrix ADC ADC-Speicher auf, indem Sie den vom DNS-Cache verbrauchten Speicher einschränken.
  • Behalten Sie DNS-Einträge im Cache bei.
  • Aktivieren Sie den DNS-Cache-Umgehung.

Negative Datensätze leeren

Ein DNS-Angriff füllt den Cache mit negativen Datensätzen (NXDOMAIN und NODATA). Daher werden Antworten auf legitime Anforderungen nicht zwischengespeichert, so dass neue Anforderungen an einen Back-End-Server zur DNS-Auflösung gesendet werden. Die Antworten verzögern sich daher.

Sie können jetzt die negativen DNS-Einträge aus dem DNS-Cache der Citrix ADC Appliance leeren.

Leeren negativer Cache-Datensätze mit der CLI

Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Beispiel:

flush dns proxyrecords –negRecType NODATA

Leeren von negativen Cache-Datensätzen mit der GUI

  1. Navigieren Sie zu Konfiguration > Datenverkehrsverwaltung > DNS > Datensätze.
  2. Klicken Sie im Detailbereich auf “ Proxy-Datensätze leeren”.
  3. Wählen Sie im Feld Flush Type die Option Negative Datensätze aus.
  4. Wählen Sie im Feld Negative Datensatztyp entweder NXDOMAIN oder NODATA aus.

Schutz vor zufälligen Subdomain- und NXDOMAIN-Angriffen

Um zufällige Subdomain- und NXDOMAIN-Angriffe zu verhindern, können Sie den DNS-Cachespeicher 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) und auch die Cachegröße (in MB) zum Speichern negativer Antworten an. Wenn eine der beiden Grenzwerte erreicht ist, werden dem Cache keine weiteren Einträge hinzugefügt. Außerdem werden Syslog-Nachrichten protokolliert, und wenn Sie SNMP-Traps konfiguriert haben, werden SNMP-Traps generiert. Wenn diese Grenzwerte nicht festgelegt 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 lange Zeit nicht wertvoll sind. Ein niedrigerer TTL-Wert führt dazu, dass weitere Anforderungen an den Back-End-Server gesendet werden.

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

Hinweis:

  • Diese Einschränkung wird pro Paket-Engine hinzugefügt. Wenn beispielsweise MaxCacheSize auf 5 MB festgelegt ist und die Appliance über 3 Paketmodule verfügt, beträgt die Gesamtcachegröß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 niedriger ist als die Menge der bereits zwischengespeicherten Daten, bleibt die Cachegröße über dem Limit, bis die Daten älter werden. Das heißt, es übersteigt TTL0 oder ist geleert (Befehl flush dns proxyrecords oder Flush Proxy Records in der Citrix ADC GUI).
  • Informationen zum Konfigurieren von SNMP-Traps finden Sie unter NetScaler zum Generieren von SNMP-Traps konfigurieren.

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 belegten Speicher mit der GUI

Navigieren Sie zu Konfiguration > Verkehrsverwaltung > DNS, klicken Sie auf DNS-Einstellungen ändern, und legen Sie die folgenden Parameter fest:

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

Beschränken Sie die TTL negativer Datensätze mit der CLI

Geben Sie an der Eingabeaufforderung Folgendes ein:

set dns parameter -maxnegcacheTTL <secs>

Beispiel:

set dns parameter -maxnegcacheTTL 360

Beschränken Sie die TTL negativer Datensätze mit der GUI

  1. Navigieren Sie zu Konfiguration > Datenverkehrsverwaltung > 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 nicht wichtigen Einträgen überfluten, kann jedoch 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 beibehalten, auch wenn sie ihre TTL-Werte überschreiten.

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

Hinweis:

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

Behalten Sie DNS-Einträge im Cache mit der CLI

Geben Sie an der Eingabeaufforderung Folgendes ein:

set dns parameter -cacheNoExpire ( ENABLED | DISABLED)

Beispiel:

set dns parameter -cacheNoExpire ENABLED

Behalten Sie DNS-Einträge im Cache mit der GUI

  1. Navigieren Sie zu Konfiguration > Verkehrsverwaltung > DNS, und klicken Sie auf DNS-Einstellungen ändern.
  2. Wählen Sie Cache läuft nicht ab aus.

DNS-Cache-Umgehung aktivieren

Um die Transparenz und Kontrolle über DNS-Anforderungen zu verbessern, legen Sie den Parameter cachehitBypass so fest, dass er alle Anforderungen an die Back-End-Server weiterleitet und den Aufbau des Cache zulässt, aber nicht verwendet wird. Nachdem der Cache erstellt wurde, können Sie den Parameter deaktivieren, damit Anforderungen aus dem Cache bedient werden.

Aktivieren des DNS-Cache-Umgehens mit der CLI

Geben Sie an der Eingabeaufforderung Folgendes ein:

set dns parameter -cacheHitBypass ( ENABLED | DISABLED )

Beispiel:

set dns parameter -cacheHitBypass ENABLED

Aktivieren des DNS-Cache-Umgehens mit der GUI

  1. Navigieren Sie zu Konfiguration > Verkehrsverwaltung > DNS, und klicken Sie auf DNS-Einstellungen ändern.
  2. Wählen Sie Cache Hit Bypass aus.

Slowloris-Angriff verhindern

Eine DNS-Abfrage, die mehrere Pakete umfasst, stellt die potenzielle Bedrohung eines Slowloris-Angriffs dar. Die Citrix ADC Appliance kann DNS-Abfragen, die in mehrere Pakete aufgeteilt sind, im Hintergrund löschen.

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

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

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

Geben Sie an der Eingabeaufforderung Folgendes ein:

set dns parameter -splitPktQueryProcessing ( ALLOW | DROP )

Beispiel:

set dns parameter -splitPktQueryProcessing DROP

Beschränken von DNS-Abfragen auf ein einzelnes Paket mit der GUI

  1. Navigieren Sie zu Konfiguration > Verkehrsverwaltung > DNS, und klicken Sie auf DNS-Einstellungen ändern.
  2. Wählen Sie im Feld Split Packet Query Processing die Option ALLOW oder DROP.

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, über den hinaus mehr DNS-Datenverkehr fallen gelassen wird, und setzen Sie diesen Schwellenwert mit einer bandbreitenbasierten Richtlinie durch. Zuvor war die Bandbreitenberechnung für einen virtuellen DNS-Lastausgleichsserver nicht korrekt, da die Anzahl der vom Cache bereitgestellten Anforderungen nicht gemeldet wurde.

Im Proxy-Modus werden die Statistiken für Anforderungsbytes, Antwortbytes, empfangene Gesamtpakete und Gesamtzahl der gesendeten Pakete kontinuierlich aktualisiert. Zuvor wurden diese Statistiken nicht immer aktualisiert, insbesondere für einen virtuellen DNS-Lastausgleichsserver.

Im Proxymodus können Sie nun 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 — Gesamtanzahl der Anfragen, die vom DNS- oder DNS_TCP-Server empfangen wurden. Enthält die an das Back-End weitergeleiteten Anforderungen und die aus dem Cache beantworteten Anforderungen.
  • Vserver-Treffer : Gesamtzahl der Anfragen, die an das Back-End weitergeleitet wurden. Die Anzahl der Anfragen, die aus dem Cache bereitgestellt werden, ist die Differenz zwischen der Gesamtzahl der Anfragen und der Anzahl der vom virtuellen Server bereitgeSTELLTEN Anforderungen.
  • Antworten — Gesamtanzahl der von diesem virtuellen Server gesendeten Antworten. Wenn beispielsweise ein virtueller DNS-LB-Server 5 DNS-Anforderungen empfangen hat, 3 von ihnen an das Back-End weitergeleitet und 2 von ihnen aus dem Cache bereitgestellt werden, würde der entsprechende Wert jeder dieser Statistiken wie folgt lauten:
    • Vserver Treffer: 3
    • Anfragen: 5
    • Antworten: 5
Minderung von DNS-DDoS-Angriffen