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 aqui.
Instalacion:
1 2 3 4 5 | mkdir /root/descargas cd /root/descargas wget http://mixinformatico.com/upload/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 (adecuado la siguiente línea a nuestra ruta de apache):
1 | /usr/local/apache/bin/apxs -cia mod_evasive.c |
Si usamos apache2, deberemos compilar su módulo correspondiente:
1 | /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:
1 | LoadModule evasive_module libexec/mod_evasive.so |
El fichero de configuración (muestro los valores por defecto) lo cargaremos en un fichero aparte y lo llamaremos desde el httpd.conf (puedes cargar las opciones directamente en el httpd.conf, yo lo pongo separado para una mejor estructuración) :
agregar esto en la primera liena del httpd.conf
1 | Include "/usr/local/apache/conf/mod_evasive.conf" |
ahora creamos un archivo llamado mod_evasive.conf con los siguiente:
en caso de que estemos en la misma carpeta de donde se encuentra el httpd.conf
ejecutamos lo siguiente:
1 | nano mod_evasive.conf |
en caso de que nos encontramos en otra carpeta ejecutamos los siguiente:
1 | nano /usr/local/apache/conf/mod_evasive.conf |
y en el fichero añademos lo siguiente:
1 2 3 4 5 6 7 8 | DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 DOSEmailNotify correo@dominio.com DosWhitelist xxx.xxx.xxx.xxx # Ip ficticia |
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 le ha quedado claras, indiquenmelo y trataré de explicarlo de otra forma.
Finalmente reiniciamos apache con el siguiente comando:
1 2 3 4 5 | service httpd restart o /etc/init.d/httpd restart fuente: <a href="http://rm-rf.es">rm-rf.es</a> |






men perdon la pregunta pero yo soy muy nobato pero en donde ponemos esos codigos en donde en windows o en linux o en el servidor perdon por la pregunta
esos comandos los tienes que ejecutar mediante ssh en el servidor, pero tienes que ser root para poderlos aplicarlos o si no darle la indicacion a tu proveedor de hosting para que lo instalen, mandale nuestra direccion
cualquier duda consulta nomas