martes, 18 de diciembre de 2012

Instalando Mod-security en Apache2

El ModSecurity (http://www.modsecurity.org) es un Firewall de aplicación que es ejecutado con un modulo del servidor Web Apache en este articulo, se mostrara como instalar el ModSecurity 2 . 6 . 3 en el Debian Squeeze. 


Instalado APACHE2 con PHP5

El simbolo '#' significa que el comando debe ser ejecutado como root. 

Primero, instalaremos los paquetes básicos del Apache2 y PHP5, con el siguiente comando: 


# aptitude install php5 libapache2-mod-php5 

Reiniciar el servidor apache2: 


# /etc/init.d/apache2 restart 

- Verificación 

Para verificar la instalación del soporte PHP, basta con crear un sitio web que muestra las características de instalación PHP. 

En este caso, vamos a crear un sitio web en "/var/www/phpinfo.php": 

<?php 
    phpinfo
(); ?> 
A continuación, intentamos acceder a la página, utilizando un browser y insertando la dirección: http: // nuestradireccionweb / phpinfo . php 

También podemos hacer la prueba de acceso seguro vía protocolo HTTPS de la misma manera utilizando la dirección: https://nuestradireccionweb/phpinfo.php 

Una vez probado el funcionamiento, deberá ser apagado la pagina de test, dado que las informaciones contenidas en ella, pueden comprometer la seguridad del servidor: 

# rm /var/www/phpinfo.php 

Instalando el ModSecurity 

Primero es necesario descargar la ultima versión. Esta documentación fue realizada con la versión '2 . 6 . 3 '. 

Usted puede verificar la última versión en el sitio web: http://www.modsecurity.org/download/

# cd /usr/src/ 
# wget http://ufpr.dl.sourceforge.net/project/mod-security/modsecurity-apache/2.6.3/modsecurity-apache_2.6.3.tar.gz 
# tar zxvf modsecurity-apache_2.6.3.tar.gz  


Nosotros instalaremos un par de herramientas y bibliotecas que vamos a necesitar... 

# apt-get install libxml2-dev liblua5.1-0 lua5.1 apache2-threaded-dev build-essential libxml2 libxml2-dev libcurl3  

[b]- Compilamos ModSecurity[/b] 

Antes, verificamos con el comando: 
[code] 
# apt-get install make # Para ver si el comando MAKE está instalado. 

Inicie: 


# cd modsecurity-apache_2.6.3 
# ./configure 
# make 
# make install 


Ahora debemos crear un archivo "/etc/apache2/mods-available/mod_security2.load", con el siguiente contenido: 

LoadFile /usr/lib/libxml2.so 
LoadFile /usr/lib/liblua5.1.so.0 
LoadModule security2_module /usr/lib/apache2/modules/mod_security2.so 


Con esto, habilitaremos los siguientes módulos que utilizaremos. 

# a2enmod mod_security2 
# a2enmod unique_id 


Configurando el Mod-Security


Configuramos con el mínimo necesario, para poder correr el Mod-Security: 

# cp modsecurity.conf-recommended /etc/apache2/conf.d/modsecurity.conf 

Ahora descargamos e instalamos el paquete de reglas mas actuales 
 conjunto de reglas por defecto



# cd /etc/apache2/ 
# wget -O modsecurity-crs.tar.gz http://ufpr.dl.sourceforge.net/project/mod-security/modsecurity-crs/0-CURRENT/modsecurity-crs_2.2.3.tar.gz 
# tar xzvf modsecurity-crs_2.2.3.tar.gz 
# mv modsecurity-crs_2.2.3 /etc/apache2/modsecurity_crs 
# rm -fr modsecurity-crs.tar.gz 
# chown root.root /etc/apache2/modsecurity_crs/ -R 
# cd /etc/apache2/modsecurity_crs 
# mv modsecurity_crs_10_config.conf.example modsecurity_crs_10_config.conf 

Ahora, ajustamos las configuraciones del Mod-Security, para apuntar los archivos logs donde queremos, y incluimos el paquete de reglas que acabamos de descargar. 

Para hacer eso editamos el archivo de configuración: 

# nano /etc/apache2/conf.d/modsecurity.conf 


Buscamos las siguientes lineas: 

# SecDebugLog /opt/modsecu 
# SecDebugLogLevel 3 


Descomentamos los mismos y dejamos de la siguiente manera: 

SecDebugLog /var/log/apache2/modsec_debug.log 
SecDebugLogLevel 3 


Luego, buscamos esas lineas; 

# SecAuditLogType Serial 
# SecAuditLog /var/log/modsec_audit.log 


Descomentamos ellas y dejamos de la siguiente manera: 

SecAuditLogType Serial 
SecAuditLog /var/log/apache2/modsec_audit.log 


En el final del archivo, agregamos las siguientes lineas, que serán utilizados para cargar todos los paquetes de reglas que descargamos: 

Include /etc/apache2/modsecurity_crs/*.conf 
Include /etc/apache2/modsecurity_crs/base_rules/*.conf 


Guardamos el archivo y salimos. 

A continuación, prepararemos los Logs que vamos a usar y vamos a definir los permisos necesarios: 

# touch /var/log/apache2/modsec_debug.log 
# touch /var/log/apache2/modsec_audit.log 
# chown root.root /var/log/apache2/modsec_* 
# chmod 660 /var/log/apache2/modsec_* 

Verificando la configuración


Ahora podemos confirmar el Apache para verificar si esta todo OK en la configuración 

Ejecutamos el siguiente comando en la termina, para ver si esta todo OK: 

# apache2ctl configtest 


Si esta todo OK, vamos a ver: 

    Syntax OK  

* NO CONTINUÉ si no ve el mensaje de arriba! 

Ahora, si todo esta OK, podemos reiniciar el Apache2: 

# /etc/init.d/apache2 restart 

Despues de reiniciar, podemos mirar para el Log de errores del Apache para ver si falto cargar el modulo ModSecurity: 

# tail /var/log/apache2/error.log 

Deberíamos de ver algo similar a: 

    [Wed Sep 15 19:15:59 2012] [notice] ModSecurity for Apache/2.6.3 (http://www.modsecurity.org/) configured
    [Wed Sep 15 19:16:00 2012] [notice] ModSecurity: APR compiled version="1.4.2"; loaded version="1.4.2"
    [Wed Sep 15 19:16:00 2012] [notice] ModSecurity: PCRE compiled version="8.2"; loaded version="8.02 2010-03-19" 
    [Wed Sep 15 19:16:00 2012] [notice] ModSecurity: LIBXML compiled version="2.7.8" 
    [Wed Sep 15 19:16:01 2012] [notice] Apache/2.2.9 (Debian) PHP/5.3.3-7+squeeze3 with Suhosin-Patch configured -- resuming normal operations  

Y ahi, ya tenemos en funcionamiento el ModSecurity en nuestro Apache!

No hay comentarios:

Publicar un comentario