squid + NDS (не вопрос, а просьба о помощи)

Обсуждение технических вопросов по продуктам Novell под Linux, а также *nix систем

про легко

Сообщение skoltogyan » 24 май 2005, 18:41

раздать IP по VPN -ам для user-ов от
10.4.1.2 до 10.4.2.255
с одного pptpd сервера
и ничего не правили.... ?
skoltogyan
 
Сообщения: 2037
Зарегистрирован: 12 июл 2002, 19:39
Откуда: Украина, Донецк

Re: В том и круть BM

Сообщение Сергей Дубров » 25 май 2005, 06:46

skoltogyan писал(а):Подымать РАДИУС и предоставлять конкретному пользователю по предоставлению паролдя, его личный IP.. а squid же на базе IP будет давать доступ..

Эта идеология обламывается, если пользователь идёт с многопользовательской системы (виндовые терминальные сервера, любой nix), т.е., когда ip != user. В работе моего студента эта проблема решена: написан некий функциональный эквивалент clntrust, под винду и линукс, выход наружу (squid) разрешается (или запрещается) на основании ИМЕНИ пользователя в дереве (e-dir, доступ по LDAPS).
Аватара пользователя
Сергей Дубров
 
Сообщения: 2096
Зарегистрирован: 05 июн 2002, 06:07
Откуда: Новосибирск, ин-т ядерной физики СО РАН

Re: про легко

Сообщение Михаил Григорьев » 25 май 2005, 08:58

skoltogyan писал(а):раздать IP по VPN -ам для user-ов от
10.4.1.2 до 10.4.2.255
с одного pptpd сервера
и ничего не правили.... ?


на MPD накладывается патчь и всё, была бы поставлена задача и решение всё равно будет найдено, это лишь вопрос времени и способностей человека

skoltogyan писал(а):Подымать РАДИУС и предоставлять конкретному пользователю по предоставлению паролдя, его личный IP.. а squid же на базе IP будет давать доступ..


А сквиду и вообще в этом случае не нужно писать какие то acl об ограничении на IP, у меня написана одна единственная acl'ка что разрешено ходить только с приватной сети и все, а уже программа разргебания логов ставит сопоставления IP <-> Имя юзера.

Сергей Дубров писал(а):
skoltogyan писал(а):Подымать РАДИУС и предоставлять конкретному пользователю по предоставлению паролдя, его личный IP.. а squid же на базе IP будет давать доступ..

Эта идеология обламывается, если пользователь идёт с многопользовательской системы (виндовые терминальные сервера, любой nix), т.е., когда ip != user.


Как раз таки и не обламывается и еще как работате, если мы сопоставим логину конкретный IP который будет ему присваиваться пусть хоть он из-за океана установить VPN соединение с сервером.

Сергей Дубров писал(а):В работе моего студента эта проблема решена: написан некий функциональный эквивалент clntrust, под винду и линукс, выход наружу (squid) разрешается (или запрещается) на основании ИМЕНИ пользователя в дереве (e-dir, доступ по LDAPS).


Если это опен сорс решение то можно поглядеть исходники? или программу готовую, а то Сергей я 2-й раз уже слышу о таком модуле НО в глаза его не видел, хоть и просил его на тесты предоставить.
Аватара пользователя
Михаил Григорьев
 
Сообщения: 1462
Зарегистрирован: 04 июн 2002, 12:22
Откуда: Челябинск

Re: про легко

Сообщение Сергей Дубров » 25 май 2005, 09:54

Григорьев Михаил писал(а):
Сергей Дубров писал(а):
skoltogyan писал(а):Подымать РАДИУС и предоставлять конкретному пользователю по предоставлению паролдя, его личный IP.. а squid же на базе IP будет давать доступ..

Эта идеология обламывается, если пользователь идёт с многопользовательской системы (виндовые терминальные сервера, любой nix), т.е., когда ip != user.


Как раз таки и не обламывается и еще как работате, если мы сопоставим логину конкретный IP который будет ему присваиваться пусть хоть он из-за океана установить VPN соединение с сервером.

Обламывается, ты не понял - если с одного терминального сервера у меня пойдут наружу двадцать юзеров - я что, должен буду все двадцать персональных IP на один терминальный сервер назначить? А если один и тот же юзер с двух и более машин _одновременно_ иницирует несколько сессий - кому сопоставленный логину IP отдадим? Во...

Григорьев Михаил писал(а):
Сергей Дубров писал(а):В работе моего студента эта проблема решена: написан некий функциональный эквивалент clntrust, под винду и линукс, выход наружу (squid) разрешается (или запрещается) на основании ИМЕНИ пользователя в дереве (e-dir, доступ по LDAPS).


Если это опен сорс решение то можно поглядеть исходники? или программу готовую, а то Сергей я 2-й раз уже слышу о таком модуле НО в глаза его не видел, хоть и просил его на тесты предоставить.

Будет ли это open source - вопрос не решенный. Через две недели студент по этой работе защищается (остаётся у нас в аспирантуре), тогда и вопросы ему можно будет задавать. А сейчас ему не до того. Хотя система в первом приближении уже работает (с виндой были заморочки).
Аватара пользователя
Сергей Дубров
 
Сообщения: 2096
Зарегистрирован: 05 июн 2002, 06:07
Откуда: Новосибирск, ин-т ядерной физики СО РАН

Re: про легко

Сообщение Михаил Григорьев » 25 май 2005, 10:08

Сергей Дубров писал(а):
Григорьев Михаил писал(а):
Сергей Дубров писал(а):
skoltogyan писал(а):Подымать РАДИУС и предоставлять конкретному пользователю по предоставлению паролдя, его личный IP.. а squid же на базе IP будет давать доступ..

Эта идеология обламывается, если пользователь идёт с многопользовательской системы (виндовые терминальные сервера, любой nix), т.е., когда ip != user.


Как раз таки и не обламывается и еще как работате, если мы сопоставим логину конкретный IP который будет ему присваиваться пусть хоть он из-за океана установить VPN соединение с сервером.

Обламывается, ты не понял - если с одного терминального сервера у меня пойдут наружу двадцать юзеров - я что, должен буду все двадцать персональных IP на один терминальный сервер назначить? А если один и тот же юзер с двух и более машин _одновременно_ иницирует несколько сессий - кому сопоставленный логину IP отдадим? Во...


Если использовать связку FreeRADIUS+MPD, то с винды устанавливается VPN туннель до сервера VPN и по нему все летит наружу (в инет), при конекте к серверу, клиент получает некий IP. В чём проблема то не понятно, если с терминала будеть хоть 100 соединений под разными логинами, IP то разные будут у клиентов. Другое дело что в моей связке если установить 2-ое соединение с одним и тем же логином то на 2-м соединении по тунелю бегать ничего не будет, в силу понятных причин, IP то уже занят этот... Но и тут есть решение проблеммы... рвём 1-е соединение и работаем по 2-му.

Сергей Дубров писал(а):
Григорьев Михаил писал(а):
Сергей Дубров писал(а):В работе моего студента эта проблема решена: написан некий функциональный эквивалент clntrust, под винду и линукс, выход наружу (squid) разрешается (или запрещается) на основании ИМЕНИ пользователя в дереве (e-dir, доступ по LDAPS).


Если это опен сорс решение то можно поглядеть исходники? или программу готовую, а то Сергей я 2-й раз уже слышу о таком модуле НО в глаза его не видел, хоть и просил его на тесты предоставить.

Будет ли это open source - вопрос не решенный. Через две недели студент по этой работе защищается (остаётся у нас в аспирантуре), тогда и вопросы ему можно будет задавать. А сейчас ему не до того. Хотя система в первом приближении уже работает (с виндой были заморочки).


Тогда буду ждать новостей !!!! С нетерпеньем. Опен сорс ИМХО всяко лучше, если студент выберет этот путь, то он ничуть не прогадает !!!!
Аватара пользователя
Михаил Григорьев
 
Сообщения: 1462
Зарегистрирован: 04 июн 2002, 12:22
Откуда: Челябинск

Сообщение Музалёв Николай » 25 май 2005, 12:20

в порядке гы-гы...:
[2 недели]...вопросы ему можно будет задавать

А если задать вопрос себе, не дожидаясь?

В работе моего студента...

Если работа была учебной, то что по поводу авторских прав стузиозиса говорит нам современный устав ВШколы РФ?
armoracia rusticana (lat.), "блины" и "фиги" всех видов, а также смайлики - крайне не желательны !
Музалёв Николай
 
Сообщения: 3034
Зарегистрирован: 04 июн 2002, 19:58
Откуда: Беларусь. МИНСК.

Сообщение Константин Ошмян » 25 май 2005, 13:28

Музалёв Николай писал(а):Если работа была учебной, то что по поводу авторских прав стузиозиса говорит нам современный устав ВШколы РФ?
Позвольте встрять со своими скромными познаниями в области юриспруденции. :)

Думаю, что устав ВШ этот вопрос не оговаривает, а даже если что-то и упоминает, то всё равно данный вопрос регулируется другим вполне конкретным законом - "Об авторском праве и смежных правах". Так вот, в последнем однозначно оговаривается, что владельцем авторских прав на произведение (в данном случае - программу) является её автор, точка. Исключения могут быть лишь на смежные права (право использования, публикации в том или ином виде, модификации, проката и т.д.) в случае, когда произведение создано в рамках "производственного задания" (например, заказанный архитектору проект) - тогда часть из этих смежных прав (в частности, право использования) остаётся заказчику; остальные же (в частности, право публикации) остаются за автором, если в самом задании не было оговорено иначе.

Т.е. как ни крути, а выставлять или нет в Public Domain своё творение - решать студенту. Даже если рассматривать дипломную работу как "производственное задание" (что ещё надо доказывать, т.к. для этого данное задание должно было быть оформлено документально в виде каког-то договора), то для того, чтобы распоряжаться готовым продуктом мог Сергей Дубров данный факт должен был быть явно отражён в этом договоре.
Аватара пользователя
Константин Ошмян
 
Сообщения: 991
Зарегистрирован: 13 авг 2002, 21:36
Откуда: Рига

функциональный эквивалент clntrust

Сообщение stas » 10 ноя 2005, 07:37

Сергей Дубров писал(а):Будет ли это open source - вопрос не решенный. Через две недели студент по этой работе защищается (остаётся у нас в аспирантуре), тогда и вопросы ему можно будет задавать. А сейчас ему не до того. Хотя система в первом приближении уже работает (с виндой были заморочки).


Можно поинтересоваться - вопрос уже решили?
Аватара пользователя
stas
 
Сообщения: 133
Зарегистрирован: 23 июл 2003, 08:25
Откуда: Новосибирск

Сообщение Vladimir » 27 июл 2006, 18:06

Здравствуйте.

Поднял nldap на 389 порту, включил "allow clear text password" в свойствах LDAP-группы.

ldspsearch без проблем видит все записи.
Но после коннекта к LDAP посредством команды
./squid_ldap_auth -b "ou=MyOU,o=MyORG" -u "cn" -f "(&(cn=%s)(objectClass=Person))" -s sub -h ServerIP:389

и ввода данных вида
ValidUserName ValidPassword

приходит ответ
ERR Succes

Как я понимаю, возвращаемое значение должно быть равно "OK".

Если вместо валидных данных ввести две произвольных строки, то результат получается тот же. Если ввести только UserName, то возвращается только ERR.
Пробовал играть с ключём -v, изменять параметры поиска(-f) и базовый dn(-b), но всё безрезультатно.

http://support.novell.com и рассылка squida об этом молчат.

Если кто-нибудь сталкивался с аналогичной проблемой - помогите.
Vladimir
 
Сообщения: 8
Зарегистрирован: 27 июл 2006, 17:44

Сообщение PavelK » 28 июл 2006, 13:06

я не описал, что для работы системы необходимо расширение схемы eDirectory, так как на исследование темы времени было мало, то я не нашел прграммного способа расширения схемы через aux класс и у меня не было расширять схему для несколько десятков объектов в ручную, я просто расширял базовую схему (как НЕ рекондует Novell), недовно на форуме мне подсказали как можно расширять схему через aux класс программно - я попробую это сделать и если заработает отдам протестировать модифицированную систему - тем кто выразил желание протестировать, к моему сожалению придется подождать дня четыре
PavelK
 
Сообщения: 3
Зарегистрирован: 27 июл 2006, 12:00
Откуда: Новомосковск

Сообщение Vladimir » 14 авг 2006, 16:58

Спасибо, с предыдущей проблемой разобрался.
Мучаю теперь digest_ldap_auth.


Григорьев Михаил писал(а):ООО....
В 3-й версии сквида есть хелпер для ldap + digest, я только что качнул, по идее его можно прикрутить к 2.5 версии...

Ща прикрутим.... Надеюсь что прикручу.... :))))


У меня лично пока не получается (

Не подскажете, что в этой строке может быть написано неправильно?

./digest_ldap_auth -b "ou=MyOU,o=MyO" -A "userPassword" -D "cn=User,ou=MyO,o=MyO" -w "valid password" -u "cn" -s "sub" -F "(&(&(objectClass=person)(cn=%s))(groupMembership=cn=Group1,ou=MyOU,o=MyO))" -H ldaps://172.28.x.x -p 636


Запускаю ==>

Username Password

ERR
Vladimir
 
Сообщения: 8
Зарегистрирован: 27 июл 2006, 17:44

Сообщение Михаил Григорьев » 15 авг 2006, 05:16

Vladimir писал(а):Не подскажете, что в этой строке может быть написано неправильно?

./digest_ldap_auth -b "ou=MyOU,o=MyO" -A "userPassword" -D "cn=User,ou=MyO,o=MyO" -w "valid password" -u "cn" -s "sub" -F "(&(&(objectClass=person)(cn=%s))(groupMembership=cn=Group1,ou=MyOU,o=MyO))" -H ldaps://172.28.x.x -p 636


Запускаю ==>

Username Password

ERR


Начинать нужно с червя.... потом плавно переходим на мотыль, ну а потом другие способы ловли...

Сорри за каламбур

Теперь по делу:

Начинаем с малого

Код: Выделить всё
squid.conf

Без групп:

auth_param basic program /usr/local/libexec/squid/squid_ldap_auth -b "o=SKBKontur" -h 192.168.100.3 -f "(&(cn=%s)(objectClass=Person))" -s sub

С группами:

auth_param basic program /usr/local/libexec/squid/squid_ldap_auth -b "o=SKBKontur" -h 192.168.100.3 -D cn=Admin,o=SKBKontur -w trax -f "(&(cn=%s)(objectClass=Person)(securityequals=cn=Squid,o=SKBKontur))" -s sub
или
auth_param basic program /usr/local/libexec/squid/squid_ldap_auth -b "o=SKBKontur" -h 192.168.100.3 -D cn=Admin,o=SKBKontur -w trax -f "(&(&(cn=%s)(objectClass=Person))(securityequals=cn=Squid,o=SKBKontur))" -s sub
или
auth_param basic program /usr/local/libexec/squid/squid_ldap_auth -b "o=SKBKontur" -h 192.168.100.3 -D cn=Admin,o=SKBKontur -w trax -f "(&(cn=%s)(objectClass=Person)(|(securityequals=cn=Squid,o=SKBKontur)))" -s sub
или много групп
auth_param basic program /usr/local/libexec/squid/squid_ldap_auth -b "o=SKBKontur" -h 192.168.100.3 -D cn=Admin,o=SKBKontur -w trax -f "(&(cn=%s)(objectClass=Person)(|(securityequals=cn=Squid,o=SKBKontur)(securityequals=cn=Squid1,o=SKBKontur)(securityequals=cn=Squid2,o=SKBKontur)))" -s sub

Пишем ACL'ки:

acl ldap proxy_auth REQUIRED
acl ya dstdom_regex -i ya
acl vpn_kontur_src src  192.168.201.0/255.255.255.0

http_access allow vpn_kontur_src !ya
http_access allow ldap ya


C digest_ldap_auth по идее аналогия такая же....

Уточнение, я проверяю членство по аттрибуту securityequals
Аватара пользователя
Михаил Григорьев
 
Сообщения: 1462
Зарегистрирован: 04 июн 2002, 12:22
Откуда: Челябинск

Сообщение Vladimir » 15 авг 2006, 12:41

Григорьев Михаил писал(а):Начинать нужно с червя.... потом плавно переходим на мотыль, ну а потом другие способы ловли...

Начинаем с малого


Да нет, с малым я разобрался ))
С помощью squid_ldap_auth аутентификацию по группам через SSL я настроил. Работает как часы.

Проблема в том, что пароли передаются практически в clear text(закодированные base64, если быть точным, но любым нормальным сниффером раскалываются без проблем).

Посему нужен digest_ldap_auth. Синтаксис у него практически идентичный, только вот принцип работы немного другой.
Ему нужен ещё параметр -A. Он, как я понимаю, указывает на атрибут, в котором хранится пароль пользователя(в clear text или в зашифрованном виде; если пароль зашифрован, то тогда надо использовать параметр -e).
Вероятно, этот атрибут для NDS = userPassword(для AD это другой атрибут).
Но я ничего в этом поле не вижу ни через браузер Jexplorer ни через утилиту ldapsearch. При этом использую я как ldap, так и ldaps. Результат одинаков в обоих случаях.


Из всего этого вытекают следующие вопросы:
1.В каком атрибуте через LDAP NDS отображает пароль пользователя?
2.Почему я не могу видеть его содержимое(хэша пароля там тоже нет), хотя права на просмотр всего дерева, а также на удаление, изменение и создание объектов мне выдали?
3.С помощью какого алгоритма NDS шифрует пароли(если шифрует)?
4.Есть ли у меня ошибка в базовом синтаксисе digest_ldap_auth(в кач-ве шаблона взят работающий squid_ldap_auth)?


Как я понял, вы либо пытались, либо настроили аутентификацию с помощью digest_ldap_auth. Если это возможно, опишите трудности с которыми вы столкнулись и как с ними совладали(если совладали).

Спасибо :)
Vladimir
 
Сообщения: 8
Зарегистрирован: 27 июл 2006, 17:44

Сообщение Vladimir » 17 авг 2006, 17:43

Ага! Кажется, я начинаю понимать в чём тут дело...
Кто-нибудь знает в каком атрибуте NDS хранит хэш пароля пользователя?
Vladimir
 
Сообщения: 8
Зарегистрирован: 27 июл 2006, 17:44

Сообщение Михаил Григорьев » 17 авг 2006, 19:51

Vladimir писал(а):Ага! Кажется, я начинаю понимать в чём тут дело...
Кто-нибудь знает в каком атрибуте NDS хранит хэш пароля пользователя?


Ни в каком, пароль прочитать нельзя ни в каком его виде!
Аватара пользователя
Михаил Григорьев
 
Сообщения: 1462
Зарегистрирован: 04 июн 2002, 12:22
Откуда: Челябинск

Пред.След.

Вернуться в *nix

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16

cron