ModSecurity es un firewall de aplicaciones web (web application firewall, WAF). Como cualquier otro tipo de firewall, su objetivo principal es detectar y prevenir los ataques antes de que alcancen las aplicaciones web.
Además, al ser un módulo de Apache apenas debemos modificar nuestra infraestructura y ModSecurity se integra con ella prácticamente de forma automática.
Si tienes un servidor web con Apache, no debes dejar de probarlo porque te sentirás más seguro y porque no es nada difícil.
Aquí te dejo lo pasos:
- Instalamos ModSecurity con el siguiente comando:
sudo aptitude install libapache-mod-security - A continuación, vamos a preparar el sistema para alojar las reglas de ModSecurity creando un directorio en /etc/apache2/conf.d con el nombre modsecurity:
sudo mkdir /etc/apache2/conf.d/modsecurity
- Ahora nos cambiamos a este nuevo directorio que hemos creado:
cd /etc/apache2/conf.d/modsecurity
- Descargamos las reglas desde la web de ModSecurity:
sudo wget http://www.modsecurity.org/download/modsecurity-core-rules_2.5-1.6.1.tar.gz
- Descomprimimos el archivo descargado:
sudo tar xzvf modsecurity-core-rules_2.5-1.6.1.tar.gz
- Borramos los archivos que ya no necesitamos:
sudo rm CHANGELOG LICENSE README modsecurity-core-rules_2.5-1.6.1.tar.gz
- Si ahora listamos el contenido del directorio con ls, veremos todas las reglas:
- Ya tenemos ModSecurity instalado y las reglas descargadas, ahora toca indicarle a Apache que lea las reglas y las aplique. Para esto creamos el archivo modsecurity2.conf en /etc/apache2/conf.d con el siguiente comando:
sudo nano /etc/apache2/conf.d/modsecurity2.conf
e introducimos el siguiente texto:
<Ifmodule mod_security2.c>
Include conf.d/modsecurity/*.conf
</Ifmodule>De esta forma Apache leerá todos los archivos .conf del directorio /etc/apache2/conf.d/modsecurity que es donde se encuentran nuestras reglas.
- El siguiente paso consiste en crear un directorio donde alojar los logs de ModSecurity. Lo hacemos con el siguiente comando:
sudo mkdir /var/log/apache2/mod_security
- A continuación enlazamos el directorio creado en el paso anterior con el directorio en el que ModSecurity crea los logs por defecto.
sudo ln -s /var/log/apache2/mod_security/ /etc/apache2/logs
- Por último, sólo nos queda reiniciar Apache:
sudo service apache2 restart
Con esto hemos terminado la instalación. Próximamente veremos como probar su funcionamiento.
Una vez instalado ModSecurity y puesto en funcionamiento, no podremos (por defecto) acceder a nuestra web usando direcciones IP en el navegador. Deberemos usar nombres de dominio.
Fuente: Shadows of epiphany
Artículos relacionados:
- Probar ModSecurity
- Instalar phpMyAdmin en Ubuntu 9.04 Server paso a paso
- Instalar LAMP en Ubuntu 9.04 Server paso a paso
- Instalar LAMP en Ubuntu 9.04 Server en una línea
- Instalar Ubuntu 9.04 Server paso a paso




Amigo disculpa por error escribi mal el sitio web de descarga y me bajo un not_found.html y me esta colocando problemas a la hora de reiniciar el apache
como elimino la regla, ya que el archivo no se deja elminar (rm not_found.hmtl)
gracias por tu ayuda
@Carlos
Supongo que lo habrás hecho pero… ¿has probado con
sudo rm not_found.html? Si no te funciona, por favor, escribe el error que obtienes para poder ayudarte mejor.Un saludo.
Por fin he hecho andar en ubuntu server 8.04.02 64 bit. Por otro lado a lo de los pass me dice que forbidenn!! pero a la ip cuando la pongo lo mismo me trae el sitio. es tema de configurar las reglas?. un saludo
me precipite al dejarte el mensaje anterior. Despues de un compendio de 7 tutoriales para instalarlo en ubuntu 8.04.02, las reglas de otros tutoriales al parecer estan configuradas mucha seguridad. Puse las que vos dejas en este tutorial y va fenomeno. Ahora a reventar la seguridad de mi sitio y poder configurar mejos las reglas. jajaja. Un saludo
Buenos días,
He instalado el mod security y ahora no puedo acceder a login desde mi wordpress, me da el siguiente error:
Este error (HTTP 501 Sin implementar o HTTP 505 Versión no compatible) significa que, en este momento, el sitio web que está visitando no tiene la capacidad para mostrar la página web o no es compatible con la versión de HTTP usada para solicitar la página.
Para obtener más información sobre errores HTTP, consulte la Ayuda
Por favor necesitaria una mano.
Muchas gracias
Buenos días,
Una vez seguido tu manual nadie puede acceder al login de usuario, ni admin.
Plase me podeis ayudar?
Muchas gracias