Re: LDAP еще раз
> Вы писали Wed, 24 Sep в 16:45:10
>
> > > 1) при переносе пользователей в LDAP в атрибуте userPassword
> > > хранится unix-пароль, а не LDAP-пароль - иначе авторизовать
> > > пользователя логин не может. В чем тогда глубинный смысл разрешения
> > > "by anonymous auth", если авторизоваться against этих паролей все
> > > равно не получится?
> >
> > Значение в 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 хэш пароля
пользователя.
>
> > > 3) apt-get install libnss-ldap и исправление nsswitch.conf на
> > > предмет passwd: files ldap дает возможность авторизации юзерам и из
> > > LDAP, и из /etc/passwd - но с одной странностью.
> > > LDAP-юзер имеет промпт в баше "I have no name!@host:~$" - что
> > > странно. Куда он теряет имя?
> >
> > Похоже, что nscd не стоит, а прямого доступ к LDAP для пользователя
> > обламывается (либо нет доступа на чтение в /etc/libnss-ldap.conf,
> > либо облам авторизации на LDAP, либо ещё что-то)..
>
> nscd не стоит, доступа на чтение к /etc/libnss-ldap.conf нет по
> причинам, указанным выше.
Ну а тогда что ты хочешь? У программ нет никакой возможность прочитать
информацию, они и не читают.
> А при чем тут авторизация на LDAP? забиндиться как user все равно
> нельзя - т.к. в userPassword у dn: uid=user, dc=mumidol записан
> UNIX-пароль?
В userPassword должен быть записан MD5 пароля.
> > Кстати, я столкнулся с тем, что для некоторых использований (вроде
> > finger) nscd не помогает - пользователь всё равно должен иметь права
> > самостоятельно получить информацию из LDAP.
>
> Опять же - как он тогда забиндится?
Да хоть анонимно.
> > > pam-ldap не использую и все еще не понял, зачем он нужен - кроме
> > > как алтернативный вариант, без исправления nsswitch, но с
> > > исправлением pam.d/login на предмет достаточности
> > > pam_ldap-аутентификации.
> >
> > Насколько я понимаю, nsswitch не занимается аутентификацией вовсе.
> > Т.е. не даёт доступа до пароля.
>
> Ну тем не менее именно так я добился нормального входа в систему
> пользователей, которые есть только в LDAP и нет в passwd
Видимо, какой-то вариант fallback-а.
Reply to: