comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

mod_security y mod_evasive en GNU/Linux CentOS (para detener ataques DDOS).

  • 5 Respuestas
  • 3348 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado july

  • *
  • Underc0der
  • Mensajes: 32
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« en: Noviembre 20, 2012, 12:03:39 pm »
Hola amigos de underc0de,vamos a ver como se instala estos dos modulos de seguridad para apache
y protegernos de ataques DDOS(en centos)

Antes de todo se instala el Apache;

Código: Bash
  1. yum -y install httpd

Código: Bash
  1. yum -y install httpd-devel

Posteriormente se configura para que el servicio inicie al momento de arrancar el servidor;

Código: Bash
  1. chkconfig httpd on

Se inicia el servicio Web;

Código: Bash
  1. service httpd start

Por ahora solo se tiene el servicio web Apache arriba. Se descargan e instalan los repositorios adecuados, rpmforge y el repositorio de jasonlitka

Actualizar el paquete rpmforge (y por si ya existe);

Código: Bash
  1. rpm -Uvh paquete.rpm

Y  el repositorio de jasonlitka;

Código: Bash
  1. cd /etc/yum.repos.d

Código: Bash
  1. vim CentOS-Base.repo

y por ultimo se agrega el contenido del repositorio;

[utterramblings]
name=Jason’s Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

Ahora se instala y configura el modulo mod_security;

Código: Bash
  1. yum -y install mod_security

Para su configuración se ingresa al directorio /etc/http/modsecurity.d/ y  se edita el archivo de nombre modsecurity_crs_10_config.conf 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;

Código: Bash
  1. 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) :)

Código: Perl
  1. #!/usr/bin/perl
  2.  
  3. # test.pl: small script to test mod_dosevasive's effectiveness
  4.  
  5. use IO::Socket;
  6. use strict;
  7.  
  8. for(0..100) {
  9.   my($response);
  10.   my($SOCKET) = new IO::Socket::INET( Proto   => "tcp",
  11.                                       PeerAddr=> "DireccionIP:80");
  12.   if (! No tienes permisos para ver links. Registrate o Entra con tu cuenta $SOCKET) { No tienes permisos para ver links. Registrate o Entra con tu cuenta $!; }
  13.   No tienes permisos para ver links. Registrate o Entra con tu cuenta $SOCKET "GET /?$_ HTTP/1.0nn";
  14.   $response = <$SOCKET>;
  15.   No tienes permisos para ver links. Registrate o Entra con tu cuenta $response;
  16.   No tienes permisos para ver links. Registrate o Entra con tu cuenta($SOCKET);
  17. }

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

info obtenida en centosni
« Última modificación: Junio 05, 2015, 01:26:04 am por EPSILON »

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5396
  • Actividad:
    36.67%
  • Reputación 31
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #1 en: Noviembre 20, 2012, 12:13:11 pm »
Exclente!! esto le va a servir a mas de uno!


Desconectado zoro248

  • *
  • Underc0der
  • Mensajes: 242
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #2 en: Noviembre 20, 2012, 01:24:19 pm »
Entonces con estas medidas de seguridad, podrias prevenir o detener una ataque DDos?
Pd: Excelente material, ya mismo lo implementare

Desconectado july

  • *
  • Underc0der
  • Mensajes: 32
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #3 en: Noviembre 20, 2012, 01:36:26 pm »
nada es 100% confiable pero todo ayuda a proteger nuestros servers
hay muchas cosas mas que se pueden hacer deapoco voy poniendo material

Desconectado wsoulrc

  • *
  • Underc0der
  • Mensajes: 17
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #4 en: Noviembre 21, 2012, 04:58:48 am »
muy buen tutorial, aunque prefiero csf en vez de evasive, ambos son muy recomendados.


Desconectado Adastra

  • *
  • Underc0der
  • Mensajes: 42
  • Actividad:
    0%
  • Reputación 0
  • Endless Learner
    • Ver Perfil
    • thehackerway
    • Email
« Respuesta #5 en: Noviembre 21, 2012, 05:30:47 am »
Existen muchas más medidas de seguridad en servidores web apache.
Actualmente me encuentro redactando algunas entradas en mi blog sobre seguridad en servidores web apache, voy por la parte 15 (o algo así), por si os interesa, comienzan aquí:


No tienes permisos para ver links. Registrate o Entra con tu cuenta

Saludos.
No tienes permisos para ver links. Registrate o Entra con tu cuenta
No tienes permisos para ver links. Registrate o Entra con tu cuenta

"Nunca discutas con un idiota, podria no notarse la diferencia"
Kant.

 

¿Te gustó el post? COMPARTILO!



Script en Python + Perl para explotar la vulnerabilidad ASP.net Relleno Oracle.

Iniciado por M@rkd0wn

Respuestas: 0
Vistas: 1589
Último mensaje Agosto 04, 2015, 03:30:46 am
por M@rkd0wn
WhoUr herramienta para recopilar informacion de una web y buscar webs a vul sqli

Iniciado por jopcode

Respuestas: 0
Vistas: 1177
Último mensaje Noviembre 30, 2017, 10:57:00 pm
por jopcode
Configura un servidor SSH en Ubuntu para acceder a tu equipo de forma remota

Iniciado por 54NDR4

Respuestas: 2
Vistas: 2222
Último mensaje Abril 10, 2013, 04:11:48 pm
por Adastra
¿Como debo empezar para auditar un servidor web? - Nivel Intermedio

Iniciado por BrowserNet

Respuestas: 12
Vistas: 7924
Último mensaje Octubre 09, 2016, 02:24:36 am
por ceroMee
Libro muy bueno para la administración de servidores montados en Debian.

Iniciado por july

Respuestas: 0
Vistas: 2548
Último mensaje Noviembre 20, 2012, 11:38:59 am
por july