Uno de los ataques más cobardes y sucios que hay por los
supuestos hackers es el ataque DoS (Denial of Service) o el peor
de todos el DDoS (Distributed Denial of Service)
No hay nada de hacker en el asunto de hecho cualquiera que lo use deja
patente que no tiene mayores conocimientos. El Ataque DOS
básicamente es lanzar más conexiones a un servidor, mas
de las que pueda soportar. Para los servidores con ancho de banda
sobrados se usa DDoS que es igual pero con la ayuda de más
computadoras, siempre se busca saturar la capacidad de servir del
servidor
Para resistir un ataque tan cobarde solo propio de los que
despectivamente reciben el nombre de lamers; se ha intentado
desarrollar soluciones de lo más variadas.
Lo que normalmente se hace cuando se recibe un ataque es apagar el
servicio, pero si usamos un poco de lógica eso es todo menos una
solución, tomando en cuenta que el propósito de un DoS es
una “NEGACION DE SERVICIO� al apagar el servicio atacado estamos
realmente contribuyendo a que el ataque sea exitoso. Por lo que se debe
encontrar otras soluciones y que el servicio se mantenga en
línea a pesar del DoS
Una de las soluciones mas versátiles es mod_evasive y es que
este es un modulo instalable en el apache que puede filtrar con su
propia tabla de ips ataques DoS y si el ataque se vuelve muy pesado y
agresivo como un DDoS puede lanzar comandos iptables para filtrar las
ips a nivel Kernel, de esta manera bloquea a los que atacan al servidor
pero sigue en línea y sirviendo a los clientes legítimos.
mod_evasive se puede descargar de:
http://www.zdziarski.com/projects/mod_evasive/mod_evasive_1.10.1.tar.gz
Dentro viene instrucciones para instalarlo y un script de prueba.
A continuación un ejemplo y su explicación para la
configuración de apache en el httpd.conf y además un
video que muestra el funcionamiento de este modulo:
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
</IfModule>
Repasemos alguno de los parámetros más importantes que
podemos incluir en la directiva:
* DOSHashTableSize <valor> – Establece el
número de nodos a almacenar para cada proceso de peticiones de
la tabla hash (contenedor asociativo de recuperación de
peticiones por medio de claves que agiliza las respuestas del
servidor). Si aplicamos un número alto a este parámetro
obtendremos un rendimiento mayor, ya que las iteraciones necesarias
para obtener un registro de la tabla son menores. Por contra, y de
forma evidente, aumenta el consumo de memoria necesario para el
almacenamiento de una tabla mayor. Se hace necesario incrementar este
parámetro si el servidor atiende un número abultado de
peticiones, aunque puede no servir de nada si la memoria de la
máquina es escasa.
* DOSPageCount <valor> – Indica el valor del
umbral para el número de peticiones de una misma página
(o URI) dentro del intervalo definido en DOSPageInterval. Cuando el
valor del parámetro es excedido, la IP del cliente se
añade a la lista de bloqueos.
* DOSSiteCount <valor> – Cuenta cuántas
peticiones de cualquier tipo puede hacer un cliente dentro del
intervalo definido en DOSSiteInterval. Si se excede dicho valor, el
cliente queda añadido a la lista de bloqueos.
* DOSPageInterval <valor> – El intervalo, en
segundos, para el umbral de petición de páginas.
* DOSSiteInterval <valor> – El intervalo, en
segundos, para el umbral de petición de objetos de cualquier
tipo.
* DOSBlockingPeriod <valor> – Establece el
tiempo, en segundos, que un cliente queda bloqueado una vez que ha sido
añadido a la lista de bloqueos. Como ya se indicó unas
líneas atrás, todo cliente bloqueado recibirá una
respuesta del tipo 403 (Forbidden) a cualquier petición que
realice durante este periodo.
* DOSEmailNotify <e-mail> – Un e-mail
será enviado a la dirección especificada cuando una
dirección IP quede bloqueada. La configuración del
proceso de envío se establece en el fichero mod_evasive.c de la
forma /bin/mail -t %s, siendo %s el parámetro que queda
configurado en este parámetro. Será necesario cambiar el
proceso si usamos un método diferente de envío de e-mails
y volver a compilar el módulo con apxs (por ejemplo, la
opción t ha quedado obsoleta en las últimas versiones del
comando).
* DOSSystemCommand <comando> – El comando
reflejado se ejecutará cuando una dirección IP quede
bloqueada. Se hace muy útil en llamadas a herramientas de
filtrado o firewalls. Usaremos %s para especificar la dirección
IP implicada. Por ejemplo, podemos establecer su uso con iptables de la
forma siguiente:
DOSSystemCommand “/sbin/iptables –I INPUT –p tcp –dport 80 –s %s –j
DROP�
* DOSLogDir <ruta> – Establece una ruta para
el directorio temporal. Por defecto, dicha ruta queda establecida en
/tmp, lo cual puede originar algunos agujeros de seguridad si el
sistema resulta violado.
* DOSWhitelist <IP> – La dirección IP
indicada como valor del parámetro no será tenida en
cuenta por el módulo en ningún caso. Para cada
dirección IP a excluir ha de añadirse una nueva
línea con el parámetro. Por ejemplo, dejaremos fuera del
chequeo del módulo a un posible bot que use los siguientes
rangos de direcciones:
Muy buen articulo!!!, se puede hablar un poquito mas a fondo de él. A alguien le servirá muy bien.
yo lo probe y no me gusto mucho, o no lo supe usar bien :S lo que hace es mostrar un error de apache pero aun asi se hace la conexion y lo de iptables pues … no mas que ejecutes apache como root u uses sudo … pero no se no me da confiansa, actualmente uso un scrip en bash que monitorea las conexiones y pues en la gran mayoria de los ataques ah dado resultado
A mi me funciona bien, pero igual podrias compartir tu script aqui, al final se busca la solucion a esos problemas de DoS no importa el metodo, solo el resultado.
Hola
Pues el mod_evasive solo sirve para bloquear peticiones múltiples al apache cual es una o pocas ips atacantes, pero no sirve para Ddos considerables.
He experimentados ataques de mas de 20,000 peticiones por segundo, dejando fuera de combate al apache y eso con todo mod_evasive, y apf y bfd y un script que se ejecuta en cron cada 60 segundos que verifica las conexiones SYN, FIN, UDP etc… y banea ips conforme a las reglas definidas, pero como el ataque es tan grande que deja fuera de combate al apache hasta por horas, ya como administrador uno tiene que banear las ips manualmente y ayudar al sistema de filtrado a que sea mas rápida la recuperación.
Por esos eventos tuve que contratar un firewall fÃsico un CISCO ASA con modulo de filtrado que verifica las conexiones reales y rechaza los paquetes malos SYN, los cuales a mi parecer son los mas peligrosos, ya que puede dejar fuera de combate a cualquier servidor.
Esa ha sido mi experiencia, en un servidor linux con CentOS4.4
Con: Dual Xeon Dempsey Dual Core 5050 4 x 2MB CPU Cache w/ HT
RAM: 4 GB.
NIC: 100 Mbps
también como comentario he notado que el ipfw del BSD trabaja mucho mejor en filtrado que el iptables de linux. Lo se por experiencia propia. y aparte a mi parecer es mucho mas fácil el manejo del ipfw y mucho mas potente y con-figurable, lo que me tomarÃa en iptables hacer un filtrado con 10 lineas, en ipfw me tomarÃa una sola linea.
Algo muy importante para mi, cuando en un servidor tiene muchas ips y quiero bloquear un puerto especifico para una especifica IP del servidor, con ipfw es mucho mucho mas fácil hacerlo que en iptables.
En fin solo es cuestión de gustos.
Efectivamente Coco los filtros en BSD son otro boleto, no envano se usa casi religiosamente OpenBSD para firewall
El articulo es muy bonito pero es para ddos pequeños…….si realmente te atacan con un verdadero ddos de un minimo de 2 mil botnets .. o shellbots .. estas frito con este programita o lo ke fuera que tengas en el servidor , este modulo de apache solo te sirve para manejar pequeñas cantidades de ips atacantes…si la cantidad fuera superior a 1000 ips… el programa te servira mas que poco…diria de nada… por otro lado este programa solo contempla el port 80 cuando si te atacan con un verdadero ddos ..lo hacen por multiples ports .. saturando las respuestas de todos los servicios y llevando la carga del equipo al intentar responder cada petición a las nubes.. y eso también dejaria fuera de linea tu servidor… pero vamos mas alla… si el ataque fuera aun mayor … cualquier filtro que tengas en tu servidor sera totalmente inutil… por que? simple… el router quedará saturado mucho antes de que ningun paquete llegue a tu servidor y por resultado… tu servidor estará fuera de linea. Un cisco pix por alli ? mmm tampoco.. el cisco pix corre detras del router por lo que tambien seria inutil…. en el mejor de los casos .. será el proveedor o ISP ( es lo mismo ) que les de null route a la ip de su servidor ..dejandolo tabien fuera de internet…
solución ? no hay soluciones magicas… ante verdaderos ataques ddos… ( no ddos pequeños de novatos ).. la realidad indica que el costo para protegerte de ataques reales para una persona son carisimos… se necesita .. hardware muy especial y mucho ancho de banda… ( hablamos de ataques de mas de 20 gigabits por segundo ).. con lo cual nos da como solución contratar un proveedor de servicios de internet que esté especializado en el tema…que tenga suficiente ancho de banda para mitigar ataques ( mas de 80gbps en bgp 4 ) y hardware especifico dedicado a mitigar estos ataques por delante del router y por detras de el…( el hardware apropiado para esto tiene un costo de 20 mil dolares en adelante )..
espero les ayude un poco saludos
Que tal Raven, si es verdad que se requiren de equipos, yo le confio mucho a los de cisco.
Tambien se pueden combatir sin requerir un aparato de estos para eso GNU/Linux se presta solo
Este articulo habla al respecto Contra DDoS
estuve checando y dices que puedes soportar hasta 500 bots y que megacaca te ataco y demas, despues de leer tu articulo en esta web a la que entre linkeado por casualidad desde otra web, intente parar tu server.. y lo logre en menos de 5 segundos…
que paso entonces con la config? no es alarde ni empezar pelea ni nada… solo digo que te faltan unas que otras cositas para poder parar los ataques y demas… si gustas agregame al msn y te lo muestro, de igual manera te digo como solucionarlo..
saludos a todos los “hackers” que se creen dioses.
—-• g4rf0x • ::: // Alguien con habilidad en una nueva clase de creación
MALOS LOS LINK Y LOS MODULOS NO DETIENEN COMPLETAMENTE UN ATAQUE DDOS .. SOLO VASTA USAR UN SCRIPT PARA HACERLO -_-
Gracias me a servido, pero no e logrado detener el atake
saludos.