ModSecurity es una aplicación web de firewall para el servidor web Apache. Además de proporcionar capacidades de registro, ModSecurity puede monitorizar el tráfico HTTP en tiempo real con el fin de detectar y evitar ataques. ModSecurity también opera como una herramienta web para la detección de intrusos, permitiéndole reaccionar a eventos sospechosos que ocurren en sus sistemas web. En este tutorial explicamos cómo instalar, configurar y usar ModSecurity.
Antes de instalar ModSecurity, querrá tener una infraestructura LAMP configurada en su servidor. Para más instrucciones puede ver nuestra guía de instalación y configuración de LAMP en CentOS
Para instalar ModSecurity en un servidor con Ubuntu o Debian, ingrese los siguientes comandos, uno por uno:
sudo apt-get install libxml2 libxml2-dev libxml2-utils
sudo apt-get install libaprutil1 libaprutil1-dev
sudo apt-get install libapache-mod-security
Una vez ejecutados, ya tendrá ModSecurity instalado en su servidor.
Para instalar ModSecurity en un servidor en el cual ejecute una distribución CentOS o Fedora, lleve a cabo los siguientes pasos:
Instale el compilador GCC y las dependencias ingresando los siguientes comando uno a uno:
sudo yum install mod_security
Reinicie Apache ejecutando el siguiente comando:
sudo /etc/init.d/httpd restart
¡Ya ha completado la instalación de ModSecurity!
Usaremos una configuración base de referencia, en este caso el conjunto de reglas principales OWASP. Las instrucciones para la instalación están en el GitHub del proyecto SpiderLabs:
https://github.com/SpiderLabs/owasp-modsecurity-crs/blob/master/INSTALL.
Contenido del archivo modsecurity_crs_10_setup.conf.example.
Debe usar la información de modsecurity10crs_config
, así que copiemos el contenido del ejemplo:
cp modsecuritycrs10setup.conf.example modsecuritycrs10setup.conf
Hay cinco directorios de reglas:
activated_rules
base_rules
experimental_rules
optional_rules
slr_rules
Nota:
El directorio activated_rules
estará vacío en caso de que quisiera hacer un enlace simbólico con los archivos de configuración para las reglas que desea usar en ese directorio.
Hay dos formas en las cuales puede configurar ModSecurity: usar un conjunto de reglas básicas, o usar enlaces simbólicos. Las siguientes secciones explican ambas.
Si quieres comenzar con un conjunto de reglas básicas y no preocuparse por enlazar simbólicamente los archivos de configuración, siga los siguientes pasos:
Modifique el módulo <IfModule>
en su archivo httpd.conf
tal como se muestra abajo:
/etc/apache2/httpd.conf (Debian o Ubuntu)
<IfModule security2module>
Include modsecurity-crs/.conf Include modsecurity-crs/baserules/.conf
</IfModule>
/etc/httpd/conf/httpd.conf (CentOS o Fedora)
<IfModule security2module>
Include modsecurity-crs/.conf Include modsecurity-crs/baserules/.conf
</IfModule>
En el archivo modsecuritycrs20protocolviolations.conf
cambie el nombre de la variable REQBODY_ERROR
por REQBODYPROCESSORERROR
.
Reinicie Apache para que los cambios surtan efecto:
Debian / Ubuntu:
/etc/init.d/apache2 restart
CentOS/Fedora:
/etc/init.d/httpd restart
Una vez terminado, habrá configurado ModSecurity para que utilice un conjunto de reglas básicas.
Si prefiere enlazar simbólicamente los archivos de configuración al directorio activated_rules
, siga los siguientes pasos:
Edite el archivo de configuración de Apache de modo que el módulo <IfModule>
luzca así:
/etc/apache2/httpd.conf (Debian o Ubuntu)
<IfModule security2module>
Include modsecurity-crs/modsecuritycrs10config.conf Include modsecurity-crs/activated_rules/*.conf </IfModule>
/etc/httpd/conf/httpd.conf (CentOS o Fedora)
<IfModule security2module>
Include modsecurity-crs/modsecuritycrs10config.conf Include modsecurity-crs/activated_rules/*.conf </IfModule>
Cree los enlaces simbólicos antes de reiniciar Apache. Algunos ejemplos a continuación:
Para copiar todas las reglas base en base_rules
al directorio activated_rules
:
> > for f in ls baserules/ ; do ln -s /usr/local/apache/conf/crs/baserules/$f activated_rules/$f ; done >
Para copiar las reglas de comentarios de spam desde el directorio optional_rules
al directorio activated_rules
:
> > for f in ls optionalrules/ | grep commentspam ; do sudo ln -s /usr/local/apache/conf/crs/optionalrules/$f activatedrules/$f ; done >
Reinicie Apache para que los cambios surtan efecto:
Debian / Ubuntu:
/etc/init.d/apache2 restart
CentOS/Fedora:
/etc/init.d/httpd restart
¡Ha configurado exitosamente ModSecurity con enlaces simbólicos!
Este tutorial no incluye detalles sobre el uso de ModSecurity. Para complementar la información aquí presentada puede consultar los siguientes recursos. Aunque este material es provisto esperando que sea útil, tome en cuenta que no podemos dar fe de la actualidad o precisión de los contenidos externos.
Documentación oficial de Apache. Este primer enlace presentar la información según las versiones de Apache.