ModSecurity es un módulo realmente útil para defenderse de los ataques de hackers y de muchos problemas en el desarrollo de aplicaciones web. En este caso hablamos de ModSecurity 2.x que trabajar con Apache 2.0.x o superior.
Este artículo asume que tenéis instalado un RedHat Enterprise o CentOS y no garantiza que funcione, si bien nosotros lo hemos probado en varios CentOS 4.5 con éxito.
Lo primero es comprobar que tenemos la librería libxml2 instalada, para ello solo tenemos que hacer una búsqueda en nuestro sistema, normalmente si está instalada.
Puedes comprobar si está instalada con el comando:
rpm -q libxml2
Para poder instalar y compilar ModSecurity necesitas algunos paquetes adicionales, que después puedes deinstalar, ya que no serán necesarios.
Los paquetes necesarios son:
httpd-devel
apr-devel
apr-util-devel
pcre-devel
En caso de que te falte algún paquete para CentOS puede realizar la instalación de la siguiente forma:
yum install libxml2
yum install httpd-devel
Ahora vamos a por el mod_security, para ello visita la web oficial ModSecurity para descargar la última versión. El ejemplo se muestra con la versión disponible a día de hoy, que tenemos que descomprimir, yo recomiendo bajarlo todo en /usr/local/share/, por ejemplo:
cd /usr/local/share/
wget http://www.modsecurity.org/download/modsecurity-apache_2.1.3.tar.gz
tar zxf modsecurity-apache_2.1.3.tar.gz
Ahora tenemos que una vez descomprimido editar el fichero Makefile que estará en el directorio Apache2 del fichero que acabamos de descomprimir.
En este fichero debemos cambiar la linea indicada para decirle donde tenemos el apache instalado con el paquete de desarrollo (httpd-devel) instalado antes.
top_dir = /usr/lib/httpd
Ahora ya estamos listo para compilar e instalar ModSecurity con los comandos siguientes
make
service httpd stop
make install
ahora en la configuración de apache en /etc/httpd/conf/ editamos httpd.conf con nuestro editor favorito, yo lo haría así:
joe /etc/httpd/conf/httpd.conf
y buscamos la zona de carga de módulos, buscando «LoadModule» (con Control+K+F en joe).
Al inicio de esta sección añade:
LoadFile /usr/lib/libxml2.so
Y después al final de esta sección de carga de módulos de apache añade:
LoadModule security2_module modules/mod_security2.so
Include conf/modsecurity/*.conf
e inmediatamente hecho esto hay que actualizar las políticas de configuración haciendo lo siguiente:
mkdir /etc/httpd/conf/modsecurity;cd /etc/httpd/conf/modsecurity
wget http://www.modsecurity.org/download/modsecurity-core-rules_2.1-1.4.3.tar.gz
tar zxf modsecurity-core-rules_2.1-1.4.3.tar.gz
rm -f modsecurity-core-rules_2.1-1.4.3.tar.gz
Ahora y tienes las políticas por defecto, recuerda que puedes adaptarlas editando los ficheros de configuración que acaba de instalar para ModSecurity.
No te olvides de reiniciar el apache con:
service httpd restart
y por supuesto eliminar los paquete que quizás ya no necesites con:
rpm -e httpd-devel
rpm -e apr-util-devel
rpm -e apr-devel
rpm -e pcre-devel
Felicidades, ahora ya tienes Mod_Security instalado en tu servidor Apache2 con CentOS y panel Plesk.
MUY IMPORTANTE: Si no sabes lo que haces por favor delega está tarea en tu proveedor o administrador de sistemas preferido.