
- 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.