Clicky

Instalar ModSecurity en Apache2 - El camino más fácil

mod_security 2.7

ModSecurity es un módulo para Apache que actua como un firewall de aplicaciones web y que aportará algo más de seguridad a tu sitio web. Hoy en día es muy importante contar con esta protección para que tu sitio web esté protegido contra las amenazas de Internet. Con base en mi experiencia como administrador del sistema, mi sistema de detección de intrusos detecta una media de 10 a 15 amenazas de Internet por servidor al día. Estos incluyen ataque de fuerza bruta, inyección blind SQL, ataque XSS y muchos más.

Apache es el servidor web más popular del mundo. Para aquellos que utilizan Apache, os aconsejo tener ModSecurity habilitado en el servidor Web de producción. Nunca se sabe cuando un sitio web es objetivo, o por qué es objetivo. Por eso, prevenir es mejor que curar.

Voy a utilizar una distribución estándar de CentOS 6 con Apache instalado usando yum como DSO. Las variables son las siguientes:

OS: CentOS 6.2 64bit
Directorio de Apache: /etc/httpd
Archivo de configuración de Apache: /etc/httpd/conf/httpd.conf
Archivo de configuración de ModSecurity: /etc/httpd/conf.d/modsecurity.conf

1. Instalar Apache a través de yum y asegúrate de que funciona correctamente:

$ yum install -y httpd*
$ chkconfig httpd on
$ service httpd start

2. Instalar todos los paquetes necesarios a través de yum:

$ yum install pcre* libxml2* libcurl* lua* libtool openssl

3. Descarga el archivo fuente en mod_security http://www.modsecurity.org/download/ .

En este caso voy a descargar https://github.com/downloads/SpiderLabs/ModSecurity/modsecurity-apache_2.7.1.tar.gz

Navega a tu carpeta preferida e inicia la descarga:

$ cd /usr/local/src
$ wget https://github.com/downloads/SpiderLabs/ModSecurity/modsecurity-apache_2.7.1.tar.gz

4.Extrae los archivos descargados:

$ tar -xzf modsecurity-apache_2.7.1.tar.gz

5. Configurar e instalar:

$ cd modsecurity-apache*
$ ./configure
$ make
$ make install

6. Copia el archivo de configuración de ModSecurity en el directorio de configuración de Apache:

$ cp modsecurity.conf-recommended /etc/httpd/conf.d/modsecurity.conf

7. Activar los módulos mod_security y unique_id en el archivo de configuración de Apache. Abre el archivo /etc/httpd/conf/httpd.conf con tu editor de texto y agrega las siguientes líneas:

LoadModule security2_module modules/mod_security2.so
LoadModule unique_id_module modules/mod_unique_id.so

8. Ahora tenemos que activar la protección en el archivo de configuración de ModSecurity. Abre el archivo /etc/httpd/conf.d/modsecurity.conf con tu editor de texto favorito y cambia siguiente línea:

SecRuleEngine DetectionOnly

Por:

SecRuleEngine On

9. Reinicia Apache y así se puede cargar mod_security en el entorno de Apache:

$ service httpd restart

10. Comprueba que está cargado el módulo mod_security:

$ httpd -M

Tendrá que aparecer entre todos:

security2_module (shared)

¡Ya está! Ahora tu Web se ha protegido con Apache ModSecurity. Se pueden cambiar las reglas dentro del fichero modsecurity.conf para ajustarlas a tus necesidades del sitio web.

Yo, por ejemplo, he dejado estas líneas así:

SecRequestBodyLimit 16384000
SecRequestBodyNoFilesLimit 524288
SecRequestBodyInMemoryLimit 16384000

Aumentando la primera y última a 16Mb y la segunda a 512K

Jesus_Caceres