NTLM através do servidor proxy

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

Eu não sei muito sobre o NTLM ... imaginação desanimada ... protolol crappy ... grmbl grmbl: D: D: D

Este tópico diz que não pode ser feito: link

Existe algum guru que possa fornecer uma solução ou uma 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 o NTLM para fazer a autenticação do squid não é o que estamos tentando alcançar.

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

    
por GomoX 05.12.2013 / 10:36

2 respostas

5

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 pode atualizar para, por exemplo, o Kerberos auth, sua melhor opção é adicionar o servidor à 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: Pinagem de conexão . Disponível a partir da versão 2.6 e superior do Squid e 3.1 e superior.

http_port ... connection-auth[=on|off]
https_port ... connection-auth[=on|off]
    
por 05.12.2013 / 12:42
2

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

Uma possível sugestão seria usar o HAproxy (que faz o proxy reverso do TCP) para criar uma URL local na sua rede que canalize as solicitações para o site na outra extremidade. Se você tiver que percorrer dois saltos diferentes (ou seja, as duas máquinas que executam o Squid), será necessário configurar duas instâncias.

A configuração seria algo nas linhas de:

listen localsite 0.0.0.0:80
    mode tcp
    balance roundrobin
    option  tcplog

    server upstream1 1.2.3.4:80

Embora você tenha que executar um aplicativo separado, o HAproxy é super indolor (instale um pacote único, um 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 habilitar 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.

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

    
por 05.12.2013 / 15:08