LDAP - nss_ldap: reconnecting to LDAP server

Добрый день.
Решил настроить LDAP.
Все делал по мануалу с офф. сайта (правда там пара неточностей, но ладно, разобрался)

Проблема следующая: проверяю работоспособность, например su -
На локальной машине в логах:

Aug 29 20:31:01 blow su[16041]: nss_ldap: reconnecting to LDAP server (sleeping 1 seconds)...
Aug 29 20:31:02 blow su[16041]: nss_ldap: reconnecting to LDAP server (sleeping 2 seconds)...
Aug 29 20:31:04 blow su[16041]: nss_ldap: reconnecting to LDAP server (sleeping 4 seconds)...
Aug 29 20:31:08 blow su[16041]: nss_ldap: reconnecting to LDAP server (sleeping 8 seconds)...
Aug 29 20:31:16 blow su[16041]: nss_ldap: could not search LDAP server - Server is unavailable
Aug 29 20:31:16 blow su[16041]: pam_unix(su:session): session opened for user root by blow(uid=1000)

На LDAP сервере:

Aug 29 20:31:01 blow slapd[18712]: conn=90 fd=17 ACCEPT from IP=192.168.1.2:48231 (IP=0.0.0.0:389)
Aug 29 20:31:01 blow slapd[18712]: conn=90 op=0 BIND dn="" method=128
Aug 29 20:31:01 blow slapd[18712]: conn=90 op=0 RESULT tag=97 err=0 text=
Aug 29 20:31:01 blow slapd[18712]: conn=90 op=1 SRCH base="ou=People,dc=blow.dnsalias,dc=com" scope=1 deref=0 filter="(&(objectClass=posixAccount)(uid=root))"
Aug 29 20:31:01 blow slapd[18712]: conn=90 op=1 SEARCH RESULT tag=101 err=50 nentries=0 text=
Aug 29 20:31:01 blow slapd[18712]: conn=90 op=2 UNBIND
Aug 29 20:31:01 blow slapd[18712]: conn=90 fd=17 closed
Aug 29 20:31:01 blow slapd[18712]: conn=91 fd=17 ACCEPT from IP=192.168.1.2:48232 (IP=0.0.0.0:389)
Aug 29 20:31:01 blow slapd[18712]: conn=91 op=0 BIND dn="" method=128
Aug 29 20:31:01 blow slapd[18712]: conn=91 op=0 RESULT tag=97 err=0 text=
Aug 29 20:31:01 blow slapd[18712]: conn=91 op=1 SRCH base="ou=People,dc=blow.dnsalias,dc=com" scope=1 deref=0 filter="(&(objectClass=posixAccount)(uid=root))"
Aug 29 20:31:01 blow slapd[18712]: conn=91 op=1 SEARCH RESULT tag=101 err=50 nentries=0 text=
Aug 29 20:31:01 blow slapd[18712]: conn=91 op=2 UNBIND
Aug 29 20:31:01 blow slapd[18712]: conn=91 fd=17 closed
Aug 29 20:31:02 blow slapd[18712]: conn=92 fd=17 ACCEPT from IP=192.168.1.2:48238 (IP=0.0.0.0:389)
Aug 29 20:31:02 blow slapd[18712]: conn=92 op=0 BIND dn="" method=128
Aug 29 20:31:02 blow slapd[18712]: conn=92 op=0 RESULT tag=97 err=0 text=
Aug 29 20:31:02 blow slapd[18712]: conn=92 op=1 SRCH base="ou=People,dc=blow.dnsalias,dc=com" scope=1 deref=0 filter="(&(objectClass=posixAccount)(uid=root))"
Aug 29 20:31:02 blow slapd[18712]: conn=92 op=1 SEARCH RESULT tag=101 err=50 nentries=0 text=
Aug 29 20:31:02 blow slapd[18712]: conn=92 op=2 UNBIND
Aug 29 20:31:02 blow slapd[18712]: conn=92 fd=17 closed
Aug 29 20:31:04 blow slapd[18712]: conn=93 fd=17 ACCEPT from IP=192.168.1.2:48239 (IP=0.0.0.0:389)
Aug 29 20:31:04 blow slapd[18712]: conn=93 op=0 BIND dn="" method=128
Aug 29 20:31:04 blow slapd[18712]: conn=93 op=0 RESULT tag=97 err=0 text=
Aug 29 20:31:04 blow slapd[18712]: conn=93 op=1 SRCH base="ou=People,dc=blow.dnsalias,dc=com" scope=1 deref=0 filter="(&(objectClass=posixAccount)(uid=root))"
Aug 29 20:31:04 blow slapd[18712]: conn=93 op=1 SEARCH RESULT tag=101 err=50 nentries=0 text=
Aug 29 20:31:04 blow slapd[18712]: conn=93 op=2 UNBIND
Aug 29 20:31:04 blow slapd[18712]: conn=93 fd=17 closed
Aug 29 20:31:08 blow slapd[18712]: conn=94 fd=17 ACCEPT from IP=192.168.1.2:48245 (IP=0.0.0.0:389)
Aug 29 20:31:08 blow slapd[18712]: conn=94 op=0 BIND dn="" method=128
Aug 29 20:31:08 blow slapd[18712]: conn=94 op=0 RESULT tag=97 err=0 text=
Aug 29 20:31:08 blow slapd[18712]: conn=94 op=1 SRCH base="ou=People,dc=blow.dnsalias,dc=com" scope=1 deref=0 filter="(&(objectClass=posixAccount)(uid=root))"
Aug 29 20:31:08 blow slapd[18712]: conn=94 op=1 SEARCH RESULT tag=101 err=50 nentries=0 text=
Aug 29 20:31:08 blow slapd[18712]: conn=94 op=2 UNBIND
Aug 29 20:31:08 blow slapd[18712]: conn=94 fd=17 closed
Aug 29 20:31:16 blow slapd[18712]: conn=95 fd=17 ACCEPT from IP=192.168.1.2:48252 (IP=0.0.0.0:389)
Aug 29 20:31:16 blow slapd[18712]: conn=95 op=0 BIND dn="" method=128
Aug 29 20:31:16 blow slapd[18712]: conn=95 op=0 RESULT tag=97 err=0 text=
Aug 29 20:31:16 blow slapd[18712]: conn=95 op=1 SRCH base="ou=People,dc=blow.dnsalias,dc=com" scope=1 deref=0 filter="(&(objectClass=posixAccount)(uid=root))"
Aug 29 20:31:16 blow slapd[18712]: conn=95 op=1 SEARCH RESULT tag=101 err=50 nentries=0 text=
Aug 29 20:31:16 blow slapd[18712]: conn=95 op=2 UNBIND
Aug 29 20:31:16 blow slapd[18712]: conn=95 fd=17 closed
Aug 29 20:31:16 blow slapd[18712]: conn=96 fd=17 ACCEPT from IP=192.168.1.2:48253 (IP=0.0.0.0:389)
Aug 29 20:31:16 blow slapd[18712]: conn=96 op=0 BIND dn="" method=128
Aug 29 20:31:16 blow slapd[18712]: conn=96 op=0 RESULT tag=97 err=0 text=
Aug 29 20:31:16 blow slapd[18712]: conn=96 op=1 SRCH base="ou=Group,dc=blow.dnsalias,dc=com" scope=1 deref=0 filter="(&(objectClass=posixGroup)(memberUid=root))"
Aug 29 20:31:16 blow slapd[18712]: conn=96 op=1 SRCH attr=gidNumber
Aug 29 20:31:16 blow slapd[18712]: conn=96 op=1 SEARCH RESULT tag=101 err=50 nentries=0 text=

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

Поиск через phpldapadmin результат возвращает.
В каком направлении идти?

P.S. локально на LDAP сервере такая-же проблема

filter="(&(objectClass=posixG

 filter="(&(objectClass=posixGroup)(memberUid=root))"

что то мне кажется, что запрос какой то кривой, имхо

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

slepnoga написал(а):

slepnoga написал(а):
 filter="(&(objectClass=posixGroup)(memberUid=root))"

что то мне кажется, что запрос какой то кривой, имхо

Може быть, но я не руками его выполняю...
Про этот запрос сейчас сказать не могу, но

filter="(&(objectClass=posixAccount)(uid=root))"

вчера проверял через phpldapadmin - результат возвращался

.

blow написал(а):
Решил настроить LDAP.

В смысле "системную авторизацию"? :)

blow написал(а):
Все делал по мануалу с офф. сайта (правда там пара неточностей, но ладно, разобрался)

Дык руководство с официального сайта уже лет много как в разработке.
Оно конечно лучше многих официяльных... Но, увы, ещё не завершено.

Опиши хотя бы неточности.

blow написал(а):
Проблема следующая: проверяю работоспособность, например su -
На локальной машине в логах:

Поверишь мне на слово, что куда интереснее конфиг pam_ldap/nss_ldap на неё же?

blow написал(а):
На LDAP сервере:
Aug 29 20:31:01 blow slapd[18712]: conn=90 op=1 SRCH base="ou=People,dc=blow.dnsalias,dc=com" scope=1 deref=0 filter="(&(objectClass=posixAccount)(uid=root))"
Соглашусь с тов. slepnoga в части странности [как минимум] фильтра.

blow написал(а):
Т.е. к серверу подключается, а дальше непонятно что - какая-то ошибка, но где ее посмотреть?
и еще, я вроде не настраивал авторизацию на локальной машине, может в мануале это пропустили?

Пропустили???
На моей памяти было. Причём хорошо было.
Ты pam_ldap на локальную машину ставил?
Настраивал?
Попробуй поискать ldapsearch'ем с локальной машины на сервере (с параметрами поиска аналогичными используемым при авторизации).

blow написал(а):
Поиск через phpldapadmin результат возвращает.
В каком направлении идти?

Всё поля возвращает?
Учётки пользователей (которые в LDAP'е) как получены?

blow написал(а):
P.S. локально на LDAP сервере такая-же проблема

В смысле: с авторизацией?
/etc/nsswitch.conf правил?

ЗЫ: Заходи в чятик (ldap_auth@conference.gentoo.ru).

:wq
--
Live free or die

Anarchist написал(а): blow

Anarchist написал(а):
blow написал(а):
Решил настроить LDAP.

В смысле "системную авторизацию"? :)

Не только системную авторизацию. Также авторизацию к ftp, mysql, apache, postfix...

Anarchist написал(а):
blow написал(а):
Все делал по мануалу с офф. сайта (правда там пара неточностей, но ладно, разобрался)

Дык руководство с официального сайта уже лет много как в разработке.
Оно конечно лучше многих официяльных... Но, увы, ещё не завершено.

Опиши хотя бы неточности.

Цитата:
Code Listing 2.5: /etc/conf.d/slapd
# Note: we don't use cn=config here, so stay with this line:
OPTS="-F /etc/openldap/slapd.d -h 'ldaps:// ldap:// ldapi://%2fvar%2frun%2fopenldap%2fslapd.sock'"

С этими параметрами не запустилось - у меня нету /etc/openldap/slapd.d
Зато другая строчка в конфиге (после того, как раскоментировал) сработала на отлично

OPTS="-h 'ldaps:// ldap:// ldapi://%2fvar%2frun%2fopenldap%2fslapd.sock'"
Цитата:
Code Listing 3.4: Copying over the OpenLDAP ldap.conf
(Substitute ldap-server with your LDAP server name)
# scp ldap-server:/etc/openldap/ldap.conf /etc/openldap

Повторяем, и наблюдаем в логах, что ломимся не по тому адресу. А адрес берется из файла /etc/ldap.conf

Anarchist написал(а):
blow написал(а):
Проблема следующая: проверяю работоспособность, например su -
На локальной машине в логах:

Поверишь мне на слово, что куда интереснее конфиг pam_ldap/nss_ldap на неё же?

Поверю :-)
/etc/ldap.conf
/etc/nsswitch.conf
Только в nsswitch.conf сейчас строчки с ldap закомментированы, т.к. жуткие тормоза при su - напрягают

Anarchist написал(а):
blow написал(а):
На LDAP сервере:
Aug 29 20:31:01 blow slapd[18712]: conn=90 op=1 SRCH base="ou=People,dc=blow.dnsalias,dc=com" scope=1 deref=0 filter="(&(objectClass=posixAccount)(uid=root))"
Соглашусь с тов. slepnoga в части странности [как минимум] фильтра.

В чем странность то заключается? то, что posixAccount а не account? я менял account на posixAcount в конфигах, это описано в мануале

Anarchist написал(а):
blow написал(а):
Т.е. к серверу подключается, а дальше непонятно что - какая-то ошибка, но где ее посмотреть?
и еще, я вроде не настраивал авторизацию на локальной машине, может в мануале это пропустили?

Пропустили???
На моей памяти было. Причём хорошо было.
Ты pam_ldap на локальную машину ставил?
Настраивал?
Попробуй поискать ldapsearch'ем с локальной машины на сервере (с параметрами поиска аналогичными используемым при авторизации).

pam_ldap ставил. Настраивал?
equery f pam_ldap
не показывает файлов в /etc, да и других конфигов я не вижу
Да, имелась ввиду авторизация с локальной мешины на ldap сервер (или он всех без пароля принимает? в жизни не поверю :-))

ldapsearch -x -D "cn=Manager,dc=blow.dnsalias,dc=com" -W "(&(objectClass=posixAccount)(uid=root))"
Enter LDAP Password: 
# extended LDIF
#
# LDAPv3
# base <dc=blow.dnsalias,dc=com> (default) with scope subtree
# filter: (&(objectClass=posixAccount)(uid=root))
# requesting: ALL
#

# root, People, blow.dnsalias.com
dn: uid=root,ou=People,dc=blow.dnsalias,dc=com
uid: root
cn: root
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword:: <тут был хеш пароля>
shadowLastChange: 14850
loginShell: /bin/bash
uidNumber: 0
gidNumber: 0
homeDirectory: /root
gecos: root

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
Anarchist написал(а):
blow написал(а):
Поиск через phpldapadmin результат возвращает.
В каком направлении идти?

Всё поля возвращает?
Учётки пользователей (которые в LDAP'е) как получены?

Phpldapadmin возвращает такой результат:

Цитата:
uid=root
dn uid=root,ou=People,dc=blow.dnsalias,dc=com
cn root
User Name root

Хотя при поиске я перечислил все аттрибуты. Может я просто не умею его готовить.
Данные в ldap забивал с помошью этих скриптов - http://www.padl.com/OSS/MigrationTools.html

Anarchist написал(а):
blow написал(а):
P.S. локально на LDAP сервере такая-же проблема

В смысле: с авторизацией?
/etc/nsswitch.conf правил?

Да,с авторизацией, и те же сообщения в логе.
/etc/nsswitch.conf взят из /etc/nsswitch.ldap

Anarchist написал(а):
ЗЫ: Заходи в чятик (ldap_auth@conference.gentoo.ru).

Ок, только завтра - сегодня с работы не было доступа к серверу, доступ восстановил, теперь можно заходить и сразу показывать конфиги, пробовать, и т.д.

В чем странность то

В чем странность то заключается? то, что posixAccount а не account? я менял account на posixAcount в конфигах, это описано в мануале

нет, в запросе uid=root. на мое имхо надо проверять на принадлежность к группе wheel по всем канонам.

Вобщем версию и флаги openldapa в студию.

От себя в сотый раз повторю - openldap и pam_ldap это фреймоворк для сочинения админом очередного велосипеда.
В твоем случае попробуй ( от попробуй не убудет :) ) sys-auth/sssd [rion]

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

.

slepnoga написал(а):
От себя в сотый раз повторю - openldap и pam_ldap это фреймоворк для сочинения админом очередного велосипеда.

Оно плохо?
Достоинством данного решения является то, что без понимания как оно должно работать конкретно в твоём случае добиться приемлемых результатов сложно.
Использование же готовых велосипедов расслабляет и не способствует формулировке таких вопросов, не говоря о поиске ответов на них (фигли думать: умный дядя уже подумал).

:wq
--
Live free or die

Я так понимаю, это

Я так понимаю, это продолжение какой-то давней дискусии? :-)

slepnoga написал(а): В чем

slepnoga написал(а):
В чем странность то заключается? то, что posixAccount а не account? я менял account на posixAcount в конфигах, это описано в мануале

нет, в запросе uid=root. на мое имхо надо проверять на принадлежность к группе wheel по всем канонам.

У меня пользователь из группы wheel получает права рута без пароля, мб в этом дело?

slepnoga написал(а):
Вобщем версию и флаги openldapa в студию.

net-nds/openldap-2.4.19-r1  USE="berkdb crypt gnutls ipv6 odbc overlays perl samba sasl slp ssl syslog tcpd -cxx -debug -experimental -icu -iodbc -kerberos -minimal (-selinux) -smbkrb5passwd"
slepnoga написал(а):
От себя в сотый раз повторю - openldap и pam_ldap это фреймоворк для сочинения админом очередного велосипеда.
В твоем случае попробуй ( от попробуй не убудет :) ) sys-auth/sssd [rion]

а sssd позволит мне управлять пользователями баз данных, фтп-сервера, почтового сервера, прокси, джаббера?

blow написал(а): Не только

blow написал(а):
Не только системную авторизацию. Также авторизацию к ftp, mysql, apache, postfix...

Т.е. с привязкой к реальной базе пользователей?

blow написал(а):
Цитата:
Code Listing 2.5: /etc/conf.d/slapd
# Note: we don't use cn=config here, so stay with this line:
OPTS="-F /etc/openldap/slapd.d -h 'ldaps:// ldap:// ldapi://%2fvar%2frun%2fopenldap%2fslapd.sock'"

С этими параметрами не запустилось - у меня нету /etc/openldap/slapd.d

Логично.
Оно вообще по-хорошему должно быть временным решением.
Но полезно.
Ибо при переходе от единичного LDAP-сервера к дереву вопрос синхронизации Acl'ов (если их сколько-нибудь товарное количество) встаёт в полный рост.

blow написал(а):
Зато другая строчка в конфиге (после того, как раскоментировал) сработала на отлично
OPTS="-h 'ldaps:// ldap:// ldapi://%2fvar%2frun%2fopenldap%2fslapd.sock'"

И они все тебе нужны?

blow написал(а):
Повторяем, и наблюдаем в логах, что ломимся не по тому адресу. А адрес берется из файла /etc/ldap.conf

Правильно.
Текстовый клиент openldap'а использует /etc/openldap/ldap.conf, системные же приложения типа pam_ldap/nss_ldap используют /etc/ldap.conf.
Если это не твой ляп, то шёл бы ты... в багзиллу.

blow написал(а):
equery f pam_ldap
не показывает файлов в /etc, да и других конфигов я не вижу

Но это не значит, что их нет.
Насколько мне известно, он использует тот же /etc/ldap.conf, что и nss_ldap.
Вопрос к документации. И portage.

blow написал(а):
Да, имелась ввиду авторизация с локальной мешины на ldap сервер (или он всех без пароля принимает? в жизни не поверю :-))

И здесь мы приходим к вопросу настройки доступа на LDAP-сервер (хотя в Gentoo-шной доке тема была раскрыта неплохо).

blow написал(а):
Данные в ldap забивал с помошью этих скриптов - http://www.padl.com/OSS/MigrationTools.html

Мне выдаваемая ими структура показалась весьма странной.
Продолжение в чятике.

blow написал(а):
Ок, только завтра - сегодня с работы не было доступа к серверу, доступ восстановил, теперь можно заходить и сразу показывать конфиги, пробовать, и т.д.

Т.е. в День знаний?
Символично :)))

:wq
--
Live free or die

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".