Доброго времени суток.Более подходящего раздела не нашел.
Есть squid 3.1 +rejik, авторизация в AD (win 2008 R2) работает через krb5 + keytab на основе spn (без самбы и винбинда). Работает нормально, но не на всех браузерах (тестировал на mozilla firefox frontmotion, g chrome и IE), + наткнулся еще на несколько специфических проблем, посему вопросов будет несколько.
1. Не работает прозрачная авторизация в 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'
2. Решил добавить базовую авторизацию из файла в случае если не отработает 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
ncsa_auth работает:
root@SquidErgo:/etc/squid3# /usr/lib/squid3/ncsa_auth /etc/squid3/local_squid_users
squiduser1 rubyruby
OK
squiduser3
ERR
squiduser3 123
OK
может кто подсказать почему не работает базик?
3. Проблема с добавлением исключений при назначении прокси для google chrome через gpo. Использовал шаблоны, взятые отсюда
http://dl.google.com/dl/edgedl/chrome/policy/policy_templates.zip., задал исключения в виде просто ip адресов (чтобы локальные http ресурсы не проксировались), но в режике у меня есть секция резать станицы если в браузере был введен ip адрес (например если юзер отnslookup`ил адрес siski.com, а адреса в бан листе нет), и при посещении локального ресурса режик меня завернул, я был удивлен, ведь на этот ресурс я не должен был идти через прокси - так и выяснил что исключения не работает. Видел такое описание gpo для хрома
http://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett, там есть раздел --proxy-bypass-list где можно конфигурть исключения командами, но не догнал где эти команды писать то
у кого есть опыт с gpo chrome - как решали?
Заранее спасибо.
Пользователь решил продолжить мысль 18 Апреля 2013, 13:35:53:
Так по поводу вопроса 1:
я идиотъ, сделал еще 1 spn (та же машина но еще 1 доменное имя, еще 1 учетная запись) и все заработало. Но не из-за spn а из-за того что указал fqdn, блин рассказывал всем вокруг что крб работает только с fqdn в данном случае, хрому и мозилле в gpo указывал fqdn, а ишаку какого-то рожна 2й день уже в тестах указывал ip. Вывод - нужно голову проветривать. Но 2й и 3й вопросы актуальны.
Пользователь решил продолжить мысль 19 Апреля 2013, 06:52:33:
По поводу вопроса 2:
если оставить только базик авторизацию и убрать negotiate - работает нормально (форма запроса логина/пароля выдает только плашку squid proxy-caching web server,т.е. которая прописана в squid.conf, но не выдает опознавательных знаков домена), и из файла тоже, но если присутствует и negotiate - предполагается что вводиться будут доменные учетные данные и запись типа SquidErgo\squiduser1, где SquidErgo - имя прокси, а squiduser1 - пользователь из файла - не помогает. Грубо говоря как заставить различать когда я ввожу доменные учетные данные, когда из файла - не понятно. Продолжаю тесты.