Instalando Mod_Security en servidores cPanel

Daniel B. Seguir

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
25 Abr 2009
Mensajes
188
Mod_Security es un Firewall web, actúa analizando el tráfico web y aplicando normas, que de ser rechazadas, se ve denegada la petición:

Por favor, se requieren conocimientos para hacer este tutorial.

Insertar CODE, HTML o PHP:
mkdir /usr/local/src/modsecurity/
cd /usr/local/src/modsecurity/
wget http://www.modsecurity.org/download/modsecurity-apache_1.9.5.tar.gz
tar -xvpzf modsecurity-apache_1.9.5.tar.gz 
cd modsecurity-apache_1.9.5/apache2/

Apache2 si se usa versión 2.x, Apache1 si usamos versiones inferiores.

Se respalda la configuración de apache:
Insertar CODE, HTML o PHP:
cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.bak -fv

Se compila el módulo usando apxs:
Insertar CODE, HTML o PHP:
/usr/local/apache/bin/apxs -cia mod_security.c

ya está, ahora tenemos que configurarlo y llamarlo desde las configuraciones de apache.

Nos ahorramos el trabajo descargando configuraciones con reglas básicas:
Insertar CODE, HTML o PHP:
wget http://www.encuentroalternativo.com/descargas/modsecrules.txt
mv modsecrules.txt /usr/aux/modsecrules.conf ; chmod 644 /usr/aux/modsecrules.conf

Recuerden que el fichero /usr/aux/modsecrules.conf contiene configuraciones básicas que controlan ataques y ficheros que traten de ejecutarse. Deberás ahora buscar nuevas reglas extras que se ajusten a tu servidor, desde el siguiente link podrás encontrar más reglas: Got Root : mod_security rules

Ahora tenemos que editar el fichero /usr/local/apache/conf/httpd.conf
Insertar CODE, HTML o PHP:
pico /usr/local/apache/conf/httpd.conf

Buscar la línea "mod_setenvif.c"
Insertar CODE, HTML o PHP:
<IfModule mod_setenvif.c>
    BrowserMatch "Mozilla/2" nokeepalive
    BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
    BrowserMatch "RealPlayer 4\.0" force-response-1.0
    BrowserMatch "Java/1\.0" force-response-1.0
    BrowserMatch "JDK/1\.0" force-response-1.0

</IfModule>

Al final de esa configuración, agregar ésta línea:
Insertar CODE, HTML o PHP:
Include "/usr/aux/modsecrules.conf"

Debe quedar algo así:
Insertar CODE, HTML o PHP:
<IfModule mod_setenvif.c>
    BrowserMatch "Mozilla/2" nokeepalive
    BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
    BrowserMatch "RealPlayer 4\.0" force-response-1.0
    BrowserMatch "Java/1\.0" force-response-1.0
    BrowserMatch "JDK/1\.0" force-response-1.0

</IfModule>

Include "/usr/aux/modsecrules.conf"

Guardamos, reiniciamos apache y se guardan los cambios en las plantillas de apache:
Insertar CODE, HTML o PHP:
/etc/init.d/httpd restart
/usr/local/cpanel/bin/apache_conf_distiller --update

Se miran los logs desde /usr/local/apache/logs/audit_log

Finalizamos.
Sugiero usar la versión 1 de apache, ya que se acomoda mejor en cuestión a compatibilidad, usa Apache2 bajo tu propio riesgo.

Para ser exactos, se usó:
CentOS, RHE 3, 4 o 5, Apache 1.3.3.9 compilado desde EasyApache.
 
Arriba