Anti DoS y DDoS

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:

10 Comments

Add a Comment

Comment spam protected by SpamBam