Страница 2 из 3

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

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

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

СообщениеДобавлено: 24 фев 2010, 19:28
Михаил Григорьев
res писал(а):Если у кого работает эта связка, поделитесь опытом, плз.


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

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

СообщениеДобавлено: 25 фев 2010, 06:06
Антон Фридрих
Посмотрите в сторону универсального пароля и политик пароля. Никсовые сервисы увы к этому очень чувствительны.

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

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


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

СообщениеДобавлено: 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, 14:53
res
Григорьев Михаил писал(а):Для начала, как и сказал Антон Фридрих, нужно организовать в eDir использование универсального пароля. Соответствующая документация имеется на сайте Novell. Для проверки работоспособности ун. паролей я использовал вот эту утилитку.


Не знал про универсальные пароли. У меня в сети они не используются. Придется внедрять.
По остальным пунктам - все сделано уже.
Спасибо за ответ, отпишусь по результатам.

СообщениеДобавлено: 25 фев 2010, 15:10
Михаил Григорьев
res писал(а):По остальным пунктам - все сделано уже.
Спасибо за ответ, отпишусь по результатам.


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

getent passwd отрабатывает, список пользователей eDir выводит?
id логин_пользователя_из_eDir отрабатывает?
простейший ldapsearch по eDir с параметрами из nss_ldap.conf показыввает пользователей?

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


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

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

СообщениеДобавлено: 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" есть ли нужные соответствия аттрибутов.

СообщениеДобавлено: 25 фев 2010, 17:55
res
Дефолтные атрибуты прописал - не помогло.
Вот мой файл /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ах этих значений нет.
Сейчас добавлю, посмотрим что получится.

СообщениеДобавлено: 25 фев 2010, 18:36
res
Все атрибуты добавил в объект LDAP Groups.
Пока все без изменений.
Странно, почему этих атрибутов не было по умолчанию.

СообщениеДобавлено: 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=Какой_нибудь_юзер)"

СообщениеДобавлено: 26 фев 2010, 10:16
res
Всем привет!
Продолжим наш разговор.

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"

СообщениеДобавлено: 26 фев 2010, 10:29
res
Григорьев Михаил
Заработало :-) поправил /etc/pam.d/system как вы написали и все встало на свои места.

А я по дурости специально не изменял значения для pam_unix.so, т.к. они стояли по умолчанию. Сейчас вот мануал почитал по параметрам в этом файле, прояснилось в голове немного.

СообщениеДобавлено: 26 фев 2010, 10:53
Михаил Григорьев
res писал(а):Григорьев Михаил
Заработало :-) поправил /etc/pam.d/system как вы написали и все встало на свои места.


Ну вот и чудно :)