Un "solucionador DNS abierto" es un servidor DNS que está dispuesto a resolver búsquedas DNS recursivas para cualquier persona en Internet. Es muy parecido a un relé SMTP abierto, ya que la simple falta de autenticación permite que terceros maliciosos propaguen sus cargas útiles utilizando su equipo no seguro. Con los relés SMTP abiertos, el problema es que reenvían el correo no deseado. Con los solucionadores de DNS abiertos, el problema es que permiten un ataque de denegación de servicio conocido como ataque de amplificación de DNS.
La forma en que funciona este ataque es bastante simple: debido a que su servidor resolverá consultas DNS recursivas de cualquier persona, un atacante puede hacer que participe en un DDoS enviando a su servidor una consulta DNS recursiva que devolverá una gran cantidad de datos, mucho más grande que El paquete de solicitud DNS original. Al suplantar (falsificar) su dirección IP, dirigirán este tráfico adicional a las computadoras de sus víctimas en lugar de las suyas, y por supuesto, harán tantas solicitudes tan rápido como puedan a su servidor y a cualquier otro DNS abierto Resolvedores que pueden encontrar. De esta manera, alguien con una tubería relativamente pequeña puede "amplificar" un ataque de denegación de servicio al usar todo el ancho de banda en su tubería para dirigir un volumen de tráfico mucho mayor a sus víctimas.
ArsTechnica hizo un artículo decente sobre el reciente ataque DDoS de amplificación de DNS contra Spamhaus , y vale la pena leerlo rápidamente para obtener los conceptos básicos (y una buena visualización de la amplificación).
La forma más sencilla de proteger su sistema de ser abusado de esta manera es limitar las direcciones para las que su servidor realizará búsquedas recurrentes en sus subredes locales. (Las características específicas dependen del servidor DNS que esté utilizando, por supuesto).
Por ejemplo, si estuviera usando BIND 9 y quisiera simplemente evitar la recurrencia de DNS desde direcciones externas, usaría el siguiente código en mi configuración:
options {
directory "/var/named/master";
allow-recursion { 127.0.0.1; 10.0.0.0/8; 192.168.0.0/16; 172.16.0.0/12; };
Esa línea de código le dice a mi servidor BIND que solo procese solicitudes DNS recursivas para la dirección de bucle de retorno local (que supongo que podría / debería establecer en el bloque de bucle de retorno local, todo / 8) y los 3 espacios de direcciones IPv4 privadas.
Para Windows Server 2012, que dice que está usando, tiene las siguientes opciones.
1. Separe su servidor DNS de su servidor IIS.
- Al menos en un mundo perfecto, no hay ninguna razón por la que necesite ejecutar DNS en el mismo cuadro que IIS.
- Ponga DNS en una caja interna que no tenga NAT, para que el mundo exterior no pueda acceder a ella, y deje que IIS resida en la caja externa que el resto del mundo puede alcanzar. Puede usar reglas de doble referencia o cortafuegos para permitir selectivamente el acceso a su servidor DNS desde su servidor IIS.
2. Bloquee las solicitudes de DNS externas con un firewall, como el firewall incorporado de Windows.
- Para mi sorpresa, el DNS de Windows no le permite restringir las direcciones a las que se aceptan las solicitudes de DNS recursivas, por lo que este es realmente el método recomendado por Microsoft.
-
- Seleccione las reglas DNS (TCP y UDP), vaya a la
Remote IP address
sección y agregue las subredes en uso en su LAN, así como cualquier dirección IP pública de los servidores que necesitan acceso a Active Directory. Al igual que con el ejemplo BIND, los espacios de direcciones privadas IPv4 son 127.0.0.0/8
10.0.0.0/8
192.168.0.0/16
y 172.16.0.0/12
.
- Sinceramente, no estoy seguro de qué efecto tendrá esto en su entorno, ya que no ha declarado realmente cómo se configuran DNS y AD en su entorno, y en consecuencia, es la última opción.
-
- Abra el Administrador de DNS.
- En el árbol de la consola, haga clic con el botón derecho en el servidor DNS correspondiente y luego haga clic en Propiedades.
- ¿Dónde?
- DNS / servidor DNS aplicable
- Haz clic en la pestaña Avanzado.
- En las opciones del servidor, seleccione la casilla de verificación Desactivar recursividad y luego haga clic en Aceptar.
- Como tenemos un entorno de bosques múltiples y utilizamos reenviadores condicionales para que eso funcione, no voy a marcar esa casilla. Podría ser algo para que usted también considere.