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.