LINUX.ORG.RU
ФорумAdmin

squid3+krb auth+AD

 


0

2

Доброго времени суток. Есть Debian 6 + 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-Comm..., там есть раздел --proxy-bypass-list где можно конфигурть исключения командами, но не догнал где эти команды писать то у кого есть опыт с gpo chrome - как решали? Заранее спасибо.

Так по поводу вопроса 1: я идиотъ, сделал еще 1 spn (та же машина но еще 1 доменное имя, еще 1 учетная запись) и все заработало. Но не из-за spn а из-за того что указал fqdn, блин рассказывал всем вокруг что крб работает только с fqdn в данном случае, хрому и мозилле в gpo указывал fqdn, а ишаку какого-то рожна 2й день уже в тестах указывал ip. Вывод - нужно голову проветривать. Но 2й и 3й вопросы актуальны.

nokogerra ()
Ответ на: комментарий от blind_oracle

мне нужна просто базовая авторизация из файла для не доменных пользователей, думаю pam_krb5 не подойдет.
если оставить только базик авторизацию и убрать negotiate - работает нормально (форма запроса логина/пароля выдает только плашку squid proxy-caching web server,т.е. которая прописана в squid.conf, но не выдает опознавательных знаков домена), и из файла тоже, но если присутствует и negotiate - предполагается что вводиться будут доменные учетные данные и запись типа SquidErgo\squiduser1, где SquidErgo - имя прокси, а squiduser1 - пользователь из файла - не помогает. Грубо говоря как заставить различать когда я ввожу доменные учетные данные, когда из файла - не понятно.

nokogerra ()
Ответ на: комментарий от nokogerra

Попробовал развести авторизацию по портам, с помощью acl myportname, для базик 3129, для negotiate 3128 - не работает. Хочу попробовать 2 инстанса squid на одной машине - подскажите как задать порядок загрузки и опдеделять альтернативные файлы конфигурации при том, что ставил из репов, не вручную собирал. И по поводу режика сразу вопрос - будет ли работать если оба сквида будут использовать 1 модуль режика, но с разными конфигами режика?

nokogerra ()
Ответ на: комментарий от nokogerra

Вобщем вопросы 2 и 3 также можно считать закрытыми.
по вопросу 2 поднял 2й инстанс сквида и развел negotiate авторизацию с модулем squid_kerb_auth и модулем для групп squid_ldap_group и отдельно basic авторизацию из файла. как поднять 2й инстанс - http://xrotwang.wordpress.com/2008/12/03/running-multiple-squid-instances-on-..., http://adminlog.ru/?p=763.
По поводу 3го вопроса: исключения в гугл хроме через gpo работают, закрыл отдельно локальный ресурс по fqdn, короткому имени и ip, а в политике задал игнорировать прокси при переходе на эти же адреса (fqdn, короткое имя и ip). Отработало нормально, не знаю что за шаманство и почему отдельно по ip не работало.
Остался 1 вопрос - поставил lightsquid и он неплохо интерпретирует access.log (мне нужны именно посещения по пользователям), но в access.log попадают доменные имена на которые пользователь прямо не переходил, кто подскажет как можно в lightsquid резать страницы с которых было закачано например меньше 30кб (чтобы они вообще не отображались в статистике), вот скрин http://www.imageup.ru/img247/1305551/light.png.html, 10 доменных имен, и реально переходил только на mfc22.ru 2 раза, т.е. 8 - это всякие гугл шрифты и прочее, и даже mail.ru который зарезан режиком, но 3кб как то подтянулось. Подскажите как фильтровать по размеру или еще каким то образом?

nokogerra ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.