Instalando modSecurity para Apache en Linux Ubuntu

modSecurity™ es un firewall de aplicaciones Web embebible que se ejecuta como módulo del servidor web Apache, provee protección contra diversos ataques hacia aplicaciones Web y permite monitorear tráfico HTTP, así como realizar análisis en tiempo real sin necesidad de hacer cambios a la infraestructura existente.

modSecurity™ para Apache es un producto desarrollado por Breach Security. modSecurity™ está disponible como Software Libre bajo la licencia GNU General Public License, a su vez, se encuentra disponible bajo diversas licencias comerciales.

El módulo cuenta con diversas funcionalidades:

* Filtrado de Peticiones: los pedidos HTTP entrantes son analizados por el módulo mod_security antes de pasarlos al servidor Web Apache, a su vez, estos pedidos son comparados contra un conjunto de reglas predefinidas para realizar las acciones correspondientes. Para realizar este filtrado se pueden utilizar expresiones regulares, permitiendo que el proceso sea flexible.
* Técnicas antievasión: las rutas y los parámetros son normalizados antes del análisis para evitar técnicas de evasión.

* Elimina múltiple barras (//)
* Elimina directorios referenciados por si mismos (./)
* Se trata de igual manera la \ y la / en Windows.
* Decodificación de URL
* Reemplazo de bytes nulos por espacios (%00)

* Comprensión del protocolo HTTP: al comprender el protocolo HTTP, ModSecurity™ puede realizar filtrados específicos y granulares.
* Análisis Post Payload: intercepta y analiza el contenido transmitido a través del método POST.
* Log de Auditoría: es posible dejar traza de auditoría para un posterior análisis forense.
* Filtrado HTTPS: al estar embebido como módulo, tiene acceso a los datos después de que estos hayan sido descifrados.
* Verificación de rango de Byte: permite detectar y bloquear shellcodes, limitando el rango de los bytes.

La instalación en Ubuntu 9.04 es simple, basta tan solo ejecutar en consola lo siguiente:
Código HTML:
$ sudo apt-get install libapache-mod-security
Para habilitar modSecurity, debemos crear el archivo /etc/apache2/conf.d/mod_security.conf
Código HTML:
$ sudo touch /etc/apache2/conf.d/mod_security.conf
Luego editamos el archivo y incluímos lo siguiente en el:
Código HTML:
<ifmodule mod_security2.c>
Include conf.d/mod_security/*.conf
</ifmodule> 
Luego creamos el archivo que mostrará los Logs generados por modSecurity
Código HTML:
$ sudo mkdir /var/log/apache2/mod_security
Código HTML:
$ sudo ln -s /var/log/apache2/mod_security /etc/apache2/logs
Luego descargamos las reglas desde aquí

Posteriormente configuramos las reglas
Código HTML:
$ sudo mkdir /etc/apache2/conf.d/mod_security

$ sudo cp modsecurity-core-rules* /etc/apache2/conf.d/mod_security/

$ cd /etc/apache2/conf.d/mod_security

$ sudo tar xvfz modsecurity-core-rules*

$ sudo rm CHANGELOG LICENSE README modsecurity-core-rules*.tar.gz
Si desea deshabilitar cualquier regla de modSecurity, basta con crear el fichero / etc/apache2/conf.d/mod_security/modsecurity_crs_99_disabled_rules.conf y decirle ModSecurity que reglas o lugares desea deshabilitar (puede conocer el número de las reglas de modSecurity, leyendo el archivo de registro /var/log/apache2/mod_security). Por ejemplo:
Código HTML:
<Location /trac>
SecRuleRemoveById 950005
SecRuleRemoveById 950006
</Location> 
Finalmente reinicie el servidor Apache
Código HTML:
$ sudo /etc/init.d/apache2 restart