mod_security en Fedora Core HOWTO


Edwind Richzendy Contreras Soto <Richzendy[at]gmail[dot]com>
blog: http://www.Richzendy.org

Maria Gracia Leandro Lombardo  <tatadbb[at]gmail[dot]com>
blog: http://www.tatica.org

*Sustituye el [at] por el simbolo @ y el [dot] por un punto

 v0.1, 20 de Abril del 2007
Este mini HowTo, no pretende ser una biblia de mod_security, solo es una de las tantas maneras de configurarlo, lo que pretendiamos con este mini tutorial era lograr una configuración rápida y sencilla para cualquier persona que no quiere convertirse en un experto o leerse una extensa documentación de apache para lograr la tarea de proteger un poco su sitio web. Todas las acciones que se realizarón aca funcionaron a la perfección, pero no nos hacemos responsables de lo que tu hagas con tus /dev/hands asi que te recomendamos conectes tu /dev/brain al intentar hacer algo de lo que aca se explica. 
 

mod_security es un módulo para apache que permite por medio de algunas reglas predefinidas, basadas en expresiones regulares proteger
tu sitio web, de algunos ataques comúnes y de usuarios maliciosos, el por si solo no hace nada, las reglas que definimos para mod_security
son las que ayudarán a la protección y dependiendo de que tan buenas sean, será efectivo o no.

Cabe destacar, que tampoco es el único método de protección, existen varios y ninguno es mejor o peor que otro, de hecho estos se pueden
 mezclar en armonía, pero la gran mayoría se basan en una buena configuración del demonio httpd y sus componentes.

Todo el procedimiento, se realizo en una máquina ( propiedad de tatica ) con Fedora Core versión 6 instalado, con la versión de apache:

 httpd-2.2.3-5


 Ingresamos al directorio donde el demonio httpd ( apache ) en Fedora Core almacena los archivos de configuración extras:

[root@tuxita ~]# cd /etc/httpd/conf.d/



[root@tuxita conf.d]# ls

manual.conf perl.conf php.conf proxy_ajp.conf README ssl.conf tatica.conf webalizer.conf welcome.conf



No se ve por ningún lado...



[root@tuxita conf.d]# rpm -qa | grep mod_security


Y no, da respuesta, por lo que se concluye que no esta instalado y hay que instalarlo... para poder seguir.



[root@tuxita conf.d]# yum install mod_security



 

[root@tuxita conf.d]# ls
manual.conf mod_security.conf perl.conf php.conf proxy_ajp.conf README ssl.conf tatica.conf webalizer.conf welcome.conf





*Notese el archivo mod_security.conf

Este archivo trae ya una configuración, básica, pero suficiente para algunos, nosotros vamos a configurarlo con mejores reglas y no
vamos a usar las que vienen por defecto



http://www.gotroot.com/tiki-index.php?page=Setup+of+mod_security

En el sitio sitio dicen como instalar estas reglas, pero esta en ingles, nosotros nos limitaremos a usar la misma configuración de como
 la explican allí.



[root@tuxita conf.d]# mkdir /etc/modsecurity

y entramos en el:


[root@tuxita conf.d]# cd /etc/modsecurity




http://www.gotroot.com/tiki-index.php?page=mod_security+rules

Y vamos a ir bajando una a una de las que estan especificadas en el archivo, con wget al directorio /etc/modsecurity ( de todos los archivos
son las que dicen que son para apache 2.x que es la versión actual de apache en Fedora Core )


Primero bajamos el exclude.conf



[root@tuxita modsecurity]# wget http://www.gotroot.com/downloads/ftp/mod_security/2.0/apache2/exclude.conf


Luego el rules.conf


[root@tuxita modsecurity]# wget http://www.gotroot.com/downloads/ftp/mod_security/2.0/apache2/rules.conf


Luego el blacklist, que es ideal para prevenir el spam en comentariosde nuestro site
 

[root@tuxita modsecurity]# wget http://www.gotroot.com/downloads/ftp/mod_security/2.0/apache2/blacklist.conf


Luego el blacklist2, para prevenir conexiones de proxys no co9nfiables y visitantes maliciosos:



[root@tuxita modsecurity]# wget http://www.gotroot.com/downloads/ftp/mod_security/2.0/apache2/blacklist2.conf


Luego el useragents.conf, para evitar, malware , clientes maliciosos, bugs conocidos:


[root@tuxita modsecurity]# wget http://www.gotroot.com/downloads/ftp/mod_security/2.0/apache2/useragents.conf


Luego el rootkits.conf, el nombre lo dice, para evitar rootkits y algunos hackeos:

[root@tuxita modsecurity]# wget http://www.gotroot.com/downloads/ftp/mod_security/2.0/apache2/rootkits.conf


El proxy.conf, no lo descargamos, comentamos la linea de archivo que hace referencia a el.

Y por último el apache2-rules.conf, que contiene algunas reglas especiales para apache2



[root@tuxita modsecurity]# wget http://www.gotroot.com/downloads/ftp/mod_security/2.0/apache2/apache2-rules.conf


Ahora vamos y editamos el archivo de configuración del modúlo mod_security:


[root@tuxita modsecurity]# vi /etc/httpd/conf.d/mod_security.conf


El archivo debe quedar como el de acá, solo copy/paste, el texto siguiente:





Ya con esto esta todo prácticamente listo, solo hace falta reiniciar el apache y cruzar los dedos para que no de ningun error :D
y ya tienes tu mod_security instalado, configurado y con unas buenas reglas, solo te falta probar que todo en tu sitio funcione,
correctamente, prueba enviando comentarios y otras cosas del sitio, como los urls


Si deseas editar las reglas por ti mismo, revisa los archivos de las reglas que estan en /etc/modsecurity, casi todas están basadas
en expresiones regulares, puedes editar algunas que se refieren a proteger CMS, como php-nuke y si no lo usas, no tienes por que
tenerlas cargadas, ya que no, hacen falta.


Esto no garantiza que estes protegido contra todos los males del internet, pero al menos ayuda en algo, debes estar pendiente en el
el sitio de donde bajamos las reglas por los updates para actualizar nuestros archivos de reglas.


Espero te sirva de ayuda, cualquier comentario o corrección es bienvenida a nuestros correos eléctronicos.


  1. http://www.modsecurity.org/documentation/index.html  ( documentación en ingles de mod_security ).
  2. http://www.gotroot.com/tiki-index.php?page=Setup+of+mod_security ( tutorial de referencia que se uso para este, pero en ingles ).
  3. http://www.gotroot.com/tiki-index.php?page=mod_security+rules ( página de descarga de las reglas de gotroot ).
    Puedes copiar parte o todo este tutorial en tu web site o donde quieras con la intención o fin que mejor te parezca, con tal que lo dejes en contenido tal cual como esta y en alguna parte menciones los links originales de donde se puede conseguir para que las personas que lo lean puedan conseguir versiones actualizadas del mismo, con el debido credito de los autores y si lo usas, nos sentiriamos agradecidos de que nos informaras al respecto, para tener una idea de la difusión de este material.