virtual
14/01/2009, 22:30
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:
Para compilar, hemos de distinguir entre apache 1.3.x y apache 2.x:
Apache 1.3.x:
En el último comando tener en cuenta la ruta a vuestro apache.
Apache 2.x:
En el último comando tener en cuenta la ruta a vuestro apache.
Ya debería aparecer en nuestro httpd.conf el módulo cargado:
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:
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
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:
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)
Personalizar la página de error a la que mandemos las peticiones web filtradas, que en nuestro caso hemos configurado con un error 500:
Y muchísimas más opciones, revisad la documentación y los ficheros de reglas, ante cualquier duda comentadlo y lo revisamos.
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:
Código:
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
Apache 1.3.x:
Código:
cd modsecurity-apache_1.9.4/apache1 /usr/local/apache/bin/apxs -cia mod_security.c
Apache 2.x:
Código:
cd modsecurity-apache_1.9.4/apache2 /usr/local/apache/bin/apxs -cia mod_security.c
Ya debería aparecer en nuestro httpd.conf el módulo cargado:
Código:
LoadModule security_module libexec/mod_security.so
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:
Código:
Include "/usr/local/apache/conf/mod_security.conf"
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
Código:
# The name of the audit log file SecAuditLog logs/mod_security.log
Código:
# Action to take by default # SecFilterDefaultAction "deny,log,status:406" # For log only: SecFilterDefaultAction "pass,log" SecFilterDefaultAction "deny,log,status:500"
Código:
# Do not log local requests and allows them all SecFilterSelective REMOTE_ADDR "^127.0.0.1$" nolog,allow
Código:
ErrorDocument 500 http://páginapersonalizada.com/error.html