GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Implemente 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.

Aquí en LinuxAPT, veremos cómo instalar el cortafuegos ModSecurity con Nginx preinstalado en el servidor Ubuntu 20.04.


Pasos para implementar Modsecurity con Nginx en Ubuntu 20

1. Instala Nginx en el sistema

Si no tiene Nginx instalado en su servidor, siga esta guía para cumplir con el requisito de instalación de Modsecurity:https://linuxapt.com/blog/1276-install-nginx-on-ubuntu-20-04-lts-using- código fuente


2. Instale libmodsecurity3

Ahora, 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/


3. Vaya al directorio 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/


4. Instale las dependencias 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


5. 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


6. Cree el entorno 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:

fatal: No names found, cannot describe anything.


7. 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 /usr/local/modsecurity/.


8. Instale el conector modsecurity-nginx

Aquí, 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/


9. 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/


10. 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;


11. Configurar directorio y 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í:

secruleEngine DetectionOnly

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.


12. 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/


13. Comprueba la configuración de Nginx

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

$ sudo nginx -t


14. Recargar Nginx

Ahora reinicie Nginx con este comando:

$ sudo systemctl restart nginx



Ubuntu
  1. Cómo instalar Nextcloud con Nginx en Ubuntu 18.04 LTS

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

  3. Cómo instalar Varnish Reverse Proxy con Nginx en Ubuntu 16.04 LTS

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

  5. Cómo implementar Modsecurity con Nginx en Ubuntu 20.04 LTS

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

¿Cómo implementar la aplicación Laravel con Nginx en Ubuntu?