LinuxParty

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado
 

Hola Comunidad, después de un corto tiempo de inactividad les hablaré sobre el módulo de mod_security y el módulo mod_evasive para el servicio de apache (servicio web)en GNU/Linux CentOS y prevenir así los ataques de tipo DDOS.

Antes de todo instale el servidor web Apache;

yum -y install httpd

Posteriormente configure para que el servicio para que se inicie en el momento de arrancar el servidor;

chkconfig httpd on

Se inicia el servicio Web;

service httpd start

Por ahora solo tiene el servicio web Apache iniciado.

Si algunos de los módulos mencionados no estuviera, deberían de utilizar el repositorio EPEL.

Aquí indicamos como se instala.

Una vez realizado esto, procedemos a instalar:

yum -y install mod_security

Para su configuración ingrese en el directorio /etc/http/modsecurity.d/ y edita el archivo de nombre modsecurity_crs_10_config.conf (o algo parecido) que es el que contiene la configuración básica del modsecurity.

Entre sus principales parámetros se encuentran;

  • SecRuleEngine: Directiva que controla si se procesan las reglas que controlan el comportamiento de mod_security ante peticiones. Se debe poner en On si la versión del mod instalada no lo hiciera ya por defecto
  • SecDataDir: Directva que establece un path donde mod_security guardará información que le es necesaria. Debe ser accesible por el servidor, de la misma manera que los logs, lo que requiere permiso de ejecución hasta la carpeta usada como almacén de datos y capacidad de escritura en la misma.
  • SecDefaultAction: El conjunto de acciones por defecto que el mod usará en caso de que una de las reglas de seguridad case con una petición. Son una serie de acciones que se toman en orden y que mod_security usará en caso de que la regla en si no establezca una concreta
  • Includes: Algunas distribuciones tienen un bug que hace que no se lean todos los archivos .conf existentes en la localización que se dio en el archivo que creamos anteriormente. Esto quiere decir que aunque se lea el .conf primario, no se accederán a los subdirectorios para ver si poseen más archivos .conf. Para solucionar este problema, en caso de sospechar que no se están procesando las reglas, hay que incluir las rutas explicitas a los subdirectorios de la localización de las reglas (/rules), como se ve en la imagen. NOTA: La versión de las core rules actual tiene un error de sintaxis en un archivo de la carpeta optional_rules que impide que las reglas de la misma se procesen, así que permanece desactivado en el fichero mostrado.

Se reinicia el servicio apache para actualizar los cambios;

service httpd restart

Se verifica que el modulo del mod_security este activo;

httpd -M

Debe mostrar como salida;

security2_module (shared)

Listo, tienen su modulo de seguridad activado y corriendo, si desean conocer todos los parámetros y reglas del modulo recuerden visitar el sitio web oficial.

El modulo del mod_evasive permite denegar ataques de tipo DDOS, para instalarse se ejecuta la siguiente sintaxis;

yum -y install mod_evasive

Para configurar las reglas se edita el archivo /etc/httpd/conf.d/mod_evasive.conf , el cual ya viene por defecto con los parámetros recomendados y entre los cuales se encuentran;

  • 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.

Para terminar finalizar se comprueba si cargo el modulo correctamente con el comando httpd -M , que enviara como salida;

evasive20_module (shared)

Así mismo se ejecuta el siguiente script creado en perl para conocer si envía el mensaje Forbidden (403)

#!/usr/bin/perl

# test.pl: small script to test mod_dosevasive's effectiveness

use IO::Socket;
use strict;

for(0..100) {
  my($response);
  my($SOCKET) = new IO::Socket::INET( Proto   => "tcp",
                                      PeerAddr=> "DireccionIP:80");
  if (! defined $SOCKET) { die $!; }
  print $SOCKET "GET /?$_ HTTP/1.0";
  $response = <$SOCKET>;
  print $response;
  close($SOCKET);
}

Recuerden que para ejecutar el archivo , primeramente se edita con la dirección IP objeto de prueba , así mismo se guarda con la extensión .pl y se ejecuta con el comando perl , así;

perl archivo.pl

Si como respuesta ante el ataque se recibe la pagina FORBIDDEN 403 significa que el modulo esta funcionando correctamente.Por ultimo debido a la configuración que viene por defecto en el mod_evasive su dirección IP queda bloqueada por 10 segundos debido al ataque al sitio web, parámetro que también se puede editar agregándola a la DOSWhitelist, sera cuestión de seguir leyendo. 

Bueno espero les haya servido de algo este pequeño tutorial.

Puede contratar ExtreHost para temas profesionales con sus servidores. No lo dude, contáctenos.
Pin It

Comentarios   

lusher
0 # lusher 24-12-2014 18:25
Hola, para el mod evasive no se necesita configuracion?, osea solo se instala y ya esta?, pense que se configuraria algo o en el apache. Gracias!
Responder | Responder con una citación | Citar

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías

Nos obligan a moslestarte con la obviedad de que este sitio utiliza Cookies. Ver política