Underc0de

[In]Seguridad Informática => Seguridad web y en servidores => Mensaje iniciado por: BlackDead en Agosto 06, 2013, 11:47:02 PM

Título: Instalar mod_security para Apache en Linux 64 bits
Publicado por: BlackDead en Agosto 06, 2013, 11:47:02 PM
(https://www.rosehosting.com/blog/wp-content/uploads/2014/09/mod-security-raise-up-your-apache-webserver-security-and-protect-against-cross-site-scripting-javascript-hacks-and-viruses.jpg)

A la hora de instalar mod_security en sistemas de 64 bits podemos encontrarnos con problemas al intentar hacerlo a través de apxs. Por ello, tenemos que recurrir a la instalación mediante compilación. En este caso bajo un centos 5 x86_64.
Lo primero que hacemos es descargar las fuentes:

Código (bash) [Seleccionar]
wget http://www.modsecurity.org/download/modsecurity-apache_2.5.13.tar.gz


Descomprimimos y nos ubicamos en la carpeta apache2 (para versiones 2 de Apache):

Código (bash) [Seleccionar]
tar -xzvf modsecurity-apache_2.5.13.tar.gz
Código (bash) [Seleccionar]
cd modsecurity-apache_2.5.13/apache2

Llega el momento de compilar, en este caso la configuración me ha obligado a especificar la ruta tanto de apxs como de apr-config y apu-config:

Citar# ./configure --with-apxs=/usr/local/apache/bin/apxs \
--with-apr=/usr/local/apache/bin/apr-1-config \
--with-apu=/usr/local/apache/bin/apu-1-config

Si no recibimos ningún error compilamos:

Código (bash) [Seleccionar]
make


E instalamos:

Código (bash) [Seleccionar]
make install


Llega el momento de añadir a httpd.conf la carga de los módulos necesarios y la llamada al fichero de configuración:

CitarLoadFile /usr/lib/libxml2.so
LoadModule security2_module modules/mod_security2.so

Y la llamada al fichero de configuración que podéis llamar como queráis:

CitarInclude conf/modsec2.conf

Ya quedará únicamente crear o copiar el fichero modsec2.conf y copiar las reglas que queramos a la ruta deseada.



modsec2.conf:

Citar<IfModule mod_security2.c>
SecRuleEngine On
SecFilterCheckURLEncoding On
SecFilterForceByteRange 0 255
SecAuditEngine RelevantOnly
SecAuditLog logs/modsec_audit.log
SecDebugLog logs/modsec_debug_log
SecDebugLogLevel 0
SecDefaultAction "phase:2,deny,log,status:403"
#Redireccion a html de seguridad
ErrorDocument 403 http://rm-rf.es/fallo_seguyridad.html
SecRule REMOTE_ADDR "^127.0.0.1$" nolog,allow
#Includes de configuracion
Include "/usr/local/apache/conf/modsecurity_rules/*.conf"
</IfModule>

Finalmente comprobamos que la sintaxis de los ficheros de configuración es correcta y ya podemos arrancar Apache y hacer pruebas con mod_security:

Código (bash) [Seleccionar]
/etc/init.d/httpd configtest
Syntax OK

Fuente: # rm-rf.es