# rm-rf.es | Administración de sistemas

Bitácora personal de un SysAdmin Gnu/Linux, Windows, BSD...

Telefónica bloquea el acceso a sus DNS desde redes externas


En las últimas semanas se estaba empezando a detectar fallos cuando se utilizaban los DNS de Telefónica en redes externas. Esto solía pasar de forma esporádica pero al parecer el bloqueo se va a hacer oficial en poco tiempo. Las IPs de servidores DNS de telefónica son:

  1. 80.58.61.250
  2. 80.58.61.254
  3. 80.58.0.33
  4. 80.58.32.97
  5. 80.58.32.33
  6. 80.58.0.97

El origen de esta restricción es debido a ataques recibidos en sus DNS, flood de paquetes, DDoS, etc. El comunicado oficial es el siguiente:

En el entorno de Telefónica se han producido situaciones de ataque a los DNS que últimamente se han agravado. Los servidores DNS han sido inundado por paquetes o peticiones de resolución, hasta el punto de dejarlos inutilizados. Esto obliga a Telefónica a tomar medidas para salvaguardar la integridad de sus servicios de Internet. Por ello, y para la seguridad del Servicio Internet, se va a proceder a cerrar progresivamente el acceso desde Internet a los diferentes servidores de DNS de Telefónica que a día de hoy están accesibles desde fuera de nuestra red.

Esta medida de seguridad se produce para maximizar la protección de los mismos, dado que Telefonica considera que el servicio DNS propio no debe de estar accesible de forma abierta desde Internet por ser un “servicio de ayuda a la navegación” para los usuarios conectados a nuestra red, y por lo tanto, cada Operador debe disponer de su propio sistema de traducción DNS. Por ello, si está Vd utilizando esta facilidad que ahora mismo está en la Internet pública, proceda a proporcionar un medio de traducción DNS alternativo a los clientes finales que sigan utilizando a día de hoy los DNS de Telefónica. Progresivamente y a partir del 8 de agosto, procederemos a establecer los filtrados de tráfico de entrada a nuestra red con destino a los DNS caches de Telefónica.

Así que ya sabéis. Si usáis estos DNS en entornos de producción deberíais cambiarlos de forma inmediata, utilizar los de otro proveedor, o crear un servidor DNS local para evitar dependencias con otros proveedores.

Data ONTAP: prevenir Ping Flood y denegación de servicio


Data ONTAP (Netapp) permite configurar el número máximo de paquetes ICMP que se aceptan por segundo. En el momento que se supere este límite los paquetes serán descartados para evitar ping flood y ataques de denegación de servicio.

La opción es la siguiente, por defecto acepta 150 paquetes como máximo por segundo:

options ip.ping_throttle.drop_level 150

Para modificar este valor, simplemente cambiamos el nº de paquetes, si quisiéramos cambiarlo a 1000:

filer> options ip.ping_throttle.drop_level 1000

Podéis comprobar si estos cambios surten efecto lanzando un ping flood contra la IP de la NetAPP:

ping -A XX.XX.XX.XX

Hay otras opciones como options ip.ping_throttle.alarm_interval, que especifica cuán a menudo los pings descartados son registrados en el audit log. Esto pretende prevenid que se haga flood al log de auditoría.

Por defecto está a 5:

options ip.ping_throttle.alarm_interval 5

También podemos deshabiltar los icmp redirects:

ip.icmp_ignore_redirect.enable off

Evitar ataques DoS a apache con mod_evasive


El ataque DoS (Denegación de Servicio / Denial of Service) o DDoS (Distributed Denial of Service, denegación de servicio distribuida), es un ataque a un sistema de servidores o red que causa que un servicio o recurso sea inaccesible a usuarios legítimos. El flujo masivo de peticiones (a través del protocolo TCP/IP) al servidor y los ataques de fuerza bruta provocan el colapso de la red, o la saturación del servidor en cuestión.

En esta entrada vamos a tratar de paliar los ataques DoS centrados en el servicio Apache, que consiste básicamente en lanzar peticiones al servidor web de forma masiva hasta colapsar el mismo. Gracias al módulo de apache mod_evasive conseguiremos redirigir el tráfico de esta peticiones ilegítimas hacia un error 403 (prohibido).

La última versión estable de mod_evasive puede descargarse en este enlace.

Compilación:

cd /root/descargas
wget http://www.zdziarski.com/projects/mod_evasive/mod_evasive_1.10.1.tar.gz
tar -zxf mod_evasive_1.10.1.tar.gz
cd mod_evasive

Si usamos apache1, deberemos compilar su módulo correspondiente (adecuad la siguiente línea a vuestra ruta de apache):

/usr/local/apache/bin/apxs -cia mod_evasive.c

Si usamos apache2, deberemos compilar su módulo correspondiente:

/usr/local/apache/bin/apxs -cia mod_evasive20.c

Veremos que tras la compilación, automáticamente ya carga el módulo en nuestro httpd.conf:

LoadModule evasive_module     libexec/mod_evasive.so

Configuración:

El fichero de configuración (muestro los valores por defecto) lo cargaremos en un fichero aparte y lo llamaremos desde el httpd.conf (podéis cargar las opciones directamente en el httpd.conf, yo lo pongo separado para una mejor estructuración) :

Include "/usr/local/apache/conf/mod_evasive.conf"

Y el fichero que incluye las configuraciones del módulo:

<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSEmailNotify correo@dominio.com
DosWhitelist 98.54.48.14 # Ip ficticia
</IfModule>

Vamos a explicar un poco lo que es cada opción:

Podemos ver lo que es cada cosa en:

DOSHashTableSize

Cuanto más grande sea el tamaño de la tabla de Hash, más memoria requerirá, pero el rastreo de Ips será más rápido. Es útil aumentar su tamaño si nuestro servidor recibe una gran cantidad de peticiones, pero así mismo la memoria del servidor deberá ser también mayor.

DOSPageCount

Número de peticiones a una misma página para que una IP sea añadida a la lista de bloqueo, dentro del intervalo de bloqueo en segundos especificado en el parámetro DOSPageInterval

DOSSiteCount

Igual que ‘DOSPageCount’, pero corresponde al número de peticiones al sitio en general, usa el intervalo de segundos especificado en ‘DOSSiteInterval’.

DOSPageInterval
Intervalo en segundos para el parámetro umbral de DOSPageCount.

DOSSiteInterval
Intervalo en segundos para el parámetro umbral DOSSiteCount.

DOSBlockingPeriod
Periodo de bloqueo para una IP si se supera alguno de los umbrales anteriores.El usuario recibirá un error403 (Forbidden) cuando sea bloqueado, si el atacante lo sigue intentando, este contador se reseteará automáticamente, haciendo que siga más tiempo bloqueada la IP.

DOSEmailNotify
Dirección de correo electrónico que recibirá información sobre los ataques.

DosWhitelist
Podemos especificar una IP o rango que será excluido del rastreo por mod_evasive.

Si alguna de estas opciones no os han quedado claras, indicadmelo y trataré de explicarlo de otra forma. Es fácil comprenderlo en inglés, pero su traducción se hace complicada.

Finalmente reiniciamos apache y ejecutamos el script en perl de testeo (test.pl) que viene incluido en el .tar.gz . Si todo ha ido bien, veremos que al cabo de unas cuantas peticiones, bloqueará el acceso al servicio web:

HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden

HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden

Con esto ya tendríamos un protector de ataques DDoS a apache funcionando. No obstante, os puede ser de utilidad el siguiente comando, que nos indicará el nº de peticiones al puerto 80 por cada IP en el momento que lo ejecutemos:

netstat -plan|grep :80 | awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -n

Si solo queremos ver las establecidas:

netstat -plan|grep :80 |  grep ESTABLISHED | awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -n

Esto es muy útil, pues a partir de dichos comandos, podemos averiguar rápidamente si una o varias IPs están haciendo un exceso de peticiones al servicio apache (fuerza bruta), y directamente filtrar la IP que queramos en nuestro firewall, por ejemplo en APF:

 /usr/local/sbin/apf -d <IP conflictiva>

De este modo, junto a la instalación de APF y BFD, nuestro servidor será menos vulnerable a ataques.