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:
$ 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):
$ tar -xzvf modsecurity-apache_2.5.13.tar.gz $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:
# ./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:
# make
E instalamos:
# 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:
LoadFile /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:
Include 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:
<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 https://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:
# /etc/init.d/httpd configtest Syntax OK