Мне нужно настроить локальный прокси-кеш LDAP, который подключается к нашему центральному серверу Active Directory. Кэш прокси OpenLDAP выглядит как вещь. Но, следуя инструкциям как можно точнее, я не могу заставить его работать.
Я могу отправлять запросы через localhost на удаленный сервер, но они не кэшируются (или, по крайней мере, кеш не извлекается).
Шаги, которые я сделал:
openldap-servers
и openldap-clients
пакетыslapd.conf
файл конфигурации (подробности ниже)slapd -d -1
команда для запуска сервераldapwhoami -vvv -h localhost -D "CN=Melka Martin,OU=(...),DC=int,DC=ourdomain,DC=com" -x -w <password>
Результат - успех. Но анализ сетевого трафика показывает, что запрос объединен с центрального сервера LDAP.
В slapd
вывод довольно подробный, но в какой-то момент он выполняет
QUERY NOT ANSWERABLE
QUERY CACHEABLE
Увы, но если он все же будет кэширован, ответа на него не будет. Есть идеи, что может быть не так?
"cn=admin,dc=int,dc=ourdomain,dc=com"
- DN пользователя с правами администратора на удаленном сервере LDAP. <something>
это его пароль.
slapd.conf
database ldap
suffix "dc=int,dc=ourdomain,dc=com"
rootdn "cn=admin,dc=int,dc=ourdomain,dc=com"
rootpw <something>
uri ldap://dc-04.int.ourdomain.com:389
overlay pcache
pcache hdb 100000 1 1000 100
pcacheAttrset 0 *
pcacheTemplate (sn=) 0 3600
pcacheBind (sn=) 0 3600 sub dc=int,dc=ourdomain,dc=com
cachesize 200
directory /var/lib/ldap
index objectClass eq
index cn eq,sub
DB_CONFIG
# $OpenLDAP$
# one 0.25 GB cache
set_cachesize 0 268435456 1
# Transaction Log settings
set_lg_regionmax 262144
set_lg_bsize 2097152
Подробный вывод журнала: http://pastebin.com/9s8HMg7d
Следует упомянуть несколько вещей, которые могут оказаться полезными или помочь сузить основную причину. . .
Я хотел указать, что заметил, что ты бежишь slapd -d -1
что просто означает бег slapd
с уровнем отладки и ведения журнала 1
смысл verbose
/enable all debugging
.
Из того, что я прочитал в приведенном ниже ресурсе URL-адреса публикации, если вы не работаете в slapd -f <filename>
синтаксис и полностью квалифицировать <filename>
указать на "альтернатива" slapd.config
файл, тогда. . . "По умолчанию обычно используется /usr/local/etc/openldap/slapd.conf."
Следовательно, это может не работать slapd
и укажите его в файле конфигурации, чтобы получить указатели / параметры, которые вы поместили в альтернативный файл конфигурации, поэтому сначала попробуйте, если это проблема.
Может быть связано именно с этой ошибкой (ERROR PART1
): 564da523 config_back_db_open: No explicit ACL for back-config configured. Using hardcoded default
(Ресурс: http://www.openldap.org/doc/admin24/runningslapd.html)
НОТА: Я вижу несколько сообщений об ошибках, связанных с БД, в подробном журнале, который вы предоставили, поэтому, возможно, он не может найти подходящую БД, если вы не перейдете в этот каталог, чтобы он мог найти неявно, если только он не поддерживает какой-либо другой явный метод указателя БД (ПРИМЕЧАНИЕ2 может быть применимо к этому методу ).
ЗАМЕТКА 2: Вот хорошее прочтение о методе прокси LDAP и использовании uri
и т. д. в конфигурации, просто чтобы проверить что-то очевидное, что вы могли пропустить или неправильно настроить в slapd.conf
файл (http://www.openldap.org/faq/data/cache/532.html).
Несколько интересных моментов из ресурса раздела Note2
LDAP Proxy
binddn
bindpw
identity assertion
identity assertion configuration
Во-первых, похоже, что у вас две версии OpenLADAP, поэтому, возможно, стоит прочитать примечания к выпуску здесь, чтобы узнать, подходит ли что-нибудь для вашей проблемы. (http://www.openldap.org/software/release/changes.html) что может оправдать обновление или запуск тестовой системы обновления, если это возможно.
Во-вторых, подробный журнал содержит гораздо больше сообщений об ошибках и т. Д., И я хотел бы отметить ERROR PART 1
, ERROR PART 2
, ERROR PART 3
, и ERROR PART 4
ниже конкретно в таком порядке.
(Ресурс: http://www.openldap.org/doc/admin24/appendix-common-errors.html)
Из того, что я прочитал, если вы чувствуете себя комфортно, все ваши конфигурации действительно настроены правильно, ERROR PART 1
Первая строка действительно может быть просто «предупреждением», и ее можно безопасно игнорировать.
Однако строка под этим (~Using hardcoded default
) может быть частью ПЕРВЫЙ раздел выше, поскольку я указал URL-адрес и т. д.
ОШИБКА ЧАСТЬ 1
564da523 config_back_db_open: line 0: warning: cannot assess the validity of the ACL scope within backend naming context
564da523 config_back_db_open: No explicit ACL for back-config configured. Using hardcoded default
Ресурсы:
ОШИБКА ЧАСТЬ 2
564da523 <= hdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found (-30988)
564da523 <= hdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found (-30988)
В этом (выше) я нашел здесь пример с slapd.conf
files и один (ниже), в котором говорится об этом, поэтому мне интересно, так ли просто, как вам нужно перейти в каталог DB в slapd.conf
файл в вашем случае.
(Ресурс: http://www.zytrax.com/books/ldap/ch5)
ПРИМЕР ИЗ URL-адреса ресурса
# root or superuser
rootdn "cn=jimbob, dc=example, dc=com"
rootpw dirtysecret
# The database directory MUST exist prior to running slapd AND
# change path as necessary
directory /var/db/openldap/example-com
ОШИБКА ЧАСТЬ 3
Устранение неполадок с помощью telnet <host> <port>
на IP-адрес LDAP
Также может быть полезно (http://www.openldap.org/faq/data/cache/532.html)
ldap_read: want=8 error=Resource temporarily unavailable
ОШИБКА ЧАСТЬ 4
64da525 <= hdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found (-30988)
564da525 => bdb_entry_get: cannot find entry: "cn=melka martin,ou=release engineering,ou=development,ou=research and development,ou=cz,dc=int,dc=company,dc=com"
564da525 QUERY NOT ANSWERABLE
564da525 QUERY CACHEABLE
Ожидаете ли вы кэшировать следующий запрос?
ldapwhoami -vvv -h localhost -D "CN=Melka Martin,OU=(...),DC=int,DC=ourdomain,DC=com" -x -w <password>
Прежде всего, я бы изменил шаблоны, чтобы они соответствовали параметрам аутентификации:
pcacheTemplate (dn=) 0 3600
pcacheBind (dn=) 0 3600 sub dc=int,dc=ourdomain,dc=com
(dn - отличительное имя, sn - фамилия)
Но я был бы удивлен, если бы это сработало. На самом деле я не уверен ldapwhoami
- правильный инструмент для проверки этого наложения. На странице руководства говорится о authentication clients
, например nss_ldap
. Вы должны заранее настроить его и наблюдать, какие запросы он выполняет, чтобы вы могли имитировать шаблон, область действия и базу.