NTLM através do servidor proxy

NTLM através do servidor proxy
  • Usamos o squid como proxy HTTP (se necessário posso modificar sua configuração).
  • Queremos acessar um site que usa ntlm para autenticação
  • Quando entramos no site através do squid vemos uma página em branco
  • Quando acessamos o site através de uma caixa DSL, vemos um pop-up de autenticação (resultado desejado)

Não sei muito sobre NTLM... imaginação perturbada... protolol de baixa qualidade... grmbl grmbl :D :D :D

Este tópico diz que isso não pode ser feito:http://www.squid-cache.org/mail-archive/squid-users/200708/0578.html

Existe algum guru que possa fornecer uma solução ou solução alternativa?

Aqui está a saída telnet na porta 80 para o site desejado:

Trying 111.222.333.444...
Connected to www.extranet-example.com (111.222.333.444).
Escape character is '^]'.
GET /index.htm HTTP/1.1
host: www.extranet-example.com

HTTP/1.1 401 Unauthorized
Server: Microsoft-IIS/7.5
SPRequestGuid: 2764478a-b14a-4541-9110-27ebf4281e84
WWW-Authenticate: NTLM
X-Powered-By: ASP.NET
MicrosoftSharePointTeamServices: 14.0.0.4762
Date: Mon, 25 Nov 2013 14:25:26 GMT
Content-Length:
0 

Bônus: usamos 2 servidores proxy encadeados (squid-2.6 rhel5)

Editar: Usar NTLM para fazer autenticação squid não é o que estamos tentando alcançar.

Edição 2: O site que tentamos acessar está fora da nossa empresa, fora da nossa rede. Na verdade, é um site público com IP público. Se eu excluir este site da configuração do proxy, não funcionará porque nossa estação de trabalho não tem rota para a internet nem conexão direta.

Responder1

O NTLM é orientado à conexão e, como não há conexão direta entre você e o servidor da web quando você usa o proxy, o NTLM falha. (Há uma conexão entre você e o proxy e uma segunda conexão entre o proxy e o site.)

Se você não puder atualizar para, por exemplo, autenticação Kerberos, sua melhor aposta é adicionar o servidor da web à lista de exclusão de proxy na configuração do cliente (arquivo PAC?). Normalmente, os servidores internos na intranet corporativa (que é onde você esperaria a autenticação NTLM) são excluídos do proxy por esse motivo e os clientes se conectam diretamente.

EDITAR

Aparentemente, há uma opção no Squid para autenticação de passagem NTLM:Fixação de conexão. Disponível no Squid versão 2.6 e superior e 3.1 e superior.

http_port ... connection-auth[=on|off]
https_port ... connection-auth[=on|off]

Responder2

Com base nas informações fornecidas, não acho que você possa criar uma solução alternativa para usar o NTLM sobre o Squid na Internet sem sair da caixa de alguma forma.

Uma sugestão possível seria usar o HAproxy (que faz proxy reverso de TCP) para criar uma URL local em sua rede que canalize solicitações para o site do outro lado. Se você tiver que passar por 2 saltos diferentes (ou seja, as 2 máquinas rodando o Squid), então você terá que configurar duas instâncias.

A configuração seria algo como:

listen localsite 0.0.0.0:80
    mode tcp
    balance roundrobin
    option  tcplog

    server upstream1 1.2.3.4:80

Embora você precise executar um aplicativo separado, o HAproxy é super simples (instale um único pacote, arquivo de configuração de 10 linhas, praticamente 0 configuração, 0 manutenção).

A outra opção seria modificar a configuração do sistema para ativar algum tipo de SSO e, em seguida, usar um autenticador NTLM local para iniciar as sessões no sistema upstream. Isso pode implicar desenvolvimento e mudanças no sistema.

Acho que nunca vi NTLM usado na Internet, geralmente é usado em LANs. Talvez se você expandir a situação possamos sugerir uma estratégia alternativa.

informação relacionada