Vincular el límite de velocidad de DNS y los valores de respuestas por segundo y ventana

Respuestas:

7

Limita el número de respuestas idénticas que un solo cliente DNS puede obtener en un segundo. La window 5opción permite una explosión de 5 * 5 respuestas.

"Respuestas idénticas" y "cliente DNS único" son términos poco obvios aquí, lea esto para obtener más información: http://web.archive.org/web/20140209100744/http://ss.vix.su/~ vjs / rl-arm.html .

En general, es bueno limitar la velocidad: puede ayudarlo en caso de un ataque de DOS algún día. Los valores predeterminados deberían estar bien para la mayoría de los casos.

skarap
fuente
La parte sobre "estallido" en el primer párrafo está mal. windowsolo se usa para controlar el intervalo de tiempo dentro del cual se realiza el seguimiento de "respuestas idénticas" enviadas a cada "cliente DNS único". El Manual de referencia del administrador de BIND 9 establece: La cuenta [RRL del cliente] no puede volverse más positiva que el límite por segundo o más negativa que windowel límite por segundo. Este mensaje de Vernon Schryver explica el comportamiento del algoritmo con más detalle.
Kempniu
11

Debe leer el manual de referencia del administrador para BIND 9.9 .

Básicamente, responses-per-secondes el número de respuestas idénticas que se pueden enviar a un solo destino, por segundo. Las definiciones son complicadas.

Un único destino es un bloque de direcciones de red, del tamaño configurado en ipv4-prefix-lengtho ipv6-prefix-lengthsegún corresponda. Por lo tanto, si el ipv4-prefix-lengthes 24, y ambos 192.0.2.1y 192.0.2.2se consulta el servidor DNS, ellos comparten esta cuota y sólo pueden enviar tantas consultas entre los dos de ellos.

Las respuestas idénticas son respuestas a consultas para un tipo RR particular para un nombre existente particular, o para un nombre inexistente. Las siguientes consultas son todas distintas:

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

Sin embargo, todas las siguientes consultas son idénticas (suponiendo, nonexistent.domain.example.net.etc. que cumplan con sus nombres)

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

windowcomplica las cosas un poco más aún. Es el número de segundos durante los cuales se puede depositar la cuota. Multiplica windowy responses-per-secondda el máximo por el cual cualquier cuota puede ser positiva, o en términos más básicos, la capacidad de estallido.

Para dar un ejemplo general:

Usted es el servidor de nombres autorizado y no recurrente para example.net.. Imagine que no se vio tráfico de DNS en los últimos 10 segundos, y la configuración en la pregunta se aplica globalmente. Los siguientes eventos ocurren secuencialmente:

  1. El host 198.51.100.1 envía 100 consultas para IN NS example.net.. 25 serán permitidos, y los 75 restantes serán ignorados.
  2. El host 198.51.100.1 envía 100 consultas para IN A nonexistent.example.net.. 25 serán permitidos, y los 75 restantes serán ignorados.
  3. El host 198.51.100.1 envía 1 consulta para IN MX nonexistent-domain.example.net. Se ignorará ya que se ha alcanzado el límite para dominios inexistentes.
  4. El host 198.51.100.1 envía 1 consulta para IN A example.net.. Está permitido.
  5. Los hosts 192.0.2.1 a 192.0.2.50 envían cada uno una sola consulta IN NS example.net.. 25 de ellos reciben respuestas y los 25 restantes se ignoran; la cuota para 198.51.100.0/24 no se aplica a estos hosts, pero comparten la cuota para 192.0.2.0/24.
  6. Un segundo pasa
  7. Los hosts 192.0.2.26 a 192.0.2.50 repiten su consulta IN NS example.net.. 5 de ellos reciben respuestas y los 20 restantes se ignoran, ya que la cuota solo se completa con 5 consultas por segundo.
Falcon Momot
fuente
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 puede funcionar igual de bien. Mantiene el tráfico fuera del servicio por completo si se encuentra un ataque.

Tiffany Walker
fuente
¡increíble! Ni siquiera pensé en iptables. Pero, ¿qué significa eso en inglés? Puedo adivinar ... si alguna IP envía 11 o más consultas DNS, las bloquea durante 60 segundos, ¿verdad?
Red Cricket
No, la traducción es: no acepte más de 11 paquetes en un plazo de 60 segundos, descarte todos los demás paquetes.
drcelus
1
Tuve un problema, después de intentar aplicar su buena solución, tuve un error como: "iptables: aplicando reglas de firewall: iptables-restore v1.4.7: -c contador de paquetes no numérico Se produjo un error en la línea: 17" La línea 17 es la primera uno de los tuyos ¿Debo cargar algún módulo específico?
la primera línea debe ser la siguiente: iptables -A INPUT -p udp -m udp --dport 53 -m reciente --set --name dnslimit --rsource
2
No iría tan lejos como para decir que "funciona igual de bien". Esta tasa se limita sin ninguna idea si en realidad se trata de la misma consulta que se está enviando correo no deseado o consultas diferentes, esta última sería mucho más probable que sea tráfico legítimo.
Håkan Lindqvist
0

No creo que sea una buena idea calificar el límite, pregúntese: ¿clasifica también el límite de las respuestas del servidor web? ¿Por qué crees que las respuestas DNS son menos importantes que las respuestas del servidor web?
E incluso si califica el límite, esos 5 requisitos / segundo suenan muy bajos.

Sandor Marton
fuente
2
Ratelimitar las respuestas del servidor web podría ser una mala idea en ciertos casos. Pero el DNS es principalmente UDP, que se falsifica fácilmente (a diferencia de http), por lo que es necesario limitar la velocidad para evitar que los servidores de nombres se usen en ataques de amplificación o reflexión.
arjarj
Si él no es un resolutor abierto, entonces no creo que sea un buen objetivo para los ataques de reflexión / amplificación, pero tiene razón. 5 req / seg. Todavía creo que es demasiado bajo.
Sandor Marton
1
No especifica si es un servidor recursivo o autoritativo. Para un servidor autorizado, la limitación de la velocidad sigue siendo importante. Además, no son solo 5 solicitudes por segundo, son 5 de las mismas respuestas por segundo, e incluso se corrigen si genera respuestas diferentes. En general, la configuración de 5 solicitudes por segundo está bien en enlace (porque un servidor legítimo también hace otras preguntas intermedias).
arjarj
Ok, revisé los documentos y, como veo, el límite de velocidad es una configuración por cliente y no por servidor. Tenía la impresión de que la vinculación se limitaría a un total si 5req / s. Por cliente 5req / sec está bien.
Sandor Marton