BLOG | NGINX

Anunciamos NGINX Plus R22

NGINX - Parte de F5 - horizontal, negro, tipo RGB
Miniatura de Liam Crilly
Liam Crilly
Publicado el 9 de junio de 2020

Nos complace anunciar que NGINX Plus Release 22 (R22) ya está disponible. Basado en NGINX de código abierto, NGINX Plus es el único equilibrador de carga de software, caché de contenido, servidor web y puerta de enlace API todo en uno. El enfoque principal de esta versión es la supervisión y la autenticación, para lograr una mayor granularidad y resiliencia de sus aplicações a escala.

Las nuevas características de NGINX Plus R22 incluyen:

Cambios importantes en el comportamiento

  • Los sistemas operativos más antiguos ya no son compatibles

    • Alpine Linux 3.8 ya no recibe soporte
    • Como se anunció para NGINX Plus R21<.htmla> , NGINX Plus ya no está disponible en plataformas de 32 bits (arquitectura i386)

Nuevas funciones en detalle

Validación OCSP de certificados de cliente

NGINX Plus admite TLS mutuo, que utiliza certificados de cliente tanto para verificar la identidad del cliente que se conecta como para establecer una conexión cifrada. TLS mutuo proporciona un alto nivel de seguridad sobre la identidad del cliente, pero administrar certificados revocados puede ser una carga administrativa. El Protocolo de estado de certificado en línea (OCSP) resuelve esto verificando el estado de los certificados de cliente a medida que se presentan.

Puede configurar NGINX Plus para utilizar OCSP para comprobar la validez de los certificados de cliente X.509, como se define en RFC 6960 .

Para habilitar la validación OCSP de los certificados de cliente SSL, incluya la nueva directiva ssl_ocsp junto con la directiva ssl_verify_client , que habilita la verificación de certificados.

NGINX Plus envía la solicitud OCSP a la URI OCSP integrada en el certificado del cliente a menos que defina una URI diferente con la directiva ssl_ocsp_responder .

Para almacenar en caché las respuestas OCSP en una única zona de memoria compartida por todos los procesos de trabajo, incluya la directiva ssl_ocsp_cache para definir el nombre y el tamaño de la zona. Las respuestas se almacenan en caché durante 1 hora a menos que el valor nextUpdate en la respuesta OCSP especifique un valor diferente.

El resultado de la validación del certificado del cliente está disponible en la variable $ssl_client_verify , incluido el motivo de la falla de OCSP.

El protocolo de enlace TLS falla si el certificado del cliente no es confiable o la respuesta de OCSP no es válida. Estado código 495 (SSL Certificado Error) se devuelve y se crea una entrada en el registro de errores en el error nivel de gravedad:

AAAA / MM / DD hh : mm : ss [error] 31222#0: *5 estado del certificado "revocado" en la respuesta de OCSP al solicitar el estado del certificado, respondedor: 127.0.0.1

Mejoras de OpenID Connect

Nuestra implementación de referencia de OpenID Connect para NGINX Plus extiende el SSO a aplicações nuevas y existentes para minimizar la complejidad y los costos. La implementación de referencia utiliza una combinación de características de NGINX Plus y el módulo JavaScript de NGINX (njs) para realizar un intercambio de código con el punto final de autorización y recibir un token de identificación del IdP. Los tokens de identificación en sí se almacenan en caché en el almacén de clave-valor de NGINX Plus, y se envía un token de sesión opaco al cliente. Luego, los clientes se autentican presentando un token de sesión válido que NGINX Plus utiliza para verificar el token de identificación antes de acceder a las aplicações backend.

Esta versión trae numerosas mejoras a la implementación de referencia de OIDC y dos cambios significativos:

  1. La configuración ahora admite múltiples IdP al pasar variables de entrada apropiadas de solicitudes entrantes a múltiples bloques de mapas . Esta flexibilidad adicional reduce la necesidad de modificar el código de implementación de referencia de OIDC.
  2. El código JavaScript ahora está implementado como un módulo para que pueda coexistir con otras soluciones njs en el mismo host sin necesidad de administrar todo el código njs en un solo archivo.

A continuación se muestra una configuración de ejemplo:

Cada bloque de mapa permite múltiples valores para que se puedan admitir múltiples IdP y parámetros de autenticación (secreto de cliente, archivo de clave JWK, puntos finales de autorización). Aquí usamos la variable $host como parámetro de entrada, pero puede especificar cualquier variable derivada del encabezado de la solicitud.

La API NGINX Plus ahora rastrea la actividad relacionada con los inicios de sesión de OpenID Connect, para ayudar con el monitoreo y la resolución de problemas. Consulte el repositorio de GitHub para obtener más información sobre la implementación de referencia de OpenID Connect.

Gráficos del panel de control en tiempo real para la limitación de velocidad y conexión

Los ataques DDoS y de adivinación de contraseñas por fuerza bruta son dos amenazas críticas para sus aplicações. Puede mitigar sus efectos con una limitación de velocidad: es decir, haciendo que NGINX Plus limite la cantidad de solicitudes que cada cliente puede realizar en un período de tiempo determinado.

NGINX Plus R20 agregó monitoreo en tiempo real de la tasa de solicitudes y limitación de conexión a la API de NGINX Plus (en los puntos finales /api/ versión /http/limit_reqs y /api/ versión /http/limit_conns ). La información ahora aparece en el panel de monitoreo de actividad en vivo de NGINX Plus, con recuentos acumulativos en formato de tabla y recuentos con marca de tiempo en formato de gráfico:

  • Las métricas de limitación de la tasa de solicitudes aparecen en la tabla Límite de solicitudes en la pestaña Zonas HTTP
  • Las métricas de limitación de conexión aparecen en la tabla Limitar conexión en la pestaña Zonas TCP/UDP

La tabla incluye una fila para cada zona definida por una directiva limit_req_zone y limit_conn_zone . Para visualizar el gráfico, haga clic en el icono del gráfico en el extremo izquierdo de la fila.

El gráfico ampliado se actualiza continuamente y muestra valores para cada intervalo de tiempo como un gráfico de área apilada. Puede personalizar la información mostrada de las siguientes maneras:

  • Elija el rango de tiempo a mostrar: 1 minuto, 5 minutos o 15 minutos
  • Pase el cursor sobre el gráfico para mostrar los recuentos precisos para un punto de tiempo
  • Coloque el cursor sobre un tipo de estadística en el área de leyenda para resaltar esa estadística en el gráfico
  • Haga clic en un tipo de estadística en el área de leyenda para alternar entre mostrarlo o no mostrarlo
  • Arrastre el gráfico hacia la izquierda y hacia la derecha para ver datos históricos

En el intervalo de actualización del panel predeterminado de 1 segundo, cada gráfico almacena aproximadamente 30 minutos de datos históricos. Aumentar el intervalo de actualización del panel (actualizar con menos frecuencia) aumenta la cantidad de datos históricos disponibles. Tenga en cuenta que los gráficos del panel no son persistentes y los datos históricos se pierden cuando sale de la pestaña o la vuelve a cargar.

Mejoras en el módulo JavaScript de NGINX

El módulo JavaScript de NGINX extiende la funcionalidad de NGINX Plus para permitir una amplia gama de casos de uso, incluido el control más preciso del tráfico, la consolidación de funciones de JavaScript en todas las aplicações y la defensa contra amenazas a la seguridad. El módulo JavaScript de NGINX se ha actualizado a0.4.1 e incluye estas características:

  • La nueva directiva js_import para importar múltiples archivos de módulos que implementan controladores de ubicación y variables
  • Compatibilidad de encabezado mejorada, incluidos nuevos objetos de encabezado sin procesar
  • Puede utilizar archivos de definición de TypeScript en su código njs
  • Soporte para convertir valores externos en objetos nativos de JavaScript

El siguiente código y configuración ilustran cómo se puede usar el nuevo objeto r.rawHeadersIn para registrar el conjunto exacto de encabezados enviados por el cliente cada vez que se encuentra un error. [ Editor: este es solo uno de los muchos casos de uso del módulo JavaScript de NGINX. Para obtener una lista completa, consulte Casos de uso del módulo JavaScript NGINX . ]

A continuación se muestra una entrada de registro de muestra para un404 respuesta:

$ curl http://localhost/bogus $ tail --lines=1 /var/log/nginx/access_json.log {"respuesta":{"marca de tiempo": " AAAA - MM - DD T hh : mm : ss + desplazamiento de TZ ", "estado": 404},"solicitud":{"cliente": "127.0.0.1", "uri": "/bogus", "encabezados": [["Host", "localhost:80"], ["Agente de usuario", "curl/7.64.1"], ["Aceptar", "*/*"]]}}

Retraso en caso de fallo de autenticación

Para mitigar ataques de temporización , como ataques de fuerza bruta de contraseñas y credential stuffing, puede hacer que NGINX Plus retrase su respuesta cuando falla la autenticación. La nueva directiva auth_delay especifica el retraso, que se puede aplicar a las solicitudes de autenticación procesadas por los módulos Auth Basic , Auth JWT y Auth Request .

Actualice o pruebe NGINX Plus

Si está utilizando NGINX Plus, le recomendamos encarecidamente que actualice a NGINX Plus R22 lo antes posible. También recibirás varias correcciones y mejoras adicionales, y ayudará a NGINX a ayudarte cuando necesites generar un ticket de soporte.

Si aún no ha probado NGINX Plus, le recomendamos que lo haga por cuestiones de seguridad, equilibrio de carga y puerta de enlace de API, o como servidor web totalmente compatible con API de administración y monitoreo mejoradas. Puede comenzar hoy con una prueba gratuita de 30 días . Vea usted mismo cómo NGINX Plus puede ayudarle a entregar y escalar sus aplicações.


"Esta publicación de blog puede hacer referencia a productos que ya no están disponibles o que ya no reciben soporte. Para obtener la información más actualizada sobre los productos y soluciones F5 NGINX disponibles, explore nuestra familia de productos NGINX . NGINX ahora es parte de F5. Todos los enlaces anteriores de NGINX.com redirigirán a contenido similar de NGINX en F5.com.