Cómo compilar NGINX para el soporte de ModSecurity en Ubuntu Server 20.04


Jack Wallen lo guía a través del proceso manual de instalación de ModSecurity para NGINX en Ubuntu Server 20.04.

concepto de ciberseguridad

Imagen: iStock / sdecoret

ModSecurity es el firewall de aplicaciones website más utilizado y respetado para servidores net de código abierto. Se puede usar tanto con Apache como con NGINX para brindar protección contra una serie de ataques HTTP (como inyecciones de SQL y secuencias de comandos entre sitios) contra aplicaciones basadas en website como WordPress y Nextcloud. En otras palabras, este módulo debe considerarse un uso obligatorio.

ModSecurity no se puede habilitar con una instancia de NGINX instalada con apt-get, por lo que debe hacerlo manualmente. Quiero guiarlo a través del proceso para agregar esta característica de seguridad a sus servidores world wide web NGINX.

VER: Política de protección contra robo de identidad (TechRepublic Top quality)

Lo que necesitarás

  • Una instancia en ejecución de Ubuntu Server
  • Un usuario con privilegios de sudo

Cómo instalar las dependencias necesarias

Lo primero que hay que hacer es la instalación de las dependencias necesarias. Esto se puede hacer con un solo comando:

sudo apt-get put in -y git establish-crucial libpcre3 libpcre3-dev libssl-dev libtool autoconf apache2-dev libxml2-dev libcurl4-openssl-dev automake pkgconf zlib1g-dev -y

Si ya tiene NGINX instalado (de los repositorios estándar) elimínelo con el comando:

sudo apt-get purge nginx -y

Elimine las dependencias sobrantes con el comando:

sudo apt-get autoremove -y

Una vez que esté completo, podemos pasar a ModSecurity.

Cómo compilar ModSecurity

Tenemos que compilar ModSecurity manualmente. Primero, cambie al directorio src con el comando:

cd /usr/src

A continuación, clone la última versión de ModSecurity con el comando:

git clone -b nginx_refactoring https://github.com/SpiderLabs/ModSecurity.git

Cambie al directorio recién creado con el comando:

cd ModSecurity

Configure ModSecurity usando el script autogen así:

./autogen.sh./configure --empower-standalone-module --disable-mlogc

Cree e instale ModSecurity con los comandos:

make
sudo make put in

Cómo compilar NGINX

Desafortunadamente, no podemos usar la instalación de NGINX que se encuentra en los repositorios estándar porque debe compilarse con el soporte de NGINX. Vuelva al directorio src con el comando:

cd /usr/src

Descargar el última versión de NGINX actualmente es 1.18., pero asegúrese de verificar la última versión y cambiar el comando en consecuencia. El comando para descargar la fuente es:

wget http://nginx.org/down load/nginx-1.18..tar.gz

Extraiga el archivo comprimido con el comando:

tar xvzf nginx-1.18..tar.gz

Cambie al directorio recién creado con el comando:

cd nginx-1.18.

Configure NGINX con soporte ModSecurity con el comando:

​./configure --consumer=www-details --team=www-facts --increase-module=/usr/src/ModSecurity/nginx/modsecurity --with-http_ssl_module

Finalmente, cree e instale NGINX con los comandos:

make
​sudo make install

Cómo configurar NGINX

Ahora tenemos que modificar el archivo de configuración predeterminado de NGINX, para que sepa con qué usuario ejecutar con el comando:

sed -i "s/#user no one/consumer www-facts www-details/" /usr/neighborhood/nginx/conf/nginx.conf

A continuación, necesitamos configurar NGINX para que sepa usar ModSecurity. Abra el archivo de configuración de NGINX con el comando:

sudo nano /usr/neighborhood/nginx/conf/nginx.conf

En ese archivo, reemplace la siguiente sección:

place / 

    root   html

    index  index.html index.htm

Con:

area / 

    ModSecurityEnabled on

    ModSecurityConfig modsec_contains.conf

    root   html

    index  index.html index.htm

Habilite las reglas centrales de OWASP creando un archivo de reglas con el comando:

sudo nano /usr/area/nginx/conf/modsec_contains.conf

En ese archivo, pegue lo siguiente:

incorporate modsecurity.conf
contain owasp-modsecurity-crs/crs-set up.conf
incorporate owasp-modsecurity-crs/guidelines/*.conf

Guarde y cierre el archivo.

Importe los archivos de configuración de ModSecurity necesarios con los dos comandos siguientes:

sudo cp /usr/src/ModSecurity/modsecurity.conf-encouraged /usr/area/nginx/conf/modsecurity.conf
sudo cp /usr/src/ModSecurity/unicode.mapping /usr/local/nginx/conf/

Habilite la opción SecRuleEngine en el archivo modsecurity.conf emitiendo el siguiente comando:

sudo sed -i "s/SecRuleEngine DetectionOnly/SecRuleEngine On/" /usr/local/nginx/conf/modsecurity.conf

Ahora podemos agregar el conjunto de reglas básicas de OWASP ModSecurity emitiendo los siguientes siete comandos:

cd /usr/local/nginx/conf
sudo git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
sudo cd owasp-modsecurity-crs
sudo mv crs-setup.conf.case in point crs-set up.conf
sudo cd procedures
sudo mv Ask for-900-EXCLUSION-Rules-Ahead of-CRS.conf.illustration Ask for-900-EXCLUSION-Guidelines-Right before-CRS.conf
sudo mv Response-999-EXCLUSION-Procedures-After-CRS.conf.case in point Response-999-EXCLUSION-Regulations-Right after-CRS.conf

Cómo crear un archivo de inicio de systemd para NGINX

Para que podamos controlar NGINX, debemos crear un archivo de inicio systemd. Crea el archivo con el comando:

sudo nano /lib/systemd/process/nginx.company

En el archivo, pega lo siguiente:

(Provider)

Sort=forking

ExecStartPre=/usr/nearby/nginx/sbin/nginx -t -c /usr/community/nginx/conf/nginx.conf

ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

ExecReload=/usr/neighborhood/nginx/sbin/nginx -s reload

KillStop=/usr/area/nginx/sbin/nginx -s halt

KillMode=approach

Restart=on-failure

RestartSec=42s

PrivateTmp=genuine

LimitNOFILE=200000

(Install)

WantedBy=multi-consumer.target

Guarde y cierre el archivo.

Inicie NGINX con el comando:

sudo systemctl start off nginx

Habilite el servidor internet para que se inicie en el arranque con el comando:

sudo systemctl enable nginx

Cómo probar ModSecurity

Finalmente podemos probar nuestra configuración de ModSecurity. Para hacer esto usaremos cola para seguir el registro de errores de NGINX con el comando:

sudo tail -f /usr/area/nginx/logs/error.log

Con eso en ejecución, abra un navegador internet y apúntelo a: http: // SERVIDOR /? param = «>

Donde SERVER es la dirección IP o el dominio de su servidor NGINX. De vuelta en el comando de cola, debería ver una serie de errores de permiso denegado (Figura A).

Figura A

modseca.jpg "src =" https://tr3.cbsistatic.com/hub/i/r/2021/02/04/9ef0e93a-d2da-4d26-9a6a-a912eef9b597/resize/770x/64e5d3073b335b4d31fd7a6d28e830jpg15/modseca

El archivo de registro de NGINX nos muestra que ModSecurity está funcionando.

Felicitaciones, ahora tiene ModSecurity ejecutándose con la última versión de NGINX en Ubuntu Server 20.04.

Suscríbase a Cómo hacer que la tecnología funcione en YouTube de TechRepublic para obtener los últimos consejos tecnológicos para profesionales de negocios de Jack Wallen.

Ver también



Enlace a la noticia first