Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Nginx y Seguridad Última actualización: 25 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

El servidor web Nginx se utiliza en más del 30% de los sitios web de todo el mundo y sigue creciendo.

Teniendo en cuenta el aumento de las amenazas web en línea, uno de los retos para el ingeniero web es conocer bien el endurecimiento y la seguridad de Nginx.

nginx-market-share

Nginx es bien conocido por su rendimiento y ligereza como servidor web/proxy y se utiliza en muchos de los sitios más concurridos.

  • Pinterest.com
  • Reddit.com
  • Wordpress.com
  • Stackoverflow.com
  • Mail.ru

Si aloja sus aplicaciones web en Nginx y le preocupa la seguridad, entonces una de las primeras cosas que le gustaría implementar es un cortafuegos de aplicaciones web (WAF).

Mod Security es un WAF de código abierto de Trustwave SpiderLabs y estuvo disponible para Nginx en 2012.

En esta guía, le explicaré cómo descargar, instalar y configurar Mod Security con Nginx.

La siguiente demostración se realiza en CentOS alojado con DigitalOcean.

Si usted es nuevo en Nginx entonces le recomendaría tomar este curso fundamental.

Descargar Nginx y ModSecurity

Puede descargar el nginx directamente en su servidor o en su PC local y luego transferirlo.

  • Descargue la última versión desde el siguiente enlace

http://nginx.org/en/download.html

  • Si está descargando directamente en el servidor entonces puede usar wget como abajo
wget http://nginx.org/download/nginx-1.9.15.tar.gz
  • Extráigalos utilizando el comando gunzip
gunzip -c nginx-1.9.15.tar.gz | tar xvf -
  • Verá la nueva carpeta creada
drwxr-xr-x 8 1001 1001 4096 Apr 19 12:02 nginx-1.9.15
  • Descargue la última versión de Mod Security desde el siguiente enlace

https://github.com/SpiderLabs/ModSecurity

  • Puede utilizar los siguientes comandos desde el servidor directamente
wget https://www.modsecurity.org/tarball/2.9.1/modsecurity-2.9.1.tar.gz
gunzip -c modsecurity-2.9.1.tar.gz | tar xvf -

Vamos a instalarlos

Instalar Nginx con Mod Security

Es importante compilar Nginx y el código fuente de mod security.

  • Inicie sesión en un servidor y asegúrese de que tiene permisos de root.

Nota: si lo está haciendo en un servidor nuevo puede que necesite instalar las siguientes librerías.

yum install gcc make automake autoconf libtool pcre pcre-devel libxml2 libxml2-devel curl curl-devel httpd-devel

En primer lugar, compilemos mod security. Vaya a la carpeta modsecurity-2.9.1 y utilice los siguientes comandos.

./configure --enable-standalone-module
make

A continuación, instale Nginx con mod security

./configure --add-module=../modsecurity-2.9.1/nginx/modsecurity
make
make install

Esto concluye que Nginx está instalado con Mod Security y es hora de configurarlo.

Configurar Mod Security con Nginx

Copie el archivo modsecurity.conf-recomendado & unicode.mapping de la carpeta extraída del código fuente de ModSecurity descargado arriba a la carpeta conf de nginx. También puede utilizar el comando find

find / -name modsecurity.conf-recommended
find / -name unicode.mapping
[root@GeekFlare-Lab conf]# cp /opt/nginx/binary/modsecurity-2.9.1/modsecurity.conf-recomendado /usr/local/nginx/conf/
[root@GeekFlare-Lab conf]# cp /opt/nginx/binary/modsecurity-2.9.1/ unicode.mapping /usr/local/nginx/conf/
[root@GeekFlare-Lab conf]#

Cambiemos el nombre de modsecurity .conf-recomendado a modsecurity.conf

mv modsecurity.conf-recomendado modsecurity.conf
  • Haga una copia de seguridad del archivo nginx.conf
  • Abra el archivo nginx.conf y añada lo siguiente bajo la directiva “location /
ModSecurityEnabled on;
ModSecurityConfig modsecurity.conf;

Así que debería aparecer así

location / {
ModSecurityEnabled on;
ModSecurityConfig modsecurity.conf;
}

Ahora, Mod Security está integrado con Nginx. Reinicie el Nginx para asegurarse de que aparece sin ningún error.

Verifiquemos..

Hay dos métodos posibles para confirmar que Nginx está compilado con Mod Security.

Primero..

Liste el módulo compilado usando -V con el archivo ejecutable de nginx.

[root@GeekFlare-Lab sbin]# ./nginx -V
versión de nginx: nginx/1.9.15
construido por gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
configurar argumentos: --add-module=../modsecurity-2.9.1/nginx/modsecurity
[root@GeekFlare-Lab sbin]#

Segundo..

Vaya a la carpeta logs y vea el archivo de error, debería ver lo siguiente

2016/05/21 21:54:51 [notice] 25352#0: ModSecurity para nginx (STABLE)/2.9.1 (http://www.modsecurity.org/) configurado.
2016/05/21 21:54:51 [notice] 25352#0: ModSecurity: APR compilado version="1.3.9"; cargado version="1.3.9"
2016/05/21 21:54:51 [notice] 25352#0: ModSecurity: PCRE compilado version="7.8 "; cargado version="7.8 2008-09-05"
2016/05/21 21:54:51 [notice ] 25352#0: ModSecurity: LIBXML compilado version="2.7.6"

Esto concluye que ha configurado correctamente ModSecurity con Nginx.

Por defecto la configuración está sólo en modo detectar lo que significa que no ejecutará ninguna acción y protegerá sus aplicaciones web.

En mi próximo artículo, le explicaré cómo configurar el conjunto de reglas OWASP y activar Mod Security para protegerse de las vulnerabilidades de seguridad web.

  • Chandan Kumar
    Autor
    Chandan Kumar es el fundador de Geekflare. Ha ayudado a millones de personas a destacar en el ámbito digital. Apasionado de la tecnología, su misión es explorar el mundo y ampliar el crecimiento de profesionales y empresas.
Gracias a nuestros patrocinadores
Más lecturas sobre Nginx
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder