Saltar a contenido

ntlm: Módulo NTLM de NGINX

Instalación

Puedes instalar este módulo en cualquier distribución basada en RHEL, incluyendo, pero no limitado a:

  • RedHat Enterprise Linux 7, 8, 9 y 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 y Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-ntlm
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-ntlm

Habilita el módulo añadiendo lo siguiente en la parte superior de /etc/nginx/nginx.conf:

load_module modules/ngx_http_upstream_ntlm_module.so;

Este documento describe nginx-module-ntlm v1.19.4 lanzado el 04 de mayo de 2024.


El módulo NTLM permite la proxy de solicitudes con Autenticación NTLM. La conexión upstream se vincula a la conexión del cliente una vez que el cliente envía una solicitud con el valor del campo de encabezado "Authorization" que comienza con "Negotiate" o "NTLM". Las solicitudes posteriores del cliente se proxearán a través de la misma conexión upstream, manteniendo el contexto de autenticación.

Cómo usar

Sintaxis: ntlm [connections];
Predeterminado: ntlm 100;
Contexto: upstream

upstream http_backend {
    server 127.0.0.1:8080;

    ntlm;
}

server {
    ...

    location /http/ {
        proxy_pass http://http_backend;
        # las siguientes 2 configuraciones son necesarias para que el keepalive funcione correctamente
        proxy_http_version 1.1;
        proxy_set_header Connection "";
    }
}

El parámetro connections establece el número máximo de conexiones a los servidores upstream que se preservan en la caché.

Sintaxis: ntlm_timeout timeout;
Predeterminado: ntlm_timeout 60s;
Contexto: upstream

Establece el tiempo de espera durante el cual una conexión inactiva a un servidor upstream permanecerá abierta.

Pruebas

Para ejecutar las pruebas necesitas tener nodejs y perl instalados en tu sistema.

## instala el marco de pruebas
cpan Test::Nginx

## establece la ruta a tu ubicación de nginx
export PATH=/opt/local/nginx/sbin:$PATH

prove -r t

GitHub

Puedes encontrar consejos adicionales de configuración y documentación para este módulo en el repositorio de GitHub para nginx-module-ntlm.