# rm-rf.es

Instalación y configuración de Mod_Security

ModSecurity es un firewall de aplicaciones Web embebible que 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 (Definición Wikipedia).

Compilación:

Bajamos la última versión estable y compilamos:

cd /root/descargas
wget http://www.modsecurity.org/download/modsecurity-apache_1.9.4.tar.gz
tar -zxf modsecurity-apache_1.9.4.tar.gz

Para compilar, hemos de distinguir entre apache 1.3.x y apache 2.x:

Apache 1.3.x:

cd modsecurity-apache_1.9.4/apache1
/usr/local/apache/bin/apxs -cia mod_security.c

En el último comando tener en cuenta la ruta a vuestro apache.

Apache 2.x:

cd modsecurity-apache_1.9.4/apache2
/usr/local/apache/bin/apxs -cia mod_security.c

En el último comando tener en cuenta la ruta a vuestro apache.

Ya debería aparecer en nuestro httpd.conf el módulo cargado:

LoadModule security_module    libexec/mod_security.so

Configuración:

Personalmente siempre me gusta poner las configuraciones de este tipo de módulos en ficheros separados, pues suelen ser extensas y resulta incómodo en el httpd.conf, así que añadimos:

Include "/usr/local/apache/conf/mod_security.conf"

Respecto a las reglas, es todo un mundo, resulta difícil saber que reglas son las mejores para cada tipo de servidor, no obstante las que ofrecen en Got Root, además de que se actualizan periódicamente, son lo suficientemente restrictivas para proteger tu servidor Apache de forma excelente. Una vez añadidas, simplemente se trata de optimizarlas a vuestras necesidades, eliminando las que no deseeis.

Podéis descargar las últimas reglas en los siguientes enlaces:

Mod Security 2.5

Apache 2.x rules: (gzip)

Mod Security 2.0-2.1

Apache 2.x rules: (gzip) (bzip)
Apache 1.x rules: (gzip) (bzip)

Mod Security 1.9

Apache 2.x rules: (gzip) (bzip)
Apache 1.x rules: (gzip) (bzip)

Para más información, y reglas de distintas versiones de ModSecurity acceder a su sitio web.

Voy a explicar unas cuantas directivas de configuración, pero son muy extensas, conviene estudiarlas y configurarlas al gusto de cada uno:

Fichero en el que guardaremos el log de los filtrados realizados por mod_security

# The name of the audit log file
SecAuditLog logs/mod_security.log

Acción a realizar por defecto cuando se detecte un ataque, en este caso denegamos la petición web, lanzamos un error 500 y guardamos en el log el tipo de ataque:

# Action to take by default
# SecFilterDefaultAction "deny,log,status:406"
# For log only: SecFilterDefaultAction "pass,log"
SecFilterDefaultAction "deny,log,status:500"

Ips que no se verán afectadas por las reglas establecidas en mod_security (en este caso local, se puede asignar la IP que queramos)

# Do not log local requests and allows them all
SecFilterSelective REMOTE_ADDR "^127.0.0.1$" nolog,allow

Personalizar la página de error a la que mandemos las peticiones web filtradas, que en nuestro caso hemos configurado con un error 500:

ErrorDocument 500 http://páginapersonalizada.com/error.html

Y muchísimas más opciones, revisad la documentación y los ficheros de reglas, ante cualquier duda comentadlo y lo revisamos.

Salir de la versión móvil