GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo implementar Modsecurity con Nginx en Ubuntu 20.04 LTS

ModSecurity es un firewall de aplicaciones web gratuito y de código abierto compatible con diferentes servidores web como Apache, IIS y Nginx. Se implementa como una capa de seguridad externa para proteger los servidores web.

En este tutorial, aprenderá cómo instalar el firewall ModSecurity con Nginx preinstalado. Hemos utilizado el servidor Ubuntu 20.04 para demostrar el proceso.

Requisitos previos

Servidor Ubuntu 20.04 LTS

Nginx instalado en el servidor Ubuntu

Guía de instalación

Si no tiene Nginx instalado en su servidor, siga esta guía para cumplir con el requisito de instalación de Modsecurity:

https://linuxways.net/ubuntu/how-to-install-nginx-on-ubuntu-20-04-lts-using-source-code/

Ahora que ha instalado Nginx, comencemos con la instalación de ModSecurity.

Paso 1:Instalar libmodsecurity3

En primer lugar, instale git en su máquina para que pueda clonar el repositorio git de ModSecurity. Podemos hacerlo ejecutando este comando:

sudo apt install git -y

Ahora que git está instalado, clone el repositorio ejecutando este comando:

git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity /usr/local/src/ModSecurity/

Paso 2:Vaya al directorio de Modsecurity

Ahora que ha clonado el repositorio git de modsecurity, vaya al directorio de modsecurity siguiendo la ruta a continuación:

cd /usr/local/src/ModSecurity/

Paso 3:Instale las dependencias de libmodsecurity3

Ahora que estamos dentro del directorio de Modsecurity, instalaremos las dependencias de libmodsecurity3 en este paso. Ejecute este comando:

sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen -y

Paso 4:Instalar módulos Git

Ahora, instala los submódulos de git con la ayuda de este comando:

git submodule init

A continuación, actualizaremos los submódulos:

git submodule update

Paso 5:Cree el entorno de modsecurity

Es hora de construir el entorno de modsecurity. Para hacer eso, ejecute el siguiente comando:

./build.sh

Ahora configura usando este comando:

./configure

Después de esto, obtendrá este error:

Está bien ignorar esto y seguir adelante.

Paso 6:Compile el código fuente de modsecurity

Ahora compilaremos el entorno para libmodsecurity3 con este comando:

make

Si desea aumentar la velocidad de compilación, puede especificar -j . Tengo 4 CPU y voy a usar las 4 para compilar como se muestra a continuación:

make -j 4

A continuación, ejecutaremos el comando de instalación:

sudo make install

La instalación se realiza en el /usr/local/modsecurity/ .

Step 7: Install modsecurity-nginx connector

En este paso, instalaremos el conector Modsecurity-nginx. Es el punto de conexión y comunicación entre Nginx y ModSecurity.

En primer lugar, necesitamos clonar el repositorio del conector. Hágalo ejecutando este comando:

sudo git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git
/usr/local/src/ModSecurity-nginx/

Paso 8:Instale las dependencias de modsecurity-nginx

Primero, vaya al directorio fuente de Nginx así:

cd /usr/local/src/nginx/nginx-1.21.1

Asegúrese de reemplazar la versión de Nginx en el comando con su versión actual de Nginx; de lo contrario, obtendrá un error.

Para instalar las dependencias necesarias, ejecute este comando:

sudo apt build-dep nginx && sudo apt install uuid-dev -y

A continuación, compilaremos el módulo del conector Modsecurity-nginx con el indicador –with-compat ejecutando este comando:

sudo ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx

Ahora ejecute este comando para crear los módulos dinámicos:

sudo make modules

Ahora, copie el módulo dinámico que acaba de crear en objs/ngx_http_modsecurity_module.so a /usr/share/nginx/modules con la ayuda de este comando:

sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/

Paso 9:habilite Modsecurity en el archivo de configuración de Nginx

Para habilitar Modsecurity en Nginx, primero debe especificar el módulo de carga y la ruta a su módulo de modsecurity en la configuración.

Abra el archivo de configuración de Nginx con el editor nano de esta manera:

sudo nano /etc/nginx/nginx.conf

En el archivo, agregue esta línea en la parte superior:

load_module modules/ngx_http_modsecurity_module.so;

En la sección HTTP {}, agregue las siguientes líneas de código:

modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/modsec-config.conf;

Paso 10:Configure el directorio y los archivos para modsecurity

Cree un directorio con el nombre modsec. La ruta del directorio se menciona en el comando:

sudo mkdir /etc/nginx/modsec/

Necesitará este directorio en el futuro para almacenar reglas y archivos de configuración.

Ahora, copie el archivo de configuración de Modsecurity de muestra del directorio git clonado con este comando:

sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf

Ahora abra el archivo de configuración de modsecurity:

sudo nano /etc/nginx/modsec/modsecurity.conf

Localice la directiva SecRuleEngine en el archivo de la línea 7 y cámbiela a DetectionOnly así:

secruleSolo detección de motor

Para habilitar Modsecurity, busca cambiar la siguiente directiva a On así:

secRuleEngine on

Ahora busque la siguiente directiva en la línea 224:

secAuditLogParts ABIJDEFHZ

Cámbialo por:

secAuditLogParts ABCDEFHJKZ

Ahora cree el archivo modsec-config.conf. Aquí agregará modsecurity.conf y otras reglas para modsecurity:

sudo nano /etc/nginx/modsec/modsec-config.conf

Dentro del archivo que acaba de crear, agregue esta línea:

Include /etc/nginx/modsec/modsecurity.conf

Guarde el archivo y salga.

Paso 11:Copie el archivo unicode.mapping

Finalmente, copie el archivo unicode.mapping de Modsecurity así:

sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/

Paso 12:Comprobar la configuración de Nginx

Antes de reiniciar Nginx, compruebe si la configuración está bien ejecutando este comando:

sudo nginx -t

Si obtiene el siguiente resultado, está listo para comenzar:

Paso 13:Recargar Nginx

Ahora reinicie Nginx con este comando:

sudo systemctl restart nginx

En esta guía, vimos cómo podemos instalar Modsecurity en un servidor ubuntu que ya tiene Nginx preinstalado. También vimos cómo configurar ModSecurity y Nginx para conectarlos con la ayuda de algunos comandos fáciles de seguir.


Ubuntu
  1. Cómo instalar Seafile con Nginx en Ubuntu 20.04 LTS

  2. Cómo instalar MediaWiki con Nginx en Ubuntu 16.04

  3. Cómo instalar Seafile con Nginx en Ubuntu 18.04 LTS

  4. Cómo instalar Magento con Nginx en Ubuntu 15.10

  5. Implemente Modsecurity con Nginx en Ubuntu 20.04 LTS

Cómo instalar Nginx con ModSecurity en Ubuntu 15.04

Cómo instalar phpMyAdmin con Nginx (LEMP) en Ubuntu 18.04 LTS

Cómo instalar Nginx con el módulo Ngx_Pagespeed en Ubuntu 16.04 LTS

Cómo instalar Joomla con Nginx en Ubuntu 18.04 LTS

Cómo instalar phpMyAdmin con Nginx en Ubuntu 18.04 LTS

Cómo instalar phpMyAdmin con Nginx en Ubuntu 20.04 LTS