Logo
  • Entries
  • Comments
  • Popular
Recent Posts
  • January 2012
  • November 2011
  • October 2011
  • September 2011
  • August 2011
  • July 2011
  • June 2011
  • May 2011
  • April 2011
  • March 2011
  • February 2011
  • January 2011
  • December 2010
  • November 2010
  • October 2010
  • September 2010
  • August 2010
  • July 2010
  • June 2010
  • May 2010
  • April 2010
  • March 2010
  • February 2010
  • January 2010
  • December 2009
  • November 2009
  • October 2009
  • September 2009
  • August 2009
  • July 2009
  • June 2009
  • May 2009
  • April 2009
  • March 2009
  • February 2009
  • January 2009
  • December 2008
  • November 2008
  • October 2008
  • September 2008
  • August 2008
  • July 2008
  • June 2008
  • May 2008
  • April 2008
  • March 2008
  • February 2008
  • January 2008
  • December 2007
  • November 2007
  • October 2007
  • July 2007
Recent Comments
  • Makendra It's always a pleasure to hear from someone with eexrpitse....
  • Rubén Ortiz Hola dependerá de varias cosas pero la respuesta sería NO. ...
  • jose miguel perea Buenos días, ¿La replicación entre maestro y esclavo es i...
  • Rubén Ortiz Si lo hacéis legal, con VMware el único problema son los cos...
  • Angel Hola, estamos valorando implementar baremetal para crear un ...
Popular Articles
  • Declaro la guerra al mosquito Tigre (35)
  • Phpbb3 - encode error converter (19)
  • MySQL - Variables básicas a configurar (17)
  • Reinicio programado Windows 2003 Server (16)
  • Plesk - Evitar el SPAM (10)
  • Home
  • Contacta
  • Hosting Linux
  • Legal
  • Sobre mí – About me

Apache y mod_evasive

Posted by Rubén Ortiz on Apr 1, 2008 in Apache 2.X, Software | 1 comment

¿Qué es Mod Evasive?

Apache Evasive Maneuvers Module
A module for Apache (both 1.3 and 2.0) giving Apache the ability to detect and fend off request-based DoS/DDoS attacks and brute-force attacks conserving your system resources and bandwidth. This tool can be configured to report abusers and even talk to network gear (such as a firewall or ipchains).

Uno de los más famosos mods de toda la comunidad, creado por Zdziarski, este mod_evasive, es usado por cientos de webs. A estas alturas no sirve de nada presentarlo. Voy a explicar brevemente los pasos para poder utilizarlo en un sistema RedHat, Centos. Tuve la incógnita de como se podía hacer partiendo de una instalación de apache, creada a partir de yum y el repositorio de RedHat. Lo único que necesitamos es instalar el paquete httpd-devel:

1
2
3
<strong># wget <a href="http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz">mod_evasive</a>
# gunzip mod_evasive_1.10.1.tar.gz
# tar xf mod_evasive_1.10.1.tar</strong>

Actualización:

Mod Evasive 1.10.1

Necesitamos el binario apxs, para poder compilar el mod. Instalamos el paquete httpd-devel:

1
<strong># yum install httpd-devel</strong>

El archivo está localizado en:

/usr/sbin/apxs

Ahora, vamos a ver como compilarlo. Léemos directamente del archivo de instalación. Hay 2 archivos diferentes según nuestra versión de Apache, mod_evasive.c para el apache v1.3 y mod_evasive20.c para Apache v2.X. Leemos directamente del “README” del mod:

1. Extract this archive
2. Run $APACHE_ROOT/bin/apxs -i -a -c mod_evasive20.c
3. The module will be built and installed into $APACHE_ROOT/modules, and loaded
4. Restart Apache

No hace falta que lo hagamos, pero como no tenemos el /bin/apxs dentro del $APACHE_ROOT creamos un enlace simbólico y entonces ejecutamos.

1
2
<strong># ln -s /usr/sbin /etc/httpd/bin
# /etc/httpd/bin/apxs -i -a -c mod_evasive20.c</strong>

El modulo se guardará en $APACHE_ROOT/modules y se modificará automáticamente el httpd.conf para cargar el modulo. Lo siguiente es editar el archivo de configuración de apache para configurar el mod. Incluimos el siguiente trozo de código:

DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10

Este código de configuración es sólo el que viene por defecto. El mod permite incluso interactuar con Iptables para banear ips por firewall. Por ejemplo, podemos configurar rangos de ips “blancas”, seguras, que sabemos que no van a ser focos potenciales de ataques de DDos.

DOSWhiteList 127.0.0.1
DOSWhiteList 195.168.160.*

La lista de ips baneadas, se incluirá en el syslog del sistema, concretamente, en /var/log/messages. Sólo nos queda ya reiniciar apache.

Una vez tengamos todo configurado, podemos utilizar un script en perl para comprobar si mod_evasive hace su trabajo.

1
<strong># perl test.pl</strong>
1
2
3
4
5
6
7
8
[...]
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
[...]

Cuando mod_evasive detecta que el umbral de conexiones ha sido rebasado, añadirá la ip a la lista de bloqueados.

1
2
3
4
5
6
7
8
9
10
11
12
13
IfModule mod_evasive20.c

DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 100
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 600
DOSLogDir "/var/log/httpd/"
DOSEmailNotify email@email.com
DOSSystemCommand "/sbin/iptables -I INPUT -p tcp -dport 80 -s %s -j DROP"

IfModule

Links

  • http://www.sourcefiles.org/
  • http://www.zdziarski.com/projects/mod_evasive/
  • http://www.emezeta.com/articulos
  • http://www.webhostingtalk.com/showthread.php?t=592655

One Response to “Apache y mod_evasive”

  1. Màrius says:
    22 de March, 2010 at 12:49 pm

    En enlace del fichero esta roto. En la web del autor he encontrado la nueva ruta, que es la siguiente:
    http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz

    Saludos!

Leave a Reply

Click here to cancel reply.

Nube de Tags

apache bare metal benchmark cacti centos dell drupal esxi General gripe A Hardware humor IIS kayako Linux lpi lyric Lyrics memcached mysql nginx openfiler OpenVZ openx Parallels php Phpbb plesk postgresql proftpd raid SQL Server ssh svn trac ubuntu varnish Virtualizacion Virtuozzo Virtuozzo Linux Warphammer.net Windows windows 2003 wordpress zabbix

Categorias

  • 2003 Server
  • Apache 2.X
  • benchmark
  • Centos
  • Cuanto (Luser) Cabron
  • ESXi
  • General
  • Hardware
  • IIS
  • Lighttpd
  • Linux
  • Lyrics
  • MySql
  • Nginx
  • OpenVZ
  • Parallels
  • Parallels Bare Metal
  • Php
  • Phpbb
  • Plesk
  • PostgreSQL
  • Prestashop
  • Software
  • SQL SERVER
  • Ubuntu
  • Varnish
  • Virtualizacion
  • Virtuozzo
  • Virtuozzo Windows
  • VMWare
  • Warphammer.net
  • Windows
  • Wordpress

Blogroll

  • David Toribio
  • EasyCompany.es
  • Marius Duch
  • Series
  • Warphammer.net

Recursos

  • Backup Plesk9
  • CentOS 5 32 bits RPMs
  • CentOS 5 64 bits RPMs
  • Lighttpd
  • MySQL Tunner
  • OpenVZ – Panel – PROXMOX
  • OpenVZ – Panel – VTONF
  • OpenVZ Wiki
  • Parallels Virtual Automation Resources
  • Plesk 8 Docs
  • Plesk 9 Docs
  • Plesk Hacker
  • Port80 – Compression Check
  • Virtuozzo DOCS
  • Virtuozzo Lin Commands
  • Virtuozzo Win Commands
  • Virtuozzo Windows Docu

Meta

  • Log in
  • Entries RSS
  • Comments RSS
  • WordPress.org
Designed by Elegant Themes | Powered by Wordpress