gentoo.ru
ldap_auth@conference.gentoo.ru
Вторник, 21 апреля 2009< ^ >
Конфигурация комнаты

GMT+4
[09:25:59] anarchist вошёл(а) в комнату
[10:37:41] samyvolosaty вошёл(а) в комнату
[10:47:30] <anarchist> Собственно, давай разбираться: что и почему у тебя не работает.
[10:47:49] <anarchist> Ты логирование настроил? Что вообще сделано?
[11:02:09] <samyvolosaty> в общем так. логирование у меня идёт, я тут немного поковырялся ещё что то откатил на то что было в slap.conf.example
что сейчас работает:
ldapsearch -x -D "cn=admin,dc=cluster,dc=net" -W
работает на сервере и на клиенте - выдаёт список.
после ковыряния (ещё нашел http://www.gentoo.org/doc/en/ldap-howto.xml)
[11:02:43] <samyvolosaty> getent passwd
выдаёт список пользователей
[11:04:06] <samyvolosaty> список с /etc/passwd + c ldap
сейчас пытаюсь разобраться почему с ldapнутым пользователем не заходит.
[11:04:53] <anarchist> Помню, на одном из этапов наблюдал нечто похожее...
[11:04:54] <samyvolosaty> а вот в luma я списка не вижу, к сожалению
[11:05:39] <anarchist> После полноразмерной правки скриптов в /etc/pam.d/ оно прекратилось. В смысле: стал показываться список пользователей только из LDAP'а.
[11:06:09] <anarchist> Ты в luma к LDAP-серверу подключиться смог?
[11:06:33] <anarchist> Я думаю, здесь надо:
1. Настроить в меру приятного клиента;
[11:06:38] <anarchist> 2. Логирование.
[11:06:53] <anarchist> И уже после этого по логам смотреть где чего не хватает.
[11:07:07] <anarchist> Ты какие скрипты в /etc/pam.d/ правил? И как?
[11:08:17] <anarchist> pam_ldap.so у тебя в каком каталоге живёт?
[11:08:58] <samyvolosaty> в /etc/pam.d/ переправил system-auth
auth required pam_env.so
auth required pam_unix.so try_first_pass likeauth nullok
auth sufficient pam_ldap.so use_first_pass

account sufficient pam_ldap.so
account required pam_unix.so

password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
password required pam_unix.so try_first_pass use_authtok nullok sha512 shadow
password sufficient pam_ldap.so use_authtok use_first_pass

session required pam_limits.so
session required pam_env.so
session required pam_unix.so
session optional pam_ldap.so
session optional pam_permit.so
[11:09:03] <anarchist> Когда я начинал разбираться с проблемой, в Сети была только такая "инструкция": http://www.cultdeadsheep.org/FreeBSD/docs/Quick_and_dirty_FreeBSD_5_x_and_nss_ldap_mini-HOWTO.html
[11:09:34] <anarchist> Сейчас они поправились, но недалеко ушли от процитированной: http://www.freebsd.org/doc/en/articles/ldap-auth/article.html
[11:11:38] <anarchist> Общий принцип правки сценариев авторизации был утащен мной из первой статьи (и замечательно подтвердился практикой).
[11:11:54] <anarchist> Извини, что не указал сразу.
[11:12:30] <anarchist> Ссылка на pam_ldap.so ставится ПЕРЕД первой строкой, содержащей 'required'.
[11:13:47] <anarchist> В моём случае (я тоже рассматриваю /etc/pam.d/system) в секции auth с параметром required идёт только последняя строка:
[11:14:06] <anarchist> auth required pam_unix.so no_warn try_first_pass nullok
[11:14:31] <samyvolosaty> вроде как сумма вчерашней конференции и английского хауту, выглядит достаточным. но что-то не так :-(
смущают на сервере логи и незаход по явно лдап юзеру
conn=65 op=1 SRCH base="ou=People,dc=cluster,dc=net" scope=1 deref=0 filter="(&(objectClass=posixAccount)(uid=ldapuser))"
bdb_db_cache: db_open(objectClass) failed: Permission denied (13)
<= bdb_equality_candidates: (objectClass) index_param failed (13)
<= bdb_equality_candidates: (uid) not indexed
conn=65 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
[11:15:02] <anarchist> Соответственно перед ней добавляю строку с ссылкой на pam_ldap.so и получаю:
auth sufficient /usr/local/lib/pam_ldap.so no_warn try_first_pass
auth required pam_unix.so no_warn try_first_pass nullok
[11:15:51] <anarchist> Ещё один момент, который наверное стоило выделить.
[11:16:37] <anarchist> По умолчанию механизм с padl.com предполагает, что пользователи живут в ветке ou=People
[11:16:47] <anarchist> В моём случае --- в ou=Users
[11:17:13] <anarchist> И здесь таки желателен LDAP-клиент.
[11:17:18] <samyvolosaty> я оставил пока People.
[11:17:42] <anarchist> И ты исправил все цитированные мной конфиги на использование этого варианта?
[11:17:53] <anarchist> Давай поразбираемся с Luma
[11:19:18] <samyvolosaty> я луму поставил, но что-то она дальше baыeDN не идёт.
конфиги правил, сейчас посмотрю ещё permissions внимательно.
[11:19:40] <anarchist> Browser -> Settings -> Edit Server List -> Add server
[11:19:51] <anarchist> Извини, вижу, что затык не там.
[11:20:06] <anarchist> Ты в Luma каким пользователем пытаешься подключиться к LDAP'у?
[11:20:32] <anarchist> Поцитируй разрешения из твоего slapd.conf
[11:22:03] <samyvolosaty> сегодня переставил, на
access to dn.base="" by * read
access to dn.base="cn=Subschema" by * read
access to *
by self write
by users read
by anonymous auth
[11:22:24] <samyvolosaty> в lume под admin.cluster.net
[11:26:54] <samyvolosaty> у меня есть сомнения по поводу правильности использования MigrationTools
я сделал так.
migrate_common.ph
заменил $DEFAULT_BASE = "dc=cluster,dc=net"
migrate_base.pl >users.ldif
migrate_groups.pl >>users.ldif
migrate_passwd.pl >>users.ldif
slapadd -v -l users.ldif
[11:30:04] <anarchist> Так, про обнуление базы LDAP я тебе рассказывал? Похоже, оно надо.
[11:30:43] <anarchist> Про MigrationTools я же предупреждал! что они работают весьма странно.
[11:31:31] <anarchist> И было бы правильнее записывать разные фрагменты по разным файлам, а потом их редактировать.
[11:31:41] <anarchist> Ну или хотя бы почитать.
[11:32:14] <anarchist> Кстати, если бы ты уделил больше внимание изучению классики, то знал бы, что в /etc/passwd паролей нет.
[11:33:07] <anarchist> Я конечно MigrationTools видел давно... Но, помнится, пароли там вытягивались отдельным скриптом, который упорствовал в том, что они живут в /etc/shadow.
[11:34:52] <anarchist> Возвращаясь к luma: логин у тебя должен бы выглядеть
uid=admin,dc=cluster,dc=net
[11:34:53] <samyvolosaty> оно /etc/shadow вместо /etc/passwd читает я проверял
[11:36:33] <anarchist> Параметры bdb в slapd.conf у тебя определены правильно?
[11:46:49] <anarchist> Попробуй подключиться с luma, указав в качестве пользователя rootdn из этой секции.
[11:49:44] <samyvolosaty> да вот так и подключаюсь. что то не вижу ничего хотя из командной строки ldapsearch список мне выводит.
[11:53:19] <anarchist> Давай смотреть, что у тебя в настройках luma.
[11:53:28] <anarchist> Закладка первая. Network...
[11:54:17] <anarchist> IP/Hostname, порт, шифрование (в такой конфигурации должно быть выключено).
[11:54:46] <anarchist> Вторая закладка. Авторизация.
[11:54:54] <anarchist> Анонимное подключение выключено.
[11:55:16] <anarchist> Механизм -- Simple
[11:55:47] <anarchist> Логин (в формате: uid=admin,dc=cluster,dc=net), пароль.
[11:58:15] <samyvolosaty> так и есть. пишет, что Base DNs successful recieve и больше как-то ничего не ищет.
[11:59:00] <anarchist> Третья закладка, опции LDAP. Что такое Follow aliases --- честно: понятия не имею. У меня выключено.
[12:00:34] <anarchist> Второй пункт: выбор BaseDN. В моей практике было оба варианта: Use ... provided by server и (когда корень вирутальный, к которому никто кроме совсем root'а не допущен), с указанием явной точки.
[12:02:06] <anarchist> Извини, я сейчас добавлю в Luma свой текущий сервер авторизации --- и поговорим предметно.
[12:05:28] <anarchist> Итак, luma поправил. Рассматриваем.
[12:06:10] <anarchist> По идее после всего он должен тебе показать (Browser -> твой сервер) выделение и стрелку (типа треугольник) слева-направо.
[12:07:10] <anarchist> Клик мышью по данной стрелке приводит к её повороту на 90 градусов по часовой стрелке. При этом показывается твой корень (dc=cluster,dc=net)
[12:07:21] <anarchist> Тоже с стрелочкой.
[12:08:01] <anarchist> Клик по которой в свою очередь должен показать две ветки:
ou=People и
ou=Groups
[12:18:08] <samyvolosaty> а вот веток у меня и нет
[12:19:46] <samyvolosaty> хотя в ldif есть запись
dn: ou=People,dc=cluster,dc=net
ou: People
objectClass: top
objectClass: organizationalUnit
[12:55:04] <anarchist> Но ldapsearch при этом находит пользователей?
[12:55:17] <anarchist> А luma не ругается ни на какие ошибки?
[13:11:54] <samyvolosaty> ага.
[13:12:34] <anarchist> Интересно... Давай вывод ldapsearch'а с корня и до конца первой учётки реального пользователя.
[13:15:22] <anarchist> В ldapsearch и в luma используется один и тот же пользователь?
[13:29:12] <samyvolosaty> один и тот же. вот до первой группы
# extended LDIF
#
# LDAPv3
# base <> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# cluster.net
dn: dc=cluster,dc=net
dc: cluster
objectClass: top
objectClass: domain
# Hosts, cluster.net
dn: ou=Hosts,dc=cluster,dc=net
ou: Hosts
objectClass: top
objectClass: organizationalUnit
# Rpc, cluster.net
dn: ou=Rpc,dc=cluster,dc=net
ou: Rpc
objectClass: top
objectClass: organizationalUnit
# Services, cluster.net
dn: ou=Services,dc=cluster,dc=net
ou: Services
objectClass: top
objectClass: organizationalUnit
# netgroup.byuser, cluster.net
dn: nisMapName=netgroup.byuser,dc=cluster,dc=net
nisMapName: netgroup.byuser
objectClass: top
objectClass: nisMap
# Mounts, cluster.net
dn: ou=Mounts,dc=cluster,dc=net
ou: Mounts
objectClass: top
objectClass: organizationalUnit
# Networks, cluster.net
dn: ou=Networks,dc=cluster,dc=net
ou: Networks
objectClass: top
objectClass: organizationalUnit
# People, cluster.net
dn: ou=People,dc=cluster,dc=net
ou: People
objectClass: top
objectClass: organizationalUnit
# Group, cluster.net
dn: ou=Group,dc=cluster,dc=net
ou: Group
objectClass: top
objectClass: organizationalUnit
# Netgroup, cluster.net
dn: ou=Netgroup,dc=cluster,dc=net
ou: Netgroup
objectClass: top
objectClass: organizationalUnit
# Protocols, cluster.net
dn: ou=Protocols,dc=cluster,dc=net
ou: Protocols
objectClass: top
objectClass: organizationalUnit
# Aliases, cluster.net
dn: ou=Aliases,dc=cluster,dc=net
ou: Aliases
objectClass: top
objectClass: organizationalUnit
# netgroup.byhost, cluster.net
dn: nisMapName=netgroup.byhost,dc=cluster,dc=net
nisMapName: netgroup.byhost
objectClass: top
objectClass: nisMap
# root, Group, cluster.net
dn: cn=root,ou=Group,dc=cluster,dc=net
objectClass: posixGroup
objectClass: top
cn: root
gidNumber: 0
[13:32:03] <anarchist> А теперь пожалуйста пользователя, ведь именно на него идёт ругань.
[13:33:13] <anarchist> И вообще очень странно, что luma у тебя эту группу не показывает. Особенно при случае логина в качестве rootdn
[13:36:37] glyanchik вошёл(а) в комнату
[13:37:53] <samyvolosaty> ну вот, например
# sasha, People, cluster.net
dn: uid=sasha,ou=People,dc=cluster,dc=net
uid: sasha
cn: sasha
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword:: e2NyeXB0fUxFaDNyN1YxNHBSOU0=
shadowLastChange: 13250
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1002
gidNumber: 100
homeDirectory: /home/sasha
[13:39:57] <samyvolosaty> кстати вопрос. может проблема в паролях? миграционные тулы выдали из /etc/shadow с префиксом {crypt}
или так и должно быть? у тебя вчера в примере {SSHA} стояло.
[13:40:53] <anarchist> Очень на то похоже.
[13:42:02] <anarchist> Есть конечно гипотеза, относительно того, что по умолчанию используется CRYPT (в смысле хэш без префикса с указанием алгорится интерпретируется как CRYPT)...
[13:42:33] <samyvolosaty> а соответственно ldapsearch выдает мусор
[13:43:54] <samyvolosaty> хм. интересно, а если пользователь заводились лет 6 назад. их всех просить сгенерить пароли по новому?
[13:44:06] <anarchist> А много пользователей?
[13:45:01] <samyvolosaty> да не очень. :-) , в принцыпе , это выполнимо.
[13:45:03] <anarchist> Либо отредактировать исходный ldif дописав префикс {crypt} к хэшам, либо волевым решением заменить все пароли.
[13:46:26] <samyvolosaty> не. там префикс есть. userPassword:: e2NyeXB0fUxFaDNyN1YxNHBSOU0= это ldapsearch выдаёт
[13:47:07] <anarchist> Не, префикс --- это:
userPassword: {MD5}qTE2gNC2raQT4MQhrJDcSw==
[13:48:00] <samyvolosaty> в ldif
userPassword: {crypt}IDUSAX&EYR&er4r
т.е. crypt -> MD5 ?
[13:48:03] <anarchist> Или:
userPassword: {SSHA}tOU7qOdKxPNFXIZa3GITfQfADoi2NOZD
[13:48:29] <anarchist> Нет, CRYPT старше MD5.
[13:48:44] <anarchist> Говоришь, после импорта префикс пропал?
[13:49:07] <anarchist> Интересно... Вообще-то исходя из принципа паранойи его поддержку могли и грохнуть.
[13:49:27] <anarchist> Ибо в текущей действительности он ломается относительно просто.
[13:50:25] <samyvolosaty> угу. т.е. в файле был - в лдапе уже мусор
[13:51:09] <samyvolosaty> или по крайней мере в том что он выдаёт
[13:52:51] <anarchist> А ты как переносил LDIF в LDAP?
[13:53:37] <samyvolosaty> slapadd -l new.ldif
[13:59:46] <anarchist> Интересно... Я сразу со сменой паролей съехал на использование хэша типа SSHA (и лишь местами MD5).
[13:59:54] <anarchist> Так что про CRYPT не расскажу
[14:02:55] <samyvolosaty> ладно. я до завтра поковыряюсь и расскажу что вышло.
[14:03:20] <anarchist> Успехов
[14:46:34] evadim вошёл(а) в комнату
[14:47:01] <evadim> anarchist: блин, ты вчера не сдела комнату постоянной, и я забыл
[14:51:58] <anarchist> А что для этого надо было сделать?
[14:52:11] <anarchist> Я ещё сегодня удивился, что меня понизили в статусе.
[14:53:41] <evadim> я с дуру вышел, потом смотрю -конфы нет
[14:57:38] <evadim> glyanchik: а каким тебя ветром сюда занесло-то?
[14:58:42] <glyanchik> =) мне предложили послушать о чем здесь говорят.
[14:59:01] <evadim> =)
[15:04:06] <evadim> вообще в gentoo@ нормальные разговоры ведут, местами. :)
[15:05:05] <glyanchik> а что подразумевается под нормальными разговорами? =)
[15:06:25] <anarchist> Товарищи, давайте не будем разводить здесь оффтопик. Потом ведь логи править придётся для читаемости... Оно нам надо?..
[15:06:48] <evadim> а зачем их править до читаемости?
[15:09:05] <evadim> glyanchik: под нормальным я имел в виду что это узкоспециальная конференция посвящённая проблемам длапа
[15:09:18] <evadim> anarchist: кстати, тему вменяемую задай :D
[15:11:40] <anarchist> Точнее --- переделки системной авторизации на LDAP.
[15:11:56] anarchist установил(а) тему: День второй. Debugging
[16:28:04] samyvolosaty вышел(а) из комнаты
[16:47:28] glyanchik вышел(а) из комнаты: QIP Infium: Спокойное общение
[18:02:48] anarchist вышел(а) из комнаты
[21:37:22] evadim вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!