Pular para conteúdo

ntlm: Módulo NTLM do NGINX

Instalação

Você pode instalar este módulo em qualquer distribuição baseada em RHEL, incluindo, mas não se limitando a:

  • RedHat Enterprise Linux 7, 8, 9 e 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 e 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

Ative o módulo adicionando o seguinte no topo de /etc/nginx/nginx.conf:

load_module modules/ngx_http_upstream_ntlm_module.so;

Este documento descreve o nginx-module-ntlm v1.19.4 lançado em 04 de maio de 2024.


O módulo NTLM permite o proxy de requisições com Autenticação NTLM. A conexão upstream é vinculada à conexão do cliente uma vez que o cliente envia uma requisição com o valor do campo de cabeçalho "Authorization" começando com "Negotiate" ou "NTLM". Requisições adicionais do cliente serão proxyadas através da mesma conexão upstream, mantendo o contexto de autenticação.

Como usar

Sintaxe: ntlm [connections];
Padrão: ntlm 100;
Contexto: upstream

upstream http_backend {
    server 127.0.0.1:8080;

    ntlm;
}

server {
    ...

    location /http/ {
        proxy_pass http://http_backend;
        # as próximas 2 configurações são necessárias para o keepalive funcionar corretamente
        proxy_http_version 1.1;
        proxy_set_header Connection "";
    }
}

O parâmetro connections define o número máximo de conexões com os servidores upstream que são preservadas no cache.

Sintaxe: ntlm_timeout timeout;
Padrão: ntlm_timeout 60s;
Contexto: upstream

Define o tempo limite durante o qual uma conexão ociosa com um servidor upstream permanecerá aberta.

Testes

Para executar os testes, você precisa ter nodejs e perl instalados em seu sistema.

## instale o framework de teste
cpan Test::Nginx

## defina o caminho para sua localização do nginx
export PATH=/opt/local/nginx/sbin:$PATH

prove -r t

GitHub

Você pode encontrar dicas adicionais de configuração e documentação para este módulo no repositório do GitHub para nginx-module-ntlm.