Cómo instalar ModSecurity para Apache en Ubuntu 18.04 LTS

27 feb 2021 3 min di lettura
Cómo instalar ModSecurity para Apache en Ubuntu 18.04 LTS
Indice dei contenuti

Introducción

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

Mod Security es uno de los módulos Apache líderes que proporciona detección y prevención de intrusiones para servidores web. Mod_security se utiliza para proteger el servidor web de varios tipos de ataques como XSS, bots, inyección de SQL, troyanos, secuestro de sesiones y mucho más.

En este artículo, veremos cómo instalar y configurar mod_security en el servidor Ubuntu 18.04 LTS y ejecutar algunas pruebas.

Si su intención es instalar ModSecurity en un servidor remoto, continúe leyendo; de lo contrario, si desea instalar ModSecurity en su computadora local, omita el primer párrafo "Conexión al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará la contraseña para la autenticación.

Para conectarse al servidor como root, escriba este comando:

ssh root@IP_DEL_SERVER

A continuación, se le pedirá que ingrese la contraseña del usuario root.

Si no usa el usuario root, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie el primer parámetro:

ssh VOSTRO_UTENTE@IP_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

Ahora está conectado a su servidor, está listo para comenzar la instalación de ModSecurity.

Instalar ModSecurity

Puede instalar ModSecurity para Apache usando el repositorio oficial de Ubuntu con apt.

Actualice la lista de paquetes:

sudo apt update

Instale Apache2 y algunos paquetes necesarios:

sudo apt-get install apache2 mysql-server php-mysql php libapache2-mod-php

Inicie Apache2:

sudo systemctl start apache2

Habilite Apache2 automáticamente al iniciar el sistema:

sudo systemctl enable apache2

Instalar Mod_Security

Para instalar Mod_Security da este comando desde la terminal:

sudo apt-get install libapache2-mod-security2

Verifique el estado de mod_security:

apachectl -M | grep security

Debería recibir un mensaje de salida similar al siguiente:


security2_module (shared)

Configurar Mod_Security

Copie y cambie el nombre del archivo de configuración predeterminado /etc/modsecurity/modsecurity.conf-recommended a /etc/modsecurity/modsecurity.conf para habilitar y configurar ModSecurity con el siguiente comando:

mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

Abra el siguiente archivo:

nano /etc/modsecurity/modsecurity.conf

Busque y cambie la siguiente línea así:


SecRuleEngine On

Reinicie Apache2:

sudo systemctl restart apache2

Por defecto, mod_security viene con el conjunto básico de reglas (reglas de seguridad) ubicadas en el directorio /usr /share /modsecurity-crs. Pero se recomienda descargar el CRS mod_security del repositorio de GitHub.

Haga una copia de seguridad de las reglas predeterminadas:

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

Descarga las nuevas reglas de Github:

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

Mover carpeta:

cd /usr/share/modsecurity-crs

Cambie el nombre del archivo de muestra:

mv crs-setup.conf.example crs-setup.conf

Abra el siguiente archivo:

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

Cámbielo de la siguiente manera:


 <IfModule security2_module>
 SecDataDir /var/cache/modsecurity
 IncludeOptional /etc/modsecurity/*.conf
 IncludeOptional "/usr/share/modsecurity-crs/*.conf
 IncludeOptional "/usr/share/modsecurity-crs/rules/*.conf
 </IfModule>

Reinicie Apache2:

sudo systemctl restart apache2

Prueba Mod_Security

Ahora probaremos mod_security enviando algunas solicitudes maliciosas al servidor web Apache y comprobaremos si las solicitudes están bloqueadas o no.

Ingrese la URL debajo de un navegador. Recuerde reemplazar la dirección IP con la dirección IP pública de su servidor o nombre de dominio:


http://TUO_IP_O_DOMINIO/?q="><script>alert(1)</script>

O desde la terminal:

curl 'http://TUO_IP_O_DOMINIO/?q="><script>alert(1)</script>'

Debería recibir un mensaje de salida similar al siguiente:


<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <html><head>
 <title>403 Forbidden</title>
 </head><body>
 <h1>Forbidden</h1>
 <p>You don't have permission to access /on this server.<br />
 </p>
 <hr>
 <address>Apache/2.4.29 (Ubuntu) Server at TUO_IP Port 80</address>
 </body></html>

Pruebe también el siguiente comando:


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

O desde la terminal:

curl 'http://TUO_IP_O_DOMINIO/index.html?exec=/bin/bash'

Debería recibir un mensaje de salida similar al siguiente:


<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <html><head>
 <title>403 Forbidden</title>
 </head><body>
 <h1>Forbidden</h1>
 <p>You don't have permission to access /on this server.<br />
 </p>
 <hr>
 <address>Apache/2.4.29 (Ubuntu) Server at TUO_IP Port 80</address>
 </body></html>

La instalación y configuración de Mod Security en Ubuntu 18.04 LTS ha finalizado.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.