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 extrem zerstörerisch sein. Um DDoS-Angriffe zu minimieren, können Sie negative Datensätze leeren, die Zeit bis zum Live-Leben (TTL) negativer Datensätze einschränken, Citrix ADC C-Speicher beibehalten, indem Sie den vom DNS-Cache belegten Speicher beschränken, DNS-Einträge im Cache beibehalten und DNS-Cache-Umgehung aktivieren. Sie können DNS-Abfragen auch auf ein einzelnes Paket beschränken und so Slowloris Angriffe verhindern.

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 > Verkehrsverwaltung > DNS > Datensätze .
  2. Klicken Sie im Detailbereich auf Proxydatensä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 belegte Speichermenge zu begrenzen, können Sie die maximale Cachegröße (in MB) und auch die Cachegröße (in MB) zum Speichern negativer Antworten angeben. 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 für einen langen Zeitraum 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 festgelegt, der kleiner vom TTL-Wert oder dem Wert „Abläuft“ 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 die DNS-Cache-Speicherbeschränkung auf einen Wert reduzieren, der niedriger ist als die bereits zwischengespeicherte Datenmenge, bleibt die Cachegröße über dem Limit, bis die Daten älter sind (überschreitet die TTL0 oder wird geleert (Befehl flush dns proxyrecords oder Flush Proxy Records in der Citrix ADC GUI).
  • Informationen zum Konfigurieren von SNMP-Traps finden Sie unterNetScaler 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

Einschränken der 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

Einschränken der TTL negativer Datensätze mit der GUI

  1. Navigieren Sie zu Konfiguration > Verkehrsverwaltung > 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 wertvollen Einträgen überschwemmen, kann aber dazu führen, dass die bereits zwischengespeicherten legitimen Datensätze gelöscht 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

Zur besseren Sichtbarkeit und Kontrolle der DNS-Anforderungen, die bei der Citrix ADC Appliance eintreffen, können Sie den Parameter CacheHitByPass so festlegen, dass alle Anforderungen an die Back-End-Server weitergeleitet werden und der Cache erstellt, aber nicht verwendet werden kann. 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-Trefferumgehungaus.

Verhindern Sie den Slowloris Angriff

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 splitPktQueryProcessing-Parameter auf ALLOW oder DROP einer DNS-Abfrage festlegen, wenn die Abfrage in mehrere Pakete aufgeteilt wird.

Hinweis: Dies 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 Paketabfrageverarbeitung teilen die Option Zulassen 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, und diese Statistiken verwenden, um einen Schwellenwert zu erstellen, über den zusätzlicher DNS-Datenverkehr abgelegt wird, und diesen Schwellenwert mit einer bandbreitenbasierten Richtlinie erzwingen. Bisher war die Bandbreitenberechnung für einen virtuellen DNS-Lastausgleichsserver nicht korrekt, da die Anzahl der Cache-Treffer nicht gemeldet wurde.

Im Proxy-Modus werden die Statistiken für Request-Bytes, Response-Bytes, Total Packets rcvd und Total Sended 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 erfassen, wurden dem <DNSvirtualServerName> Befehl stat lb vserver die folgenden Optionen hinzugefügt:

  • Anforderungen — Gesamtzahl der vom DNS- oder DNS_TCP-vserver empfangenen Anforderungen. Enthält die an das Back-End weitergeleiteten Anforderungen und die aus dem Cache beantworteten Anforderungen.
  • Vserver-Treffer — Gesamtzahl der Anforderungen, die an das Back-End weitergeleitet werden. Die Gesamtanzahl der Cache-Treffer ist der Unterschied zwischen Anforderungen und Vserver-Treffer.
  • Antworten — Gesamtanzahl der von diesem vserver 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:
    • Server Treffer: 3
    • Anfragen: 5
    • Antworten: 5