Implementación de Mod Security
Introducción
Completar
¿Que es Mod Security?
Completar
Implementación de Mod Security
Hola a todos, siguiendo con el tema Web Server hoy voy a explicar como instalar y configurar (básicamente) mod_security. Antes que nada voy a explicar que es y para que sirve. Si bien OpenBSD (como todos sabemos ;)) es seguro por defecto no viene con Apache activado, entonces una vez que lo activamos seria bueno tomar algunas medidas de seguridad EXTRAS y nada mejor que instalar mod_security, este modulo lo que hace es securizar tu servidor Web poniéndose delante de el enjaulandolo en un entorno propio para que cuando suframos un ataque se limite solo a ese entorno y no a nuestro sistema entero, una especie de firewall, que inspecciona el tráfico tomando acciones contra el tráfico sospechoso incluído el spam y los intentos de desbordamiento de búfer (acá hay mas información http://www.modsecurity.org/documentation/index.html).
Ahora lo que vamos hacer es algo muy simple. Instalarlo mediante los ports de OpenBSD de la siguiente manera:
# cd /usr/ports/www/mod_security/ # make install clean
Con estos comandos directamente el port instalara el modulo y si se fijan en el debug de la compilación podran ver que también agrego la siguiente linea al httpd.conf de nuestro Apache:
LoadModule security_module /usr/lib/apache/modules/mod_security.so
Pero con eso no basta, ahora lo que tenemos que hacer es abrir nuestro httpd.conf para agregar las reglas del modulo y de esta manera una vez reiniciado Apache dejarlo funcionando.
# nano /var/www/conf/httpd.conf
Deberiamos agregar algo como esto:
<IfModule mod_security.c> # Iniciamos o no el filtrado On o Off SecFilterEngine On # Verifica que la codificacion de la url es valida SecFilterCheckURLEncoding On # Previene ataques de buffer overflow SecFilterForceByteRange 32 126 # Ruta donde guardamos el Audit Log SecAuditLog /var/log/openbsderos/audit_log # Ruta donde guardamos el debug log SecFilterDebugLog /var/log/openbsderos/modsec_debug_log # Nivel del log 0 nada, 1 eventos significativos, 2 info de mensajes, 3 info de mensajes detallado SecFilterDebugLevel 2 # Permite mostrar información erronea de identificación de nuestro servidor (esta es divertida ;)). # Esta regla suele evitar algunas herramientas de scaneo de vulnerabilidades. SecServerSignature "Microsoft-IIS/6.0" # Scaneo de contenido POST de la paginas SecFilterScanPOST On # Filtrar contenido de url con /etc/passwd SecFilter /etc/passwd # Filtrar contenido de url con /bin/sh para ciertos ataques SecFilter /bin/sh # Filtra la ejecucion de binarios en sistemas unix SecFilter "bin/" </IfModule>
Una vez configurado nuestro Apache, solo hace falta reiniciarlo de la siguiente manera (uds pueden hacerlo como quieran, cada uno tiene su método):
# pkill httpd # httpd
Y eso es todo, una vez que inicie Apache tendremos un resguardo extra, espero que lo usen y les sirva como guia para empezar a leer un poco mas sobre el tema, si tienen acotaciones, agregados, reclamos, etc ya saben las vias para contactarnos.
Saludos.