Estoy ejecutando un servidor DNS en EC2, y ayer estaba presionando alrededor de 20mbps cuando revisé mi tablero de facturación y encontré 1.86 TB de datos usados este mes. Esa es una gran factura para mi pequeño laboratorio de proyectos. Nunca noté caídas de rendimiento y no me molesté en configurar umbrales de tráfico antes, pero ahora lo he hecho, ya que esto me ha costado más de $ 200 en cargos de ancho de banda.
Parece que alguien usó mi servidor DNS como parte de un ataque de amplificación, sin embargo, no sé cómo.
La configuración está abajo.
// BBB.BBB.BBB.BBB = ns2.mydomain.com ip address
options {
listen-on port 53 { any; };
// listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-transfer { BBB.BBB.BBB.BBB; };
allow-query-cache { BBB.BBB.BBB.BBB; };
allow-query { any; };
allow-recursion { none; };
empty-zones-enable no;
forwarders { 8.8.8.8; 8.8.4.4; };
fetch-glue no;
recursion no;
dnssec-enable yes;
dnssec-validation yes;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "mydomain.com" IN {
type master;
file "zones/mydomain.com";
allow-transfer { BBB.BBB.BBB.BBB; localhost; };
};
Dada esta configuración, NO debería responder ninguna consulta para las zonas que no alojo localmente, ¿verdad? Este servidor es el SOA para algunos dominios, pero mis otros servidores no lo usan para buscar nada (todos resuelven contra OpenDNS o Google). ¿Qué directiva me he equivocado aquí o me estoy olvidando? Mis registros (63 MB +) están llenos de esto:
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
fuente
Respuestas:
Incluso si su servidor está configurado para responder solo consultas autorizadas como el suyo, aún es posible que se use para un ataque de amplificación: las
ANY
consultas contra la raíz de una zona pueden desencadenar una respuesta UDP bastante pesada, ya que la raíz de la zona tiende a tener una serie de registros, particularmente con SPF / DKIM / DNSSEC.Es probable que esto sea lo que está sucediendo en su sistema; úselo
tcpdump
para confirmar. Si están utilizando sus registros autorizados en un ataque de amplificación, sus mejores opciones serán simplemente pasar a una nueva IP y esperar que no sigan, cambiar sus registros raíz de zona para que sea un vector de amplificación menos efectivo o implementar Limitación de la tasa de respuesta (si su BIND lo admite).fuente
ANY
consultas exitosas junto a estas falladas.rate-limit { responses-per-second 1; };
y parece haber caído bastante tráfico. No sabía que Bind podría RRL desde dentro de sí mismo.