8 Consejos de seguridad servidores Apache
8 Consejos de seguridad que debes seguir para tener tu Apache bien seguro y que no te puedan atacar.
Aprende a mejorar la seguridad en Apache con el uso de modSecuritymodSecurity, un firewall de aplicaciones Web.
Tabla de contenidos
modSecurity es un firewall de aplicaciones Web embebible bajo licencia GNU que se ejecuta como módulo del servidor web Apache, provee protección contra diversos ataques hacia aplicaciones Web y permite monitorizar tráfico HTTP, así como realizar análisis en tiempo real sin necesidad de hacer cambios a la infraestructura existente. modSecurity filtra ataques por XSS, SQL Injection, comportamientos anómalos en protocolos, robots, troyanos, LFI... incorporando además reglas específicas para algunos de los gestores de contenido más populares como Joomla o Wordpress.
Soporta integración con ModProxy por lo que podemos proteger aplicaciones desplegadas en otros servidores gracias a esta integración. Además modSecurity cuenta con una consola de administración que permite recopilar registros de monitorización y alertas en tiempo real así como de opciones automatizadas de mantenimiento, entre otras características.
A continuación vamos a describir el proceso de instalación de modSecurity 2.7 en Debian, en Ubuntu está disponible en los repositorios. Las descargas necesarias podemos realizar desde la web oficial del proyecto http://www.modsecurity.org/
1.- Descargamos las fuentes y descomprimimos:
wget https://www.modsecurity.org/tarball/2.7.5/modsecurity-apache_2.7.5.tar.gz
tar -zxvf modsecurity-apache_2.7.5.tar.gz
2.- Instalamos algunas dependencias necesarias:
apt-get install apache2-threaded-dev libxml2-dev libcurl4-gnutls-dev -y
3- Compilamos e instalamos:
cd modsecurity-apache_2.7.5 ./configure make make install
4.- Cargamos el módulo: Creamos el siguiente fichero
vim /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
5.- Activamos modSecurity: Antes de activar modSecurity debemos activar unique_id
a2enmod unique_id
y activamos modSecurity ahora:
a2enmod mod-security2
6.-Configuramos las reglas: Una vez hemos instalado modSecurity es necesario establecer las reglas que establecerán las condiciones del filtrado de métodos. Descargamos las reglas de filtrado en /etc/apache2:
cd /etc/apache2 apt-get install git git clone https://github.com/SpiderLabs/owasp-modsecurity-crs
Una vez descargado veremos varios directorios además de diversas utilidades. Para una primera aproximación renombraremos modsecurity_crs_10_config.conf.example a modsecurity_crs_10_config.conf:
cp modsecurity_crs_10_config.conf.example modsecurity_crs_10_config.conf
Para finalizar editamos apache2.conf con el siguiente contenido: vim /etc/apache2/apache2.conf
SecRuleEngine On SecRequestBodyAccess On SecResponseBodyAccess Off SecDebugLog /var/log/apache2/modsec_debug.log SecDebugLogLevel 1 SecAuditEngine RelevantOnly SecAuditLogRelevantStatus ^5 SecAuditLogParts ABIFHZ SecAuditLogType Serial SecAuditLog /var/log/apache2/modsec_audit.log SecRequestBodyLimit 131072 SecRequestBodyInMemoryLimit 131072 SecResponseBodyLimit 524288 SecDataDir /tmp/ SecUploadDir /tmp/ SecTmpDir /tmp/ Include owasp-modsecurity-crs/modsecurity_crs_10_config.conf Include owasp-modsecurity-crs/base_rules/*.conf Include owasp-modsecurity-crs/optional_rules/*.conf Include owasp-modsecurity-crs/slr_rules/*.conf
Hay que ser cuidadoso con SecDataDir, SecUploadDir y SecTmpDir ya que las aplicaciones que suban ficheros y usen temporales no van a funcionar. De forma similar, hay que prestar atención a posibles configuraciones de los atributos SecRequestBodyLimit, SecRequestBodyInMemoryLimit, SecResponseBodyLimit que se suelen definir en el archivo apache2.conf. Estas configuraciones nos va determinar las características de subida de archivos a través de nuestras aplicaciones web. Si todo ha ido bien, pronto comenzaremos a ver en nuestro archivo de logs de Apache, decenas por no decir centenares de logs de este tipo:
[client 192.168.1.154] ModSecurity: Access denied with code 403 (phase 2). Pattern match "^[\\\\d.:]+$" at REQUEST_HEADERS:Host. [file "owasp-modsecurity-crsbase_rules/modsecurity_crs_21_protocol_anomalies.conf"] [line "98"] [id "960017"]
Si queremos ampliar el potencial de filtrado de nuestro módulo podemos acudir a http://www.gotroot.com/mod_security+rules y descargarnos libremente sus colecciones de reglas propias. Espero que esta primera introducción a modSecurity les sirva para reforzar la seguridad de sus servidores web Apache, tarea primordial en estos tiempos. Como siempre, gracias por leernos, y le invitamos a dejar un comentario si tiene alguna pregunta.
También te puede interesar
8 Consejos de seguridad que debes seguir para tener tu Apache bien seguro y que no te puedan atacar.
Diferencias entre servidores nginx y apache, conoce cual es el que se adapta mejor a tu proyecto.
Estudia las distintas funcionales que nos ofrece el servidor web Apache 2.4. Aprenderemos su instalación, configuraciones habituales y...