[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: LDAP еще раз



Вы писали Wed, 24 Sep в 21:26:37
> > > Значение в userPassword имеет вид {метод}hash. Оно может
> > > использоваться и для байдинга запроса к LDAP (чего разрешается в  "by
> > > anonymous auth"), и сторонними средствами (что делает например
> > > pam_ldap).
> >
> > Понял. Хотя все равно - забиндиться к LDAP под именем юзера не
> > получается. Т.е. генерим ldif для пользователя, login проходит
> > нормально, а вот
> > $ ldapsearch -x -W -b "uid=user,..." "(uid=user)" userPassword
> > не может забиндиться.
> > Хотя под "cn=admin, ..." можно (пароль для этого dn был создан
> > автоматом при установке slapd)
> 
> nikita@zigzag:~> ldapsearch -x -D 
> uid=nikita,ou=People,dc=lvk,dc=cs,dc=msu,dc=su -W '(uid=nikita)'
> Enter LDAP Password:
> # extended LDIF
> #
> # LDAPv3
> # base <> with scope sub
> # filter: (uid=nikita)
> # requesting: ALL
> #
> .....
> т.е. распрекрасно биндится.

У меня - нет. Пожалуйста, опиши, как устанавливал пароль для этого
юзера?

> > > > 2) соответственно, кто-то должен иметь возможность читать пароли,
> > > > что не весело. Я в общем завел пользователя, которому больше ничего
> > > > и нельзя, и через него читаю пароли и авторизуюсь, но все рано
> > > > как-то невесело. Может, есть другие варианты?
> > >
> > > Хэшируй пароли в MD% и показывай хэши кому угодно. Пусть попробуют
> > > декодировать :)
> >
> > Скажем так... libnss-ldap при установке говорит, что для возможности
> > сверки паролей надо в /etc/libnss-ldap.conf положить в открытом виде
> > пароль и юзернейм, от имено которого libnss-ldap будет биндиться к ldap
> > для того, чтоб проверить пароь пользователя, который пытается
> > логиниться. Соответственно, этот самый passworder должен иметь доступ к
> > userPassword на чтение, а сам пароль passworder'a должен лежать в
> > открытом виде в этом файле.
> 
> Ну и пусть. Да хоть вообще анонимусу разрешай читать userPassword. Не вижу 
> никакого нарушения защиты в том, что кто-то заполучит MD5 хэш пароля 
> пользователя.

Если б это было неважно, никакого /etc/shadow не существовало бы. 

> > > > pam-ldap не использую и все еще не понял, зачем он нужен - кроме
> > > > как алтернативный вариант, без исправления nsswitch, но с
> > > > исправлением pam.d/login на предмет достаточности
> > > > pam_ldap-аутентификации.
> > >
> > > Насколько я понимаю, nsswitch не занимается аутентификацией вовсе.
> > > Т.е. не даёт доступа до пароля.
> >
> > Ну тем не менее именно так я добился нормального входа в систему
> > пользователей, которые есть только в LDAP и нет в passwd
> 
> Видимо, какой-то вариант fallback-а.

Нет.
man nsswitch.conf говорит, что когда в файле находится нечто вроде

something: method1 method2

То попытка сделать something выполняется при помощи
/lib/libnss_method1.so, потом пытается /lib/libnss_method2.so и так
далее. Соответственно, password: ldap files, то поверка пароля идет при
помощи /lib/libnss_ldap.so первым делом. А тот умеет биндиться (как
указано в /etc/libnss-ldap.conf) и возвращать пароль пользователя - так
что login имеет возможность его сверить с введенным.



Reply to: