Авторизация через Novell LDAP

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

Сообщение res » 24 фев 2010, 19:13

Народ!
Пытаюсь настроить авторизацию FreeBSD в eDir.
Перечитал массу манов и тидов, настройки сделал, но не работает.
Причем и ошибок то никаких не пишет: после ввода пароля пишет "Login incorrect" и все. А почему он инкоррет - не ясно.
Тесты с ldapsearch проходят на ура, ssl настроил.
Что еще надо не могу понять.

Судя по ошибке ковырять надо настройки pam_ldap и nss_ldap, но что там конкретно ковырять надо не знаю.
Как такового руководства именно по связке FreeBSD и eDir не нашел. Видимо есть какие-то нюансы. Можно было бы что-то нарыть, если бы ошибки были вразумительные, а так ...

Если у кого работает эта связка, поделитесь опытом, плз.
res
 
Сообщения: 63
Зарегистрирован: 27 ноя 2006, 15:12
Откуда: Мурманск

Сообщение Михаил Григорьев » 24 фев 2010, 19:28

res писал(а):Если у кого работает эта связка, поделитесь опытом, плз.


Связка работает, если приложить немного усилий по чтению доков. Хотя их довольно мало :( Как правило "читать" приходится исходники.

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

Сообщение Антон Фридрих » 25 фев 2010, 06:06

Посмотрите в сторону универсального пароля и политик пароля. Никсовые сервисы увы к этому очень чувствительны.
Аватара пользователя
Антон Фридрих
 
Сообщения: 606
Зарегистрирован: 09 фев 2006, 07:55
Откуда: Красноярск

Сообщение res » 25 фев 2010, 11:21

Григорьев Михаил писал(а):
Связка работает, если приложить немного усилий по чтению доков. Хотя их довольно мало :( Как правило "читать" приходится исходники.

Что конкретно хотите настроить на freebsd?
Авторизацию пользователей через eDir?
Squid с авторизацией пользователей через eDdir?
или еще что?


Пока хочу авторизацию пользователей в eDir, в дальнейшем планирую увязать postfix, чтоб брал почтовые ящики и пользователей из eDir, но это потом.
res
 
Сообщения: 63
Зарегистрирован: 27 ноя 2006, 15:12
Откуда: Мурманск

Сообщение Михаил Григорьев » 25 фев 2010, 14:04

res писал(а):Пока хочу авторизацию пользователей в eDir, в дальнейшем планирую увязать postfix, чтоб брал почтовые ящики и пользователей из eDir, но это потом.


Для начала, как и сказал Антон Фридрих, нужно организовать в eDir использование универсального пароля. Соответствующая документация имеется на сайте Novell. Для проверки работоспособности ун. паролей я использовал вот эту утилитку.

Потом на FreeBSD нужно настроить подсистему pam_ldap и nss_ldap.
Тут все довольно просто:
редактируем файл конфига pam_ldap - /usr/local/etc/ldap.conf
редактируем файл конфига nss_ldap - /usr/local/etc/nss_ldap.conf
редактируем файл конфига name-service switch - /etc/nsswitch.conf
редактируем файлы подсистемы pam:
/etc/pam.d/system
/etc/pam.d/sshd
Для автоматического создания юзерских хомок на freebsd нужно будет поставить модуль pam_mkhomedir, в портах он есть + прописать его на session.

На opennet.ru есть куча статей по настройке этих подсистем, на вскидку сразу нашел вот эту статью о eDir и Linux
Последний раз редактировалось Михаил Григорьев 25 фев 2010, 19:06, всего редактировалось 1 раз.
Аватара пользователя
Михаил Григорьев
 
Сообщения: 1462
Зарегистрирован: 04 июн 2002, 12:22
Откуда: Челябинск

Сообщение res » 25 фев 2010, 14:53

Григорьев Михаил писал(а):Для начала, как и сказал Антон Фридрих, нужно организовать в eDir использование универсального пароля. Соответствующая документация имеется на сайте Novell. Для проверки работоспособности ун. паролей я использовал вот эту утилитку.


Не знал про универсальные пароли. У меня в сети они не используются. Придется внедрять.
По остальным пунктам - все сделано уже.
Спасибо за ответ, отпишусь по результатам.
res
 
Сообщения: 63
Зарегистрирован: 27 ноя 2006, 15:12
Откуда: Мурманск

Сообщение Михаил Григорьев » 25 фев 2010, 15:10

res писал(а):По остальным пунктам - все сделано уже.
Спасибо за ответ, отпишусь по результатам.


Если все сделано, то тогда в чем же проблема?

getent passwd отрабатывает, список пользователей eDir выводит?
id логин_пользователя_из_eDir отрабатывает?
простейший ldapsearch по eDir с параметрами из nss_ldap.conf показыввает пользователей?
Аватара пользователя
Михаил Григорьев
 
Сообщения: 1462
Зарегистрирован: 04 июн 2002, 12:22
Откуда: Челябинск

Сообщение res » 25 фев 2010, 17:13

Григорьев Михаил писал(а):
Если все сделано, то тогда в чем же проблема?
getent passwd отрабатывает, список пользователей eDir выводит?
id логин_пользователя_из_eDir отрабатывает?
простейший ldapsearch по eDir с параметрами из nss_ldap.conf показыввает пользователей?


getent показывает пользователей из еДир, id тоже отрабатывает и ldapsearch тоже.

Но залогиниться пользователем из еДир не могу.
res
 
Сообщения: 63
Зарегистрирован: 27 ноя 2006, 15:12
Откуда: Мурманск

Сообщение Михаил Григорьев » 25 фев 2010, 17:43

res писал(а):getent показывает пользователей из еДир, id тоже отрабатывает и ldapsearch тоже.


Это оч. хорошо :)

res писал(а):Но залогиниться пользователем из еДир не могу.


Здесь бы помогла отладка, у меня мысль пока одна - скорее всего pam_ldap и nss_ldap запрашивают в eDir у пользователя определенные аттрибуты, такие как uidNumber, gidNumber, loginShell, homeDirectory. Если этих аттрибутов нет, то и пользователя не пускает. Правда нужно точно быть увереным что в файлах /etc/pam.d/... все правильно прописано.

В файл nss_ldap.conf можно написать дефолтные значения этих аттрибутов если они вдруг не будут найдены у пользователя:

nss_default_attribute_value gidNumber 1000
nss_default_attribute_value loginShell /sbin/nologin
nss_default_attribute_value uidNumber 1000
nss_default_attribute_value homeDirectory /tmp

У друга с АД это помогло.

Еще проверьте в eDir в объекте "LDAP Group" на вкладке "Attribute Map" есть ли нужные соответствия аттрибутов.
Аватара пользователя
Михаил Григорьев
 
Сообщения: 1462
Зарегистрирован: 04 июн 2002, 12:22
Откуда: Челябинск

Сообщение res » 25 фев 2010, 17:55

Дефолтные атрибуты прописал - не помогло.
Вот мой файл /etc/pamd/system

# auth
auth sufficient pam_opie.so no_warn no_fake_prompts
auth requisite pam_opieaccess.so no_warn allow_local
auth required pam_unix.so no_warn try_first_pass nullok
auth sufficient /usr/local/lib/pam_ldap.so try_first_pass

# account
account required pam_login_access.so
account required pam_unix.so
account sufficient /usr/local/lib/pam_ldap.so

# session
session required pam_lastlog.so no_fail
session required /usr/local/lib/pam_ldap.so
session required /usr/local/lib/pam_mkhomedir.so skel=/etc/skel umask=0077

# password
password required pam_unix.so no_warn try_first_pass
password sufficient /usr/local/lib/pam_ldap.so use_authok

В Attribute Mapах этих значений нет.
Сейчас добавлю, посмотрим что получится.
res
 
Сообщения: 63
Зарегистрирован: 27 ноя 2006, 15:12
Откуда: Мурманск

Сообщение res » 25 фев 2010, 18:36

Все атрибуты добавил в объект LDAP Groups.
Пока все без изменений.
Странно, почему этих атрибутов не было по умолчанию.
res
 
Сообщения: 63
Зарегистрирован: 27 ноя 2006, 15:12
Откуда: Мурманск

Сообщение Михаил Григорьев » 25 фев 2010, 19:04

res писал(а):Все атрибуты добавил в объект LDAP Groups.
Пока все без изменений.
Странно, почему этих атрибутов не было по умолчанию.


ldap сервер рестартанули?

unload nldap.nlm
load nldap.nlm

И еще /etc/pam.d/system немного неверно написано, нужно

# auth
auth sufficient pam_opie.so no_warn no_fake_prompts
auth requisite pam_opieaccess.so no_warn allow_local
auth sufficient pam_unix.so no_warn try_first_pass nullok
auth required /usr/local/lib/pam_ldap.so no_warn try_first_pass

# account
account required pam_login_access.so
account sufficient pam_unix.so
account required /usr/local/lib/pam_ldap.so

# session
session required pam_lastlog.so no_fail
session required /usr/local/lib/pam_mkhomedir.so skel=/etc/skel umask=0077

# password
password sufficient pam_unix.so no_warn try_first_pass
password required /usr/local/lib/pam_ldap.so no_warn use_authok


А у пользователя на вкладке UNIX Profile стоят значения?

Результат команды с freebsd напишите:

ldapsearch -LL -H ldap://edir_host -b "o=MyORG" -w Admin_PASSWORD -x -D "cn=Admin,o=MyORG" "(cn=Какой_нибудь_юзер)"
Аватара пользователя
Михаил Григорьев
 
Сообщения: 1462
Зарегистрирован: 04 июн 2002, 12:22
Откуда: Челябинск

Сообщение res » 26 фев 2010, 10:16

Всем привет!
Продолжим наш разговор.

LDAP сервис рестартую, после каждого изменения конфигурации в объектах лдап сервера и группы.

У нужных пользователей и групп поля UNIX Profile заполнены.
Кстати getent выдает всех пользователей, да и в MC их тоже видно.

результаты команды ldapsearch:

Код: Выделить всё
version: 1

dn: cn=testuser,ou=OA,o=MSCB
loginShell: /bin/csh
homeDirectory: /usr/home/testuser
gecos:
gidNumber: 5000
uidNumber: 10003
uid: testuser
uid: uniqueID
messageServer: cn=MSCB,o=MSCB
title:: 0KHQvtGC0YDRg9C00L3QuNC60L7RgtC00LXQu9CwINCw0LLRgtC+0LzQsNGC0LjQt9Cw0Y
bQuNC4
sn: testuser
ou:: 0J7RgtC00LXQuyDQsNCy0YLQvtC80LDRgtC40LfQsNGG0LjQuA==
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: Person
objectClass: Top
objectClass: ndsLoginProperties
objectClass: posixAccount
objectClass: uamPosixUser
groupMembership: cn=PB_ADMIN,ou=GROUPS,o=MSCB
groupMembership: cn=unixuser,ou=GROUPS,o=MSCB
cn: testuser
cn: CN



Правда пришлось ее немного видоизменить, т.к. настроено с использованием SSL и с простой аутентификацией, т.е. анонимно.
LDAP server настроен с использованием proxy user.
Моя команда выглядит так:
ldapsearch -LL -Z -x "cn=testuser"
res
 
Сообщения: 63
Зарегистрирован: 27 ноя 2006, 15:12
Откуда: Мурманск

Сообщение res » 26 фев 2010, 10:29

Григорьев Михаил
Заработало :-) поправил /etc/pam.d/system как вы написали и все встало на свои места.

А я по дурости специально не изменял значения для pam_unix.so, т.к. они стояли по умолчанию. Сейчас вот мануал почитал по параметрам в этом файле, прояснилось в голове немного.
res
 
Сообщения: 63
Зарегистрирован: 27 ноя 2006, 15:12
Откуда: Мурманск

Сообщение Михаил Григорьев » 26 фев 2010, 10:53

res писал(а):Григорьев Михаил
Заработало :-) поправил /etc/pam.d/system как вы написали и все встало на свои места.


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

Пред.След.

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

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

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