Страница 1 из 4

На OES2 Squid интегрирован с eDir?

СообщениеДобавлено: 07 апр 2011, 12:08
Дмитрий Иванов
Вопрос довольно ламерский, поэтому во флейме)))...
Поставили задачу использовать локальную проксю (раньше все через squid главного офиса ходили) сервера у нас только нетваревские. Я теперь перед выбором: поставить еще один нетваревский с бордюром или посмотреть в сторону сквида на OES2. Так вот вопрос: под OES2 так же надо городить авторизацию через Radius или на нем уже есть встроенное решение интеграции в eDir линуксовых сервисов, в частности squid?
Спасибо...

Re: На OES2 Squid интегрирован с eDir?

СообщениеДобавлено: 07 апр 2011, 14:22
Андрей Тр. aka RH
Можно сделать авторизацию по LDAP, тут это уже не раз обсуждалось. OES тогда играет роль обычного LDAP сервера, Сквид может работать хоть на нём же, хоть на другом сервере, это особой роли не играет.

Re: На OES2 Squid интегрирован с eDir?

СообщениеДобавлено: 07 апр 2011, 19:32
Дмитрий Иванов
Спасибо за наводку, будем думать!

Re: На OES2 Squid интегрирован с eDir?

СообщениеДобавлено: 08 апр 2011, 14:16
Андрей Тр. aka RH
У нас года 3-4 стояла стояла пара таких Сквидов, с аутентификацией по LDAP. Проблема с ними, которая обсуждалась тут на форуме, заключалась в прозрачной аутентификации - у Бордюра есть clntrust, а по LDAP вылезает окно логина.

Re: На OES2 Squid интегрирован с eDir?

СообщениеДобавлено: 13 апр 2011, 16:39
Ковалев Артем
Андрей Тр. aka RH писал(а):У нас года 3-4 стояла стояла пара таких Сквидов, с аутентификацией по LDAP. Проблема с ними, которая обсуждалась тут на форуме, заключалась в прозрачной аутентификации - у Бордюра есть clntrust, а по LDAP вылезает окно логина.

Ну что может быть проще ;)
В eDir есть данные о юзере, в том числе ip адрес.
squid знает ip, с которого пришёл юзер. Через лдап делаете запрос в eDir и если этому ip соответствует один логин (то есть у вас не терминал-сервер) - то вот она, прозрачная авторизация, юзеру и знать ничего не надо. Если логинов много - тогда да, запрос имени-пароля.

Правда, это поле у eDir глючит и спустя двое-трое суток непрерывной работы ПК обнуляется. Почему так - я так и не понял, но лечится это перезагрузкой ПК.

Re: На OES2 Squid интегрирован с eDir?

СообщениеДобавлено: 13 апр 2011, 17:31
Иван Иванов
Ковалев Артем писал(а):Правда, это поле у eDir глючит и спустя двое-трое суток непрерывной работы ПК обнуляется. Почему так - я так и не понял, но лечится это перезагрузкой ПК.

Именно перезагрузка нужна и перелогин не помогает?

Re: На OES2 Squid интегрирован с eDir?

СообщениеДобавлено: 02 май 2011, 14:57
Андрей Тр. aka RH
Появилось вот такое решение : Squid Authentication from Novell Client AKA SquidTrust Кто-нить возьмётся попробовать ? :)

Re: На OES2 Squid интегрирован с eDir?

СообщениеДобавлено: 02 май 2011, 17:52
Dimerson
круто ... надо б потестить ...

Re: На OES2 Squid интегрирован с eDir?

СообщениеДобавлено: 03 май 2011, 16:08
Dimerson
Начал глядеть.
аналог clntrust.exe это компиленый SourceSquidTrust.ahk

запускаем на станции и он слушает на порту 6399 (TCP)
мона телнетом дергать , в ответ на агрументы отдаюццо
на 3: Windows User Name
на 2: Computer Name
на 1: NW UserName (как пишут должно быть клиент)

по 1 отдается имя без контекста

смотрим исходнег
Код: Выделить всё
   ;;;;;;;;;;;;;;; 1 sends netware username ;;;;;;;;;;;;;;;;;;;;;;;;;;;
   if ShowReceived = 1
   {
      ; Open NetWare utility DLL
      hModule := DllCall("LoadLibrary", "str", "calwin32.Dll")
      if !hModule
      {
         MsgBox Error: Can't load calwin32 DLL. are you SURE the Novell client is on this machine?
         Exit
      }

      ; initializes NWCallsInit
      nwrc :=DllCall("calwin32\NWCallsInit", UInt, 0, UInt, 0 )
      If nwrc <> 0
      {
      MsgBox Error: NWCallsInit was not successful. That's all I know.
      Exit
      }

      ; Get primary connection ID
      DllCall("calwin32\NWGetPrimaryConnectionID", "*UShort", ConnID, "Int")

      ; Get Connection Number
      DllCall("calwin32.dll\NWGetConnectionNumber", "UShort", ConnID, "*UShort", ConnNum, "Int")

      ; Get Connection Information
      VarSetCapacity(UserName, 48)
      DllCall("calwin32.dll\NWGetConnectionInformation", "UShort", ConnID, "UShort", ConnNum, "Str", UserName)


        SendText = %UserName%`n
        SentOK := SendData(socket, SendText)
        CloseSocket(socket)
        ;Clear ShowReceived
        ShowReceived =
   }


Все ничего но как быть если юзвери одноименные в разных OU ?
На раз допиливается на отдачу fdn. например заюзать полученный ранее ConnID так (имхо коннекшен стейт биндери можно не обрабатывать хотя для любителей можно и оставить :)

NWLlocaleconv(&lconvInfo);
NWInitUnicodeTables(lconvInfo.country_id, lconvInfo.code_page);
NWDSCreateContextHandle(&contextHandle);
NWDSGetContext(
flags |= DCV_TYPELESS_NAMES;
flags &= ~DCV_CANONICALIZE_NAMES;
NWDSSetContext(
/* Context Handle */ contextHandle,
/* Key */ DCK_FLAGS,
/* Set Flag Value */ &flags);
NWDSMapIDToName(
/* context handle */ contextHandle,
/* connection habdle */ connHandle,
/* object ID*/ objectId,
/* object name */ buffer);

Как я смотрел, далее используется на стороне сквида некий хелпер который рыщет в LDAP и проверяет на принадлежность юзера группе и все такое.

На перле. Пилится все что душе угодно. Я бы сделал выдачу fdn и добавил бы тупейшее шифрование от сильно продвинутых юзверей. Ибо в текстовом редакторе поправить SourceSquidTrust.ahk и собрать своего демона с помощью SourceSquidTrust.ahk
это раз плюнуть. который допустим всегда отдает username админа ;))))

В общем предлагается довести этот конструктор до ума.

Re: На OES2 Squid интегрирован с eDir?

СообщениеДобавлено: 03 май 2011, 17:47
Андрей Тр. aka RH
Dimerson писал(а):Все ничего но как быть если юзвери одноименные в разных OU ?

Ну а как быть - разве только ввести намед конвенцию для исключения такой проблемы. Чтобы в дереве не было одноименных юзверей.

В целом, как я понимаю, скорее да, чем нет ? Просто у меня щас нет под рукой Сквида все это проверить. Насчет шифрования - я так думаю, что в большинстве случаев прикидываться админом для гугля особого резона нет, хотя .. при желании, конечно, на все можно придумать сценарий.

Re: На OES2 Squid интегрирован с eDir?

СообщениеДобавлено: 04 май 2011, 08:51
Dimerson
... ну например сделать "trusted" SourceSquidTrust который шлет в ответ на 0 какойнить спец ответ (пусть дату/время + ip и еще что-нить xorнутое на 0x55), сам SourceSquidTrust пожать неразжимаемым втупую упаковщиком. Отпугнуть 90% прямоходящих остальные уже ловтся в логах ... вопрос знатокам ldap - разве нельзя проверить через ldap членство в группе не для short name а для fdn ?

Re: На OES2 Squid интегрирован с eDir?

СообщениеДобавлено: 11 май 2011, 14:43
Доменика
Кто-нибудь знаком с этим проектом http://www.novell.chel.ru/Project/Squid ... ust.tar.gz
Да, и обсуждение этого уже на форуме было. Но реально, кажется, никто не пробовал.

Re: На OES2 Squid интегрирован с eDir?

СообщениеДобавлено: 12 май 2011, 05:38
Dimerson
Доменика писал(а):Кто-нибудь знаком с этим проектом http://www.novell.chel.ru/Project/Squid ... ust.tar.gz
Да, и обсуждение этого уже на форуме было. Но реально, кажется, никто не пробовал.
краем глаза глянул (сидя дома на больничном) как-то они там замутили и схему расширили и аттрибуты пишут в дерево ... не сложновато ?

вышеописанное (SourceSquidTrust) имхо проще.

Re: На OES2 Squid интегрирован с eDir?

СообщениеДобавлено: 12 май 2011, 18:40
Музалёв Николай
Андрей Тр. aka RH писал(а):
Dimerson писал(а):Чтобы в дереве не было одноименных юзверей.
Но тогда теряется вся прелесть Дерева!

Мы у себя пошли "в обход": используем поле Given NAme с перемапированием атрибутов в объекте LDAP Group : cn -> Given Name (я, кажется, уже говорил...)

А в поле GN я заношу строку по шаблону "CN.OU"
Поэтому все имена для сквида из ЛДАПа получаются уникальными.

Пользователи привыкли.

Re: На OES2 Squid интегрирован с eDir?

СообщениеДобавлено: 04 июл 2011, 08:18
Dimerson
кто-нибудь уже трогал в оигинале ?

у меня тут намечается кое-какое железо на предмет тестинга.
пока продумываю что и как.

autohotkey что-то не вдохновил.

сделал аналог squidtrust на C++ отдает наружу по 3 и 2 то же что и оригинальный а
вот по 1 отдает fdn cn=user.ou=context.o=context

сами понимаете если надо то отдаст и cn=user,ou=context1,o=context2 в нижнем регистре можно ксорнутый 0x55 чтоб по сети не летало открыто
посему вопрос к гуру - если допустим проверять не OU на Memeber а просто проверять обьект группа на
членов - они там в виде fdn.

и сразу отпадает необходимость борьбы с одноименными логинами в разных OU.

в общем сформулирую просьбу так :

надо бы глянутьь перловый скрит чтоб проверял группу на member и выдавал OK и не OK (что там в оригинале).
клиент если надо отдаст cn=user,o=ou ...
имя дефолт сервера
иимя дерева
имя станции
имя вендового юзверя