DNS Open Resolvers con IPv4

El CSIRT de LACNIC, en conjunto con el CSIRT CEDIA, está llevando a cabo el proyecto “DNS open resolvers con IPv4” con el objetivo de conocer el estado actual de la región, identificar los open resolvers y de forma proactiva, alertar y recomendar una posible corrección de la configuración de este servicio.

Tener servidores DNS Open Resolvers es muy negativo, tanto para el que deja el servicio abierto como para la seguridad en Internet en general. Este tipo de servidores se utilizan como vector de ataques de DDoS por amplificación ya que a partir de un mensaje de consulta de pequeño tamaño, se puede obtener una respuesta mucho mayor. De esta manera, ese servidor DNS se convierte en un amplificador de tráfico muy potente ya que sus consultas amplificadas pueden dirigirse a una IP específica, la cual recibiría todo ese volumen de tráfico, ocasionándole indisponibilidad de sus servicios. Para este ataque ni siquiera es necesario que el hardware esté controlado por el atacante.

Un servidor DNS recursivo solo debería responder consultas (queries) a todos los clientes que se encuentren dentro de su misma red, rechazando cualquier otra que provenga de fuera.

¿Cómo solucionarlo?

Recomendamos encarecidamente re-configurar los servidores DNS/Resolver, aquí les mostramos algunas formas de que pueden ayudar a realizarlo:

* Debe responder únicamente a sus clientes y no responder a consultas provenientes de IPs fuera de su red (en BIND, esto se realiza definiendo un grupo limitado de equipos en la regla “allow-query”). En el siguiente ejemplo solo las redes 192.168.196.0/24 y 2001:db8::/32 podrán acceder a realizar queries. Puede poner más redes separadas por punto y coma (;):

options {
allow-query {
192.168.196.0/24;
2001:db8::/32;
localhost;
}
}

* Para solo servir dominios que son parte de su zona autoritativa (en BIND, se realiza definiendo un set limitado de hosts en la regla “allow-query” para el servidor en general, pero seteando “allow-query” en “any” para cada zona). Ejemplo:

options {
allow-query {
192.168.196.0/24;
2001:db8::/32;
localhost;
}
}
zone “example.com”{
type master;
file “example.com.db”;
allow-query { any; };
}
}

* En unbound puedes obtener el mismo comportamiento utilizando la directiva access-control en el archivo unbound.conf. Quedaría de la siguiente manera (agregar tantas directivas de access-control como redes se tengan):

server:

access-control: 192.168.196.0/24 allow
access-control: 2001:db8::/32 allow

* Para el caso de equipos mikrotik, podemos dejar de resolver a terceros desmarcando el checkbox: “permitir solicitudes remotas”:

O desde el panel de control web del mikrotik vamos a IP→ DNS y desmarcamos “Allow Remote Requests”:

Adicionalmente, si su empresa es un ISP, por favor verifica la configuración de tu red y asegúrese de no permitir “spoofed traffic” (que pretende ser de direcciones IP externas) salga de su red. Las redes y equipos que permiten “spoofed traffic” (tráfico con direcciones IP falsificadas) hacen posible este y otros tipos de ataques.

* Si utiliza openwrt, dd-wrt o un equipo Linux, posiblemente esté utilizando dnsmasq. En el caso de dnsmasq la solución es impedir que desde Internet ingresen paquetes UDP al puerto 53 en nuestra interfaz WAN. Esto lo puede configurar en el firewall de su openwrt/dd-wrt o utilizando iptables en su equipo Linux:

iptables -I INPUT -p udp –dport 53 -j DROP

¿Cómo verificar mi cambio ha sido efectivo?

Una vez haya hecho los cambios requeridos, podrá acceder a https://openresolver.com/ y verificar si la IP que le hemos reportado es o no un open resolver.

Open Resolvers con IPv6

Si Usted cuenta con Servidores DNS configurados para IPv6 o dual stack, le sugerimos que consulte información y recomendaciones en:

https://csirt.lacnic.net/dns-open-resolvers-con-ipv6