ModSecurity, también conocido como Modsec, es una robusta aplicación de firewall de código abierto para servidores web Apache. Un firewall es una utilidad que protege una red o una aplicación de software del abuso y el acceso no autorizado mediante el filtrado de solicitudes.

Modsec ofrece funciones de seguridad para HTTP (Protocolo de transferencia de hipertexto). Dado que es de uso gratuito, se usa ampliamente para monitorear, registrar y filtrar solicitudes en servidores web Apache.

La utilidad fue un éxito al abordar las vulnerabilidades de seguridad comunes mediante el conjunto de reglas básicas de OWASP ModSecurity.

En esta guía, lo guiaremos a través de los pasos para configurar y proteger su servidor web Apache con ModSecurity en Ubuntu 18.04 VPS.

requisito

  • Un plan VPS que ejecutará el servidor Ubuntu 18.04
  • Un usuario no root que puede realizar tareas sudo

Paso 1: instale el servidor web Apache

En primer lugar, debe instalar Apache si no está instalado en su servidor Ubuntu 18.04. Primero, actualice el índice de paquetes de Ubuntu.

$ sudo apt-get update

Luego instale Apache:

$ sudo apt-get install Apache2

prensa Y. y golpea Ingresar cuando se le solicite que confirme la instalación

Si Apache ya está instalado, debería ver el siguiente mensaje de error:

apache2 is already the newest version

Paso 2: Instale ModSecurity

Una vez que haya instalado Apache, el siguiente paso es instalar ModSecurity. Ejecute el siguiente comando:

$ sudo apt-get install libapache2-mod-security2

Reiniciar Apache

$ sudo service apache2 restart

Puede verificar si el módulo está habilitado ejecutando el siguiente comando:

$ sudo apachectl -M | grep security

Debería obtener el siguiente resultado:

security2_module (shared)

Paso 3: configurar ModSecurity

El motor ModSecurity necesita reglas para funcionar. Las reglas determinan cómo se maneja la comunicación en el servidor web. Dependiendo de la configuración, ModSecurity puede pasar, eliminar, redirigir, ejecutar un script o incluso mostrar un código de estado durante una sesión.

Hay un archivo de configuración estándar /etc/modsecurity/modsecurity.conf-recommended que deberías copiar a /etc/modsecurity/modsecurity.conf para activar y configurar ModSecurity. Para hacer esto, ejecute el siguiente comando:

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

Luego edite el archivo copiado con un editor nano:

$ sudo nano /etc/modsecurity/modsecurity.conf

Cambiar el valor de SecRuleEngine de DetectionOnly a uno.

$ SecRuleEngine = on

Presione>CTRL + X. luego Y. y Ingresar para guardar el archivo.

Reinicie Apache para que los cambios surtan efecto.

$ sudo systemctl restart apache2

En ModSecurity hay reglas estándar bajo / usr / share / modsecurity-crs Directorio. Sin embargo, siempre se recomienda descargar las reglas de GitHub:

Antes de hacer esto, cambie el nombre del directorio de reglas predeterminado:

$ sudo mv /usr/share/modsecurity-crs /usr/share/modsecurity-crs.bk

Luego, descargue un nuevo conjunto de reglas de GitHub usando el siguiente comando:

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

Copie el archivo de configuración de muestra de las reglas descargadas con el siguiente comando:

$ sudo cp /usr/share/modsecurity-crs/crs-setup.conf.example /usr/share/modsecurity-crs/crs-setup.conf

Para que estas reglas funcionen en Apache, debe editarlas /etc/apache2/mods-enabled/security2.conf Archivo con un editor nano

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

Al final, agregue las siguientes dos líneas

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

Guarde el archivo presionando CTRL + X, Y. y Ingresar

Reinicie Apache:

$ sudo systemctl restart apache2

Paso 4: Probar ModSecurity

Ahora puede intentar ejecutar scripts maliciosos en un navegador y ver si se activan las reglas de ModSecurity. Ingrese la siguiente URL en un navegador. Recuerde reemplazar la dirección IP con la dirección IP pública de su servidor o nombre de dominio

http://127.0.0.1/index.html?exec=/bin/bash

Debería recibir un mensaje de error prohibido:

Prohibido No tiene autorización para acceder a este servidor. Servidor Apache / 2.4.29 (Ubuntu) en 127.0.0.1 puerto 80

Conclusión

Eso es. Su servidor web Apache ahora está protegido contra atacantes malintencionados. Tenga en cuenta que ModSecurity protege contra muchos ataques conocidos, incluida la inyección SQL. El módulo es un gran arsenal cuando se trata de proteger su servidor web de los piratas informáticos.