Назад | Перейти на главную страницу

Кэш прокси OpenLDAP не получает записи

Мне нужно настроить локальный прокси-кеш LDAP, который подключается к нашему центральному серверу Active Directory. Кэш прокси OpenLDAP выглядит как вещь. Но, следуя инструкциям как можно точнее, я не могу заставить его работать.

Я могу отправлять запросы через localhost на удаленный сервер, но они не кэшируются (или, по крайней мере, кеш не извлекается).

Шаги, которые я сделал:

Результат - успех. Но анализ сетевого трафика показывает, что запрос объединен с центрального сервера 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 ниже конкретно в таком порядке.


Распространенные причины ошибок LDAP

(Ресурс: 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. Вы должны заранее настроить его и наблюдать, какие запросы он выполняет, чтобы вы могли имитировать шаблон, область действия и базу.