
- Usamos squid como proxy HTTP (si es necesario, puedo modificar su configuración).
- Queremos acceder a un sitio web que utiliza ntlm para la autenticación.
- Cuando accedemos al sitio web a través de Squid vemos una página en blanco.
- Cuando accedemos al sitio web a través de un cuadro DSL, vemos una ventana emergente de autenticación (resultado deseado)
No sé mucho sobre NTLM... imaginación trastornada... protocolo de mierda... grmbl grmbl :D :D :D
Este hilo dice que no se puede hacer:http://www.squid-cache.org/mail-archive/squid-users/200708/0578.html
¿Hay algún gurú que pueda proporcionar una solución o un arreglo alternativo?
Aquí está la salida de telnet en el puerto 80 para el sitio web deseado:
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
Bonificación: utilizamos 2 servidores proxy encadenados (squid-2.6 rhel5)
Editar: usar NTLM para realizar la autenticación Squid no es lo que intentamos lograr.
Edición 2: el sitio web al que intentamos acceder está fuera de nuestra empresa, fuera de nuestra red. De hecho es un sitio web público con una IP pública. Si excluyo este sitio web de la configuración del proxy, no funcionará porque nuestra estación de trabajo no tiene ruta a Internet ni conexión directa.
Respuesta1
NTLM está orientado a la conexión y, dado que no hay una conexión directa entre usted y el servidor web cuando usa el proxy, NTLM falla. (Existe una conexión entre usted y el proxy y una segunda conexión entre el proxy y el sitio web).
Si no puede actualizar, por ejemplo, a la autenticación Kerberos, su mejor opción es agregar el servidor web a la lista de exclusión de proxy en la configuración de su cliente (¿archivo PAC?). Por lo general, los servidores internos de la intranet corporativa (que es donde se esperaría la autenticación NTLM) se excluyen del proxy por este motivo y los clientes se conectan directamente.
EDITAR
Aparentemente hay una opción en Squid para la autenticación de paso NTLM:Fijación de conexión. Disponible desde la versión 2.6 y superior de Squid y 3.1 y superior.
http_port ... connection-auth[=on|off]
https_port ... connection-auth[=on|off]
Respuesta2
Según la información proporcionada, no creo que se pueda crear una solución alternativa para usar NTLM en lugar de Squid a través de Internet sin salirse de lo común de alguna manera.
Una posible sugerencia sería usar HAproxy (que realiza un proxy inverso de TCP) para crear una URL local en su red que canalice las solicitudes al sitio en el otro extremo. Si tiene que pasar por 2 saltos diferentes (es decir, las 2 máquinas que ejecutan Squid), entonces deberá configurar dos instancias.
La configuración sería algo así como:
listen localsite 0.0.0.0:80
mode tcp
balance roundrobin
option tcplog
server upstream1 1.2.3.4:80
Si bien tiene que ejecutar una aplicación separada, HAproxy es súper sencillo (instale un solo paquete, archivo de configuración de 10 líneas, prácticamente 0 configuración, 0 mantenimiento).
La otra opción sería modificar la configuración del sistema para habilitar algún tipo de SSO y luego usar un autenticador NTLM local para iniciar las sesiones en el sistema ascendente. Esto podría implicar desarrollo y cambios en el sistema.
Sin embargo, no creo haber visto nunca el uso de NTLM en Internet; generalmente se usa en LAN. Quizás si amplía la situación podamos sugerir una estrategia alternativa.