OVH Community, your new community space.

Ataque al servidor de DNS named "query denied"


jabenitez
04/12/2013, 22:11
Bueno, ya está el tema resuelto, finalmente pedí ayuda a un compi del foro (empresa sered . net) y por un precio muy razonable me ha hecho una revisión del servidor completa.

Los ataques venían de un directorio de una de las webs que contenía scripts maliciosos.

Gracias a todos por vuestra ayuda, sois muy majos!

jabenitez
03/12/2013, 22:24
No he tocado nada en especial, de hecho, desde que estoy recibiendo los ataques, tan solo he tocado el named.conf... y he cambiado la configuración del fail2ban, nada más.

pepejlr
03/12/2013, 21:25
Por lo que veo en los logs, el sistema está teniendo problemas con las interfaces de red. No se si has tocado algo al respecto.

jabenitez
03/12/2013, 17:54
Pues, el tema es que hoy he mirado el syslog de la máquina justo cuando no respondía el servicio named.

Lo curioso es lo siguiente:

- Me llega un email del OVH monitoring comentando que mi servidor no responde al hacer ping.
- Efectivamente los dominios no son accesibles, sin embargo yo sí que puedo conectarme vía SSH al servidor y ver los logs en ese momento, o hacer lo que desee.
- El único error que veo en el syslog es este:

Código:
Dec  3 18:12:21 ks3307688 collectd[5602]: apache: curl_easy_perform failed: couldn't connect to host
Dec  3 18:12:21 ks3307688 collectd[5602]: No sleeping because `timeval_sub_timespec' returned non-zero!
Esta vez no me muestra ningún error del named, sin embargo es el servicio que se cae..... porque las webs se mantienen, ese error me lo da al intentar ejecutar una tarea que tengo en el cron (lógicamente al no funcionar bien el servicio named, no encuentra la dirección que le tengo puesta y da ese error)

¿Se os ocurre algo? (os puedo enseñar la gráfica MRTG para que veáis los picos que me da de entrada cuando se "cae" el servicio)

pepejlr
02/12/2013, 19:57
Cita Publicado inicialmente por jabenitez
Bueno señores, a pesar de mis cambios de configuración, sigo teniendo problemas , me siguen atacando de la misma forma, si podéis sugerirme algo más os lo agradezco.
Mándanos otro extracto del log actualizado.

jabenitez
02/12/2013, 18:41
Bueno señores, a pesar de mis cambios de configuración, sigo teniendo problemas , me siguen atacando de la misma forma, si podéis sugerirme algo más os lo agradezco.

jabenitez
30/11/2013, 09:45
Gracias por los enlaces skunki! muy útiles!

skunki
30/11/2013, 00:25
Para los mas entendidos, favor decirme como anda esta configuracion.

Código:
options {
        listen-on port 53 { 127.0.0.1;xx.xx.xx.xx; };  (Ip Master)
	directory "/var/named";
	pid-file "/var/run/named/named.pid";
        allow-transfer { xx.xx.xx.xx;xx.xx.xx.xx;xx.xx.xx.xx; }; (slave2;slave3;slave4)
        version "[NOT AVAILABLE]";
        recursion no;
        allow-query {none;};
        additional-from-cache no;
	};

zone "." {
	type hint;
	file "/etc/db.cache";
	};

zone "xxx.xxx" {
	type master;
	file "/var/named/xxx.xxx.hosts";
        allow-query { any; };
	};
jabenitez, pasate por aqui
http://www.team-cymru.org/Services/R...tructions.html
http://openresolverproject.org/

jabenitez
29/11/2013, 23:03
Nada chicos.... a pesar de aplicar esa configuración, me han vuelto a atacar

¿Algún dato más a probar?

jabenitez
29/11/2013, 21:30
Muchas gracias por la respuesta pepejlr, de momento no he vuelto a sufrir ataque con los cambios

pepejlr
29/11/2013, 19:35
Cita Publicado inicialmente por maxpaynecu
eso creo lo debes de revisar porque segun tengo entendido al tener eso así puedes sufrir ataques ddos saludos ...
Creo que no entiendes la función:
allow-query servirá para especificar que solo ciertas direcciones podrán realizar consultas al servidor de nombres de dominio. Se pueden especificar directamente direcciones IP, redes completas o listas de control de acceso
En allow-query especificas QUIEN puede hacer peticiones a tu servidor DNS y obviamente deben ser a todos. Si no, de que me vale tener un servidor DNS público si le pongo limites. Si no quieres peticiones absurdas y evitar posibles DDoS, lo que no debes hacer con el servidor DNS es que contacte con otros servidores DNS (Modo recursivo).

maxpaynecu
29/11/2013, 18:17
Cita Publicado inicialmente por pepejlr
allow-query { any; };
eso creo lo debes de revisar porque segun tengo entendido al tener eso así puedes sufrir ataques ddos saludos ...

pepejlr
29/11/2013, 16:32
El problema está en que estás permitiendo recursion a 127.0.0.1.

Mi configuración es esta y no estoy teniendo ningún problema. Debes desactivar recurson TOTALMENTE:

Código:
options {
        dnssec-validation auto;

        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
        listen-on { any; };
        allow-query { any; };
        recursion no;
};

jabenitez
28/11/2013, 23:55
Gracias por tu respuesta pepejlr, el tema es que aún con esa configuración me seguía pasando lo mismo, finalmente he añadido lo siguiente, a ver si no vuelve a pasar:

Código:
additional-from-auth no;
additional-from-cache no;
de forma que la configuración queda así:

Código:
options {
        directory "/var/bind";
        allow-recursion {127.0.0.1;};



        // uncomment the following lines to turn on DNS forwarding,
        // and change the forwarding ip address(es) :
        //forward first;
        //forwarders {
        //      123.123.123.123;
        //      123.123.123.123;
        //};

        // listen-on-v6 { none; };
        // listen-on { 127.0.0.1; };
 allow-query-cache { none; };
     // recursion no;
recursion no;
additional-from-auth no;
additional-from-cache no;



        // to allow only specific hosts to use the DNS server:
        //allow-query {
        //      127.0.0.1;
        //};

        // if you have problems and are behind a firewall:
        //query-source address * port 53;
        pid-file "/var/run/named/named.pid";
};

pepejlr
28/11/2013, 23:13
Si, como que tu propia máquina se está "atacando" (127.0.0.1). Si tenias recursion activado entonces se explica todo este log. Jamás actives recursion si el servidor DNS no está sirviendo peticiones públicamente sino únicamente para las zonas que tienes delegadas.

jabenitez
28/11/2013, 22:04
Buenas compañeros!

Tengo un problema bastante curioso, hay alguien o algo que debe estar haciendo peticiones a mi servidor de DNS de forma desmesurada os muestro el syslog antes de que "petara" el servidor bind named de DNS de mi servidor:

Código:
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#49447: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#39775: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#54700: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#44672: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#45949: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#36342: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#33404: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#34711: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#56172: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#47107: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#35203: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#49415: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#34866: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#54192: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#40977: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#36974: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#41106: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#60998: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#47675: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#37941: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#41712: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#56945: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#34715: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#57796: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#57781: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#49565: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#34603: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#39537: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#40891: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#32867: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#59581: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#41414: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#42313: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#48602: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#54254: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#58717: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#43129: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#53978: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#44490: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#48826: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#42414: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#35795: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#54924: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#45727: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#39134: query (cache) 'search.yippy.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#37564: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#32949: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 178.32.223.64#33418: query (cache) 'search.yippy.com.kimsufi.com/A/IN' denied
Nov 28 23:24:26 ks3307688 named[5193]: client 127.0.0.1#47958: query (cache) 'search.yippy.com/A/IN' denied
Como veréis, son muchísimas peticiones por segundo, el problema es que no sé qué hacer exactamente, he editado el fichero /etc/bind/named.conf y he agregado las siguientes líneas en la config global:

Código:
allow-query-cache { none; };
 recursion no;
¿alguna sugerencia? estoy foreando pero no veo nada claro la verdad