Доброго времени суток.
Есть Debian 6 + squid 3.1 +rejik, авторизация в AD (win 2008 R2) работает через krb5 + keytab на основе spn (без самбы и винбинда). Работает нормально, но не на всех браузерах (тестировал на mozilla firefox frontmotion, g chrome и IE), + наткнулся еще на несколько специфических проблем, посему вопросов будет несколько.
[u]1.[/u]Не работает прозрачная авторизация в IE (пробовал 8,9,10, назначал прокси политикой и вручную - эффект один, причем меня терзает сомнение что вначале работала, но я проводил много тестов, откатывался к снапшотам и делал заново, поэтому не помню точно). Если назначить прокси вручную, то прозрачная авторизация перестает работать и в google chrome (если хрому назначить политикой через adm шаблоны - все ок), для firefox история тоже отчасти странная - при назначении через gpo (также adm) все нормально, при назначении руками работает пока не переместить пользователя в другую AD группу с другими правами в acl сквида, после этого перестает работать, хотя однако это не беда -назначать вручную не собираюсь (через gpo), но вот IE волнует - кто сталкивался - отпишите пожалуйста.
вот что в cache.log по поводу авторизации:2013/04/18 09:03:40| authenticateNegotiateHandleReply: Error validating user via Negotiate. Error returned 'BH received type 1 NTLM token'
[u]2.[/u] Решил добавить базовую авторизацию из файла в случае если не отработает negotiate, не работает, в cache -тоже самое что в вопросе 1(и это логично что не отработал negotiate ведь и тестируем базик, логинился не доменным пользователем, но при чем тут ntlm token не понятно).
лог сквида:
#negotiate krb аутентификация
auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -s HTTP/SquidErgo.mfk-22.local@MFK-22.LOCAL
auth_param negotiate children 15
auth_param negotiate keep_alive on
#basic из файла аутентификация
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/local_squid_users
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
#external acl для крб
external_acl_type ldap_verify %LOGIN /usr/lib/squid3/squid_ldap_group -R -b "dc=mfk-22,dc=local" -f "(&(objectclass=user)(sAMAccountName=%v)(memberOf=cn=%a,ou=squidtest_u,ou=MFC,dc=mfk-22,dc=local))" -D forldap@mfk-22.local -K -W /etc/squid3/aduser dc.mfk-22.local
..............................................................
acl allusers proxy_auth REQUIRED
acl internet_allow external ldap_verify inet_allow
acl internet_deny external ldap_verify inet_deny
acl mfc22 dstdomain www.mfc22.ru
#acl для basic аутентификации
acl basic_users proxy_auth "/etc/squid3/local_squid_users_list"
acl CONNECT method CONNECT
http_access allow internet_allow
http_access allow internet_deny !mfc22
http_access allow basic_users
...........................................
local_squid_users создан с помощью htpasswd из apache-utils, а в local_squid_users_list просто список тех же пользователей что и в local_squid_users но без паролей.
/etc/squid3/local_squid_users
root@SquidErgo:/usr/src/rejik# cat /etc/squid3/local_squid_users
squiduser1:41RpB4kcoXwTc
squiduser2:nqZAfyd3McLxA
squiduser3:qrK8lckm1MZ5c
/etc/squid3/local_squid_users_list
root@SquidErgo:/usr/src/rejik# cat /etc/squid3/local_squid_users_list
squiduser1
squiduser2
squiduser3
может кто подсказать почему не работает базик?
[u]3.[/u] Проблема с добавлением исключений при назначении прокси для google chrome через gpo. Использовал шаблоны, взятые отсюда http://dl.google.com/dl/edgedl/chrome/p … ates.zip., задал исключения в виде просто ip адресов (чтобы локальные http ресурсы не проксировались), но в режике у меня есть секция резать станицы если в браузере был введен ip адрес (например если юзер отnslookup`ил адрес siski.com, а адреса в бан листе нет), и при посещении локального ресурса режик меня завернул, я был удивлен, ведь на этот ресурс я не должен был идти через прокси - так и выяснил что исключения не работает. Видел такое описание gpo для хрома http://www.chromium.org/developers/desi … roxy-sett, там есть раздел --proxy-bypass-list где можно конфигурть исключения командами, но не догнал где эти команды писать то у кого есть опыт с gpo chrome - как решали?
Заранее спасибо.
Некоторое время назад настраивал под CentOS 6
были проблемы с системным kerberos патч нашел здесь http://code.google.com/p/msktutil/
https://github.com/krb5/krb5-anonsvn/commit/1c885dbaab63c29f...
Нужно на debian или нет сказать не могу но стоит проверитьЕсть хотфикс для Win 2008 http://support.microsoft.com/kb/951191/en-us
Пересмотрите еще раз настройки по документации
http://wiki.squid-cache.org/ConfigExamples/Authenticate/Wind...
Проблема м.б. при неправильном SPN
Возможно стоит пересоздать УЗ почистить кешированные тикеты и т.п.Мое мнение лучше использовать NTLM меньше проблем с разными клиентами и для локальных УЗ
> Некоторое время назад настраивал под CentOS 6
> были проблемы с системным kerberos патч нашел здесь http://code.google.com/p/msktutil/
> https://github.com/krb5/krb5-anonsvn/commit/1c885dbaab63c29f...
> Нужно на debian или нет сказать не могу но стоит проверитьПатч на тот случай если крб ломает msktutil, я ей не пользовался при настройке - я так полагаю этот менеджер для создания и управления spn`ами? Если так - я использовал ktpass в win2008R2 и перелил кейтаб на squid машину, к тому же если бы проблема была в spn - не работала бы авторизация вообще, а она работает в chrome & firefox, и модуль squid_ldap_group отрабатывает как надо и присутствие пользователя в группе подтверждает.
> Есть хотфикс для Win 2008 http://support.microsoft.com/kb/951191/en-us
Хотфикс на тот случай если тикеты не получаются же, у меня kinit по spn работает нормально.
> Проблема м.б. при неправильном SPN
> Возможно стоит пересоздать УЗ почистить кешированные тикеты и т.п.всегда делаю kdestroy, но spn попробую пересоздать, правда без особой надежды.
> Мое мнение лучше использовать NTLM меньше проблем с разными клиентами и для
> локальных УЗДа согласен, и делается в три-пятнадцать :D но я неудачник - уменя не работает и все, конфиги как у всех, wbinfo --authenticate работает а вот ntlm_auth - не хочет и все, кому только конфиги не показывал - все разводили руками и говорили "должно работать" - в итоге плюнул и сделал на krb.
Так по поводу вопроса 1:
я идиотъ, сделал еще 1 spn (та же машина но еще 1 доменное имя, еще 1 учетная запись) и все заработало. Но не из-за spn а из-за того что указал fqdn, блин рассказывал всем вокруг что крб работает только с fqdn в данном случае, хрому и мозилле в gpo указывал fqdn, а ишаку какого-то рожна 2й день уже в тестах указывал ip. Вывод - нужно голову проветривать. Но 2й и 3й вопросы актуальны.
По поводу вопроса 2:
если оставить только базик авторизацию и убрать negotiate - работает нормально (форма запроса логина/пароля выдает только плашку squid proxy-caching web server,т.е. которая прописана в squid.conf, но не выдает опознавательных знаков домена), и из файла тоже, но если присутствует и negotiate - предполагается что вводиться будут доменные учетные данные и запись типа SquidErgo\squiduser1, где SquidErgo - имя прокси, а squiduser1 - пользователь из файла - не помогает. Грубо говоря как заставить различать когда я ввожу доменные учетные данные, когда из файла - не понятно. Продолжаю тесты.
> По поводу вопроса 2:
> если оставить только базик авторизацию и убрать negotiate - работает нормально (форма
> запроса логина/пароля выдает только плашку squid proxy-caching web server,т.е. которая
> прописана в squid.conf, но не выдает опознавательных знаков домена), и из
> файла тоже, но если присутствует и negotiate - предполагается что вводиться
> будут доменные учетные данные и запись типа SquidErgo\squiduser1, где SquidErgo -
> имя прокси, а squiduser1 - пользователь из файла - не помогает.
> Грубо говоря как заставить различать когда я ввожу доменные учетные данные,
> когда из файла - не понятно. Продолжаю тесты.А у клиентов в браузере прокси указан именно так, как в билет в кербероса выдан или просто IP адрес указывают? Если в браузере указан IP, то используется NTLM
>[оверквотинг удален]
>> запроса логина/пароля выдает только плашку squid proxy-caching web server,т.е. которая
>> прописана в squid.conf, но не выдает опознавательных знаков домена), и из
>> файла тоже, но если присутствует и negotiate - предполагается что вводиться
>> будут доменные учетные данные и запись типа SquidErgo\squiduser1, где SquidErgo -
>> имя прокси, а squiduser1 - пользователь из файла - не помогает.
>> Грубо говоря как заставить различать когда я ввожу доменные учетные данные,
>> когда из файла - не понятно. Продолжаю тесты.
> А у клиентов в браузере прокси указан именно так, как в билет
> в кербероса выдан или просто IP адрес указывают? Если в браузере
> указан IP, то используется NTLMfqdn
Вообще посоветовали окостылить это дело по портам, для negotiate 3128, для базика 3129 например, попробую - отпишу
Попробовал развести авторизацию по портам, с помощью acl myportname, для базик 3129, для negotiate 3128 - не работает. Хочу попробовать 2 инстанса squid на одной машине - подскажите как задать порядок загрузки и опдеделять альтернативные файлы конфигурации при том, что ставил из репов, не вручную собирал. И по поводу режика сразу вопрос - будет ли работать если оба сквида будут использовать 1 модуль режика, но с разными конфигами режика?
Вобщем вопросы 2 и 3 также можно считать закрытыми.
[u]по вопросу 2[/u] поднял 2й инстанс сквида и развел negotiate авторизацию с модулем squid_kerb_auth и модулем для групп squid_ldap_group и отдельно basic авторизацию из файла. как поднять 2й инстанс - http://xrotwang.wordpress.com/2008/12/03/running-multiple-sq.../, http://adminlog.ru/?p=763.
[u]По поводу 3го вопроса:[/u] исключения в гугл хроме через gpo работают, закрыл отдельно локальный ресурс по fqdn, короткому имени и ip, а в политике задал игнорировать прокси при переходе на эти же адреса (fqdn, короткое имя и ip). Отработало нормально, не знаю что за шаманство и почему отдельно по ip не работало.
[u]Остался 1 вопрос[/u] - поставил lightsquid и он неплохо интерпретирует access.log (мне нужны именно посещения по пользователям), но в access.log попадают доменные имена на которые пользователь прямо не переходил, кто подскажет как можно в lightsquid резать страницы с которых было закачано например меньше 30кб (чтобы они вообще не отображались в статистике), вот скрин http://www.imageup.ru/img247/1305551/light.png.html, 10 доменных имен, и реально переходил только на mfc22.ru 2 раза, т.е. 8 - это всякие гугл шрифты и прочее, и даже mail.ru который зарезан режиком, но 3кб как то подтянулось. Подскажите как фильтровать по размеру или еще каким то образом?