Cómo limitar el tamaño de carga de archivos en NGINX para mitigar los ataques DoS


Si tiene un sitio NGINX que debe permitir a los usuarios cargar archivos, pruebe esta configuración para ayudar a prevenir posibles ataques de denegación de servicio.

nginxhero.jpg

Imagen: Jack Wallen

Fuera de la caja, NGINX establece un límite de 1 MB para la carga de archivos. Para algunas plataformas, eso podría ser considerablemente demasiado bajo, especialmente para sitios que permiten a los usuarios cargar elementos como imágenes y videos. Sin embargo, si abre las compuertas demasiado, corre el riesgo de que nada bueno lo golpee con ataques de denegación de servicio (DoS). Ciertamente no quieres eso.

Pero, ¿qué puede hacer cuando necesita permitir que los usuarios carguen más de un MB en su sitio NGINX? Lo controlas con la directiva customer_max_human body_size. Déjame enseñarte como.

Lo que necesitarás

Para que esto funcione, necesitará NGINX instalado y configurado para ejecutar su sitio web. También necesitará un usuario con privilegios de sudo. Haré una demostración en Ubuntu Server 18.04, pero este proceso debería funcionar en cualquier plataforma que admita NGINX. Con los que están listos, configuremos.

VER: Cómo convertirse en administrador de pink: una hoja de trucos (TechRepublic)

Cómo configurar nginx.conf

Lo primero que haremos es cambiar el límite de carga a 100 MB en el archivo nginx.conf. Abra el archivo con el comando:

sudo nano /etc/nginx/nginx.conf

Busque la sección http y agregue la siguiente línea (Figura A):

shopper_max_overall body_dimension 100M

Guarde y cierre el archivo.

Figura A

nginxuploada.jpg "src =" https://tr2.cbsistatic.com/hub/i/r/2020/08/06/50d5fe6e-d9b9-4a51-b5fd-7d079398f206/resize/770x/f63c9efeadc5322134bc6e249.ajin0auploo

Añadiendo la configuración al archivo de configuración NGINX.

A continuación, abra el archivo de configuración de su sitio world-wide-web. Si está usando el predeterminado, abriría ese archivo con el comando:

sudo nano /etc/nginx/web pages-readily available/default

En ese archivo, busque la sección del servidor y agregue la misma línea que hizo en el archivo nginx.conf (Figura B).

Figura B

nginxuploadb.jpg "src =" https://tr1.cbsistatic.com/hub/i/r/2020/08/06/33c644d4-7174-4878-8638-1f87a89db770/resize/770x/4a7668e7b8bd88b6580f410f35888288/nginxuploadb.j

Agregar la línea de configuración en la sección del servidor del archivo de configuración de su sitio.

En ese mismo archivo, ubique la sección de ubicación que ha configurado para cargas del sitio y agregue la misma línea (Figura C).

Figura C

nginxuploadc.jpg "src =" https://tr2.cbsistatic.com/hub/i/r/2020/08/06/df26fc60-cf97-412b-9e4f-d8c99c1c81f2/resize/770x/3d9f8243d619e8908f50b5e732ex08374c./

Añadiendo la línea de configuración en la directiva de ubicaciones.

Por supuesto, su directiva de cargas probablemente será un poco más compleja que la básica que he ilustrado, pero entiende el punto.

Guarde y cierre el archivo.

Ejecute la prueba de configuración de NGINX con el comando:

sudo nginx -t

No debería ver ningún error. Reinicie NGINX con el comando:

sudo systemctl restart nginx

En este punto, si alguien intenta cargar un tamaño de archivo exceptional a 100 MB, recibirá un mistake 413 (Solicitar entidad demasiado grande). Su servidor NGINX ahora está un poco más seguro frente a los ataques DoS, al mismo tiempo que permite a sus usuarios cargar archivos. No, esta no es una medida preventiva definitiva para los ataques DoS, pero en estos días cualquier cosa que pueda hacer para evitar los pozos que nunca lo hacen es un paso en la dirección correcta.

Ver también



Enlace a la noticia first