ADC

Mitigar ataques DDoS DNS

Los servidores DNS son uno de los componentes más críticos de una red y deben ser defendidos contra ataques. Uno de los tipos más básicos de ataques DNS es el ataque DDoS. Los ataques de este tipo están en aumento y pueden ser destructivos. Puede hacer lo siguiente para mitigar los ataques DDoS:

  • Vacar registros negativos.
  • Restringir el tiempo de vida (TTL) de los registros negativos.
  • Conserve la memoria de Citrix ADC limitando la memoria consumida por la caché DNS.
  • Conservar los registros DNS en la caché.
  • Habilitar la omisión de caché DNS.

Vaciar registros negativos

Un ataque DNS llena la caché con registros negativos (NXDOMAIN y NODATA). Como resultado, las respuestas a solicitudes legítimas no se almacenan en caché, por lo que las nuevas solicitudes se envían a un servidor back-end para su resolución DNS. Por lo tanto, las respuestas se retrasan.

Ahora puede vaciar los registros DNS negativos de la caché DNS del dispositivo Citrix ADC.

Vacíe los registros de caché negativos mediante la CLI

En el símbolo del sistema, escriba:

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

Ejemplo:

flush dns proxyrecords –negRecType NODATA

Descarga de registros de caché negativos mediante la interfaz gráfica de usuario

  1. Vaya a Configuración > Administración del tráfico > DNS > Registros.
  2. En el panel de detalles, haga clic en Vacar registros proxy.
  3. En el cuadro Tipo de vaciado, seleccione Registros negativos.
  4. En el cuadro Tipo de registros negativos, seleccione NXDOMAIN o NODATA.

Protección contra ataques aleatorios de subdominios y NXDOMAIN

Para evitar ataques aleatorios de subdominio y NXDOMAIN, puede restringir la memoria caché DNS y ajustar los valores TTL para los registros negativos.

Para limitar la cantidad de memoria consumida por la caché DNS, especifique el tamaño máximo de caché (en MB) y también el tamaño de caché (en MB) para almacenar las respuestas negativas. Cuando se alcanza cualquiera de los límites, no se agregan más entradas a la caché. Además, se registran mensajes syslog y, si ha configurado capturas SNMP, se generan capturas SNMP. Si no se establecen estos límites, el almacenamiento en caché continúa hasta que se agota la memoria del sistema.

Un valor TTL más alto para los registros negativos puede dar como resultado el almacenamiento de registros que no son valiosos durante mucho tiempo. Un valor TTL más bajo da como resultado el envío de más solicitudes al servidor back-end.

El TTL del registro negativo se establece en un valor que puede ser el menor del valor TTL o el valor” Caduca” del registro SOA.

Nota:

  • Esta limitación se agrega por motor de paquetes. Por ejemplo, si MaxCacheSize se establece en 5 MB y el dispositivo tiene 3 motores de paquetes, el tamaño total de la caché es de 15 MB.
  • El tamaño de la caché para los registros negativos debe ser menor o igual al tamaño máximo de la caché.
  • Si reduce el límite de memoria caché DNS a un valor inferior a la cantidad de datos ya almacenados en caché, el tamaño de la caché permanece por encima del límite hasta que los datos se agotan. Es decir, excede su TTL0 o se vacía (flush dns proxyrecords comando o Vacío de registros proxy en la GUI de Citrix ADC).
  • Para configurar capturas SNMP, consulte Configuración de NetScaler para generar capturas SNMP.

Limite la memoria consumida por la caché DNS mediante la CLI

En el símbolo del sistema, escriba:

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

Ejemplo:

set dns parameter - maxCacheSize 100 -maxNegativeCacheSize 25

Limite la memoria consumida por la caché DNS mediante la interfaz gráfica de usuario

Vaya a Configuración > Administración del tráfico > DNS, haga clic en Cambiar configuración de DNS y establezca los siguientes parámetros:

  • Tamaño máximo de caché en MB
  • Tamaño máximo de caché negativo en MB

Restringir el TTL de registros negativos mediante la CLI

En el símbolo del sistema, escriba:

set dns parameter -maxnegcacheTTL <secs>

Ejemplo:

set dns parameter -maxnegcacheTTL 360

Restringir el TTL de los registros negativos mediante la GUI

  1. Vaya a Configuración > Administración del tráfico > DNS.
  2. Haga clic en Cambiar configuración DNS y establezca el parámetro TTL de caché negativa máxima en segundos.

Conservar registros DNS en la caché

Un ataque puede inundar la caché DNS con entradas no importantes, pero puede provocar el vaciado de los registros legítimos ya almacenados en caché para dar espacio a las nuevas entradas. Para evitar que los ataques llenen la caché con datos no válidos, puede conservar los registros legítimos incluso después de que superen sus valores TTL.

Si habilita el parámetro cacheNoExpire, los registros actualmente en la caché se conservan hasta que inhabilite el parámetro.

Nota:

  • Esta opción solo se puede utilizar cuando se especifica el tamaño máximo de la caché (parámetro MaxCacheSize).
  • Si MaxNegcachettl está configurado y CachenoExpire está habilitado, CachenoExpire toma prioridad.

Conservar registros DNS en la caché mediante la CLI

En el símbolo del sistema, escriba:

set dns parameter -cacheNoExpire ( ENABLED | DISABLED)

Ejemplo:

set dns parameter -cacheNoExpire ENABLED

Conservar registros DNS en la caché mediante la interfaz gráfica de usuario

  1. Vaya a Configuración > Administración del tráfico > DNS y haga clic en Cambiar configuración de DNS.
  2. Seleccione Caché Sin caducar.

Habilitar omisión de caché DNS

Para una mayor visibilidad y control de las solicitudes DNS, establezca el parámetro CacheHitBypass para reenviar todas las solicitudes a los servidores back-end y permitir que la caché se construya pero no se utilice. Después de generar la caché, puede inhabilitar el parámetro para que las solicitudes se sirvan desde la caché.

Habilitar la omisión de caché DNS mediante la CLI

En el símbolo del sistema, escriba:

set dns parameter -cacheHitBypass ( ENABLED | DISABLED )

Ejemplo:

set dns parameter -cacheHitBypass ENABLED

Habilitar la omisión de caché DNS mediante la interfaz gráfica de usuario

  1. Vaya a Configuración > Administración del tráfico > DNS y haga clic en Cambiar configuración de DNS.
  2. Seleccione Bypass de aciertos de caché.

Prevenir el Slowloris ataque

Una consulta DNS que abarca varios paquetes presenta la amenaza potencial de un Slowloris ataque. El dispositivo Citrix ADC puede eliminar de forma silenciosa las consultas DNS que se dividen en varios paquetes.

Puede establecer el splitPktQueryProcessing parámetro en ALLOW o DROP una consulta DNS si la consulta está dividida en varios paquetes.

Nota: Esta configuración solo es aplicable para DNS TCP.

Limite las consultas DNS a un solo paquete mediante la CLI

En el símbolo del sistema, escriba:

set dns parameter -splitPktQueryProcessing ( ALLOW | DROP )

Ejemplo:

set dns parameter -splitPktQueryProcessing DROP

Limite las consultas DNS a un solo paquete mediante la interfaz gráfica de usuario

  1. Vaya a Configuración > Administración del tráfico > DNS y haga clic en Cambiar configuración de DNS.
  2. En el cuadro Procesamiento de consultas de paquetes divididos, elija Permitir o DROP.

Recopilar estadísticas de las respuestas DNS servidas desde la caché

Puede recopilar estadísticas de las respuestas DNS servidas desde la caché. A continuación, utilice estas estadísticas para crear un umbral más allá del cual se elimina más tráfico DNS y aplique este umbral con una directiva basada en ancho de banda. Anteriormente, el cálculo del ancho de banda para un servidor virtual de equilibrio de carga DNS no era preciso, porque no se notificaba el número de solicitudes servidas desde la caché.

En modo proxy, las estadísticas de bytes de solicitud, bytes de respuesta, Total de paquetes recibidos y Total de paquetes enviados se actualizan continuamente. Anteriormente, estas estadísticas no siempre se actualizaban, especialmente para un servidor virtual de equilibrio de carga DNS.

El modo proxy también ahora le permite determinar el número de respuestas DNS servidas desde la caché. Para recopilar estas estadísticas, se han agregado las siguientes opciones al stat lb vserver <DNSvirtualServerName> comando:

  • Solicitudes: Número total de solicitudes recibidas por el servidor virtual DNS o DNS_TCP. Incluye las solicitudes reenviadas al back-end y las solicitudes respondidas desde la caché.
  • Visitas de vserver: Número total de solicitudes reenviadas al back-end. El número de solicitudes servidas desde la caché es la diferencia entre el número total de solicitudes y el número de solicitudes servidas desde el servidor virtual.
  • Respuestas: Número total de respuestas enviadas por este servidor virtual. Por ejemplo, si un servidor virtual LB de DNS recibió 5 solicitudes DNS, reenvió 3 de ellas al back-end y sirvió 2 de ellas desde la caché, el valor correspondiente de cada una de estas estadísticas sería el siguiente:
    • Hits de vserver: 3
    • Solicitudes: 5
    • Respuestas: 5
Mitigar ataques DDoS DNS