Назад | Перейти на главную страницу

Squid, аутентификация, Outlook Anywhere, Windows 7 и HTTP 1.1 = NIGHTMARE

Я использую прокси-сервер Squid (последняя версия, 3.1.4) в Linux CentOS 5.4 с Samba 3.5.4, чтобы разрешить аутентифицированный веб-доступ для пользователей домена; все работает нормально, и даже клиенты Windows 7 полностью поддерживаются. Аутентификация прозрачна для пользователей домена, в то время как она явно запрашивается для пользователей, не являющихся доменами, и работает, если пользователь может предоставить действительные учетные данные домена. Все хорошо и хорошо.

Затем запускается Outlook Anywhere, и за этим следуют боль и страдания.

Когда Outlook (будь то 2007 или 2010, это не имеет значения) работает на клиентах Windows XP, он изящно подключается через прокси-сервер Squid к своему удаленному серверу Exchange.

Когда он работает в Windows 7, этого не происходит.

Если требование аутентификации снимается с прокси, все работает и в Windows 7, поэтому проблема, очевидно, связана с аутентификацией NTLM с помощью Squid.

Копнув глубже (WireShark), я обнаружил, что Outlook Anywhere использует HTTP 1.1, когда он работает в Windows 7, и HTTP 1.0, когда он работает в Windows XP. И похоже, что у Squid, даже в его последней версии, все еще есть серьезные проблемы с правильной обработкой HTTP 1.1, особенно когда используются SSL и прокси-аутентификация.

Ожидая, пока Squid полностью и официально поддержит HTTP 1.1 (и похоже, что это может занять вполне давно) ищу одно из следующих решений:

Загрузка rpcping.exe в Dependency Walker, ясно, что он использует WinHttp.dll вместо того WinInet.dll. Итак, копируя WinHttp.dll из Windows XP SP3 в C:\Program Files\Microsoft Office\Office11 где Outlook.exe находится заставляет Outlook отправлять HTTP/1.0 запросы с User-Agent и все остальные поля заголовка, как на моем старом компьютере.

Существующая версия в Windows 7 SP1: 6.1.7601.17514

Скопированная версия из Windows XP SP3: 5.1.2600.6175

Это не самое чистое решение, но на данный момент оно должно сойтись. Если у кого-то есть идея получше, я все уши ...

Windows 7, Server 2008 и я считаю, что даже Vista не поддерживает NTLMv1 по умолчанию. Если он работает на XP, но не на Windows 7, я бы начал с включения NTLMv1 и посмотрел, решит ли он вашу проблему. Вот сообщение, которое помогло мне, когда у меня была аналогичная проблема. Windows7 - «Указан неверный сетевой пароль». когда пароль действительно правильный

3.1.4 не является последней версией Squid - текущий апстрим-выпуск в ветке 3.1 - 3.1.16, и в журнале изменений есть много изменений, связанных с совместимостью с HTTP 1.1. Возможно, вам потребуется попробовать более новую версию.

Это сообщение от пользователей squid сообщает, что, по крайней мере, в январе даже использования последней версии 3.1.x было недостаточно, а необходимые исправления поддержки HTTP 1.1 были только в бета-версиях 3.2.