GNU/Linux >> Tutoriales Linux >  >> Linux

Protección de su servidor web Apache con Mod Security

ModSecurity, también conocido como Modsec, es un firewall de aplicaciones web gratuito y de código abierto para el servidor web Apache. ModSecurity es un módulo de Apache que lo ayuda a proteger su servidor web de diferentes tipos de ataques, incluidos SQL injection, XSS, troyanos, bots, captura/secuestro de sesión y muchos más. ModSecurity proporciona poderosos conjuntos de reglas con monitoreo web en tiempo real, registro y control de acceso.

En este tutorial, le mostraremos cómo instalar y configurar Mod Security con Apache en Ubuntu 18.04.

Requisitos

  • Un Ubuntu 18.04 VPS nuevo en Atlantic.Net Cloud Platform.
  • Una dirección IP estática configurada en su servidor.

Paso 1:crear un servidor en la nube de Atlantic.Net

Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Ubuntu 18.04 como sistema operativo con al menos 2 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.

Una vez que haya iniciado sesión en su servidor Ubuntu 18.04, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.

apt-get update -y

Paso 2:instalar la pila LAMP

Primero, deberá instalar LAMP Stack en su servidor. Puede instalarlo ejecutando el siguiente comando:

apt-get install apache2 mariadb-server php7.2-mysql php7.2 libapache2-mod-php7.2 unzip git -y

Después de instalar LAMP, inicie el servicio Apache y habilítelo para que se inicie después de reiniciar el sistema con el siguiente comando:

systemctl start apache2
systemctl enable apache2

En este punto, el servidor web Apache está instalado y ejecutándose en su servidor.

Paso 3:instalar ModSecurity

apt-get install libapache2-mod-security2 -y

Una vez completada la instalación, reinicie el servicio Apache para aplicar los cambios.

systemctl restart apache2

A continuación, también puede comprobar si el módulo se ha cargado o no ejecutando el siguiente comando:

apachectl -M | grep security

Deberías obtener el siguiente resultado:

security2_module (shared)

Paso 4:configurar ModSecurity

No hay reglas de seguridad configuradas de forma predeterminada, por lo que primero deberá habilitarlas. Para hacerlo, cambie el nombre del archivo de configuración predeterminado de ModSecurity /etc/modsecurity/modsecurity.conf-recommended a /etc/modsecurity/modsecurity.conf.

cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

A continuación, edite el archivo con su editor de texto preferido:

nano /etc/modsecurity/modsecurity.conf

Busque la siguiente línea:

SecRuleEngine DetectionOnly

Reemplácelo con lo siguiente:

SecRuleEngine On

Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio Apache para que los cambios surtan efecto.

systemctl restart apache2

Paso 5:descargue y configure la regla principal de ModSecurity

El conjunto de reglas predeterminado de ModSecurity está disponible en el directorio /usr/share/modsecurity-crs, pero se recomienda descargar un nuevo conjunto de reglas desde GitHub.

Primero, elimine las reglas antiguas con el siguiente comando:

rm -rf /usr/share/modsecurity-crs

A continuación, descargue el último conjunto de reglas con el siguiente comando:

git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git /usr/share/modsecurity-crs

A continuación, deberá habilitar este conjunto de reglas en la configuración de Apache. Puede habilitarlo editando el archivo /etc/apache2/mods-enabled/security2.conf:

nano /etc/apache2/mods-enabled/security2.conf

Agregue las siguientes líneas arriba de la línea “”

     IncludeOptional "/usr/share/modsecurity-crs/*.conf
     IncludeOptional "/usr/share/modsecurity-crs/rules/*.conf

Guarde y cierre el archivo. Luego, reinicie el servicio de Apache y habilite el módulo de encabezado de Apache para implementar los cambios.

a2enmod headers
systemctl restart apache2

En este punto, ModSecurity está configurado para funcionar con el servidor web Apache.

Paso 6:probar ModSecurity

Después de configurar ModSecurity, puede intentar ejecutar scripts maliciosos en un navegador web y verificar si se activarán las reglas de ModSecurity.

Abra su navegador web y escriba la URL http://your-server-ip/index.html?exec=/bin/bash . Debería recibir un mensaje de error prohibido en la siguiente página:

Para probar las reglas de ModSecurity para protegerse contra un ataque XSS simulado, acceda a la URL http://your-server-ip/?q=”> desde su navegador web. Debería ver la siguiente pantalla:

Para probar las reglas de ModSecurity con los análisis de Nessus, use un comando curl con los escáneres de Nessus para enviar solicitudes HTTP al servidor Apache como se muestra a continuación:

curl -i http://your-server-ip -A Nessus

Debería obtener una respuesta 403 Prohibido porque ModSecurity ha identificado el agente de usuario como un análisis de Nessus:

HTTP/1.1 403 Forbidden
Date: Sat, 21 Dec 2019 04:17:24 GMT
Server: Apache/2.4.29 (Ubuntu)
Content-Length: 278
Content-Type: text/html; charset=iso-8859-1

Paso 7:excluir un dominio específico de ModSecurity

En algunos casos, debe excluir un dominio específico de la protección de ModSecurity. Para deshabilitar ModSecurity para un dominio específico, abra el archivo de configuración de host virtual de Apache para un dominio específico:

nano /etc/apache2/site-enabled/your-domain.conf

Agregue las siguientes líneas dentro del bloque :

<IfModule security2_module>
    SecRuleEngine Off
</IfModule>

Guarde y cierre el archivo. Luego, reinicie el servicio Apache para aplicar los cambios.

systemctl restart apache2

Conclusión

Hemos revisado cómo instalar y configurar ModSecurity para proteger su servidor web Apache de ataques maliciosos. Para obtener más información, visite la documentación de ModSecurity en ModSecurity.


Linux
  1. Cómo configurar un servidor web Apache

  2. Escanee su seguridad Linux con Lynis

  3. 7 pasos para asegurar su servidor Linux

  4. Cómo configurar varios sitios web con el servidor web Apache

  5. Ajuste del Keepalive del servidor web Apache

¿Qué es Apache? Una descripción detallada del servidor web Apache

Vulnerabilidad HTTPOXY:cómo proteger y probar su servidor web

Protección de su servidor de correo administrado ISPConfig 3 con un certificado Lets Encrypt SSL válido

Proteja su servidor web Apache Mejores prácticas

Cómo:asegurar su servidor Ubuntu o Debian con IPTables

Cómo comparar el rendimiento del servidor web con Apache Bench