Не могу определить принципала, используемого для LDAP syncrepl GSSAPI

Я настроил два полнофункциональных openldap в HA (поставщик режима syncrepl - подчиненный). После тестирования того, что простая привязка syncrepl работает безупречно, я пытаюсь развернуть ее с нуля, используя только GSSAPI, чтобы избежать использования паролей в виде простого текста. Я настроил клиент (ldap.conf) для использования GSSAPI и отлично работает, так что он должен работать и для syncrepl. Я настроил поставщика и потребителя.

Это конфигурация olcSyncrepl в базе данных hdb. Пропуск authcid и authzid не меняет конечный результат:

    olcSyncrepl{0}: rid=001 
    provider="ldap://authsrv1.ex.ample.com" 
    bindmethod=sasl 
    saslmech=gssapi 
    searchbase="dc=ex,dc=ample,dc=com" 
    type=refreshAndPersist 
    retry="30 5 300 3" 
    interval=00:00:01:00 

Если конфигурация изменена на простую привязку, репликация выполняется безупречно. Krb5.keytab был добавлен в файл sysconfig openldap.

Я мог бы решить эту проблему, если бы мог знать, какой принципал использует для попытки репликации, но журналы не показывают эту информацию (LogLevel 255) .

> slapd[2091]: GSSAPI Error: Unspecified GSS failure.  Minor code may
> provide more information (No Kerberos credentials available)
> 
> slapd[2091]: slap_client_connect: URI=ldap://authsrv1.ex.ample.com
> ldap_sasl_interactive_bind_s failed (-2)

ldapwhoami с использованием GSSAPI работает безупречно после использования kinit.

РЕДАКТИРОВАТЬ: Это моя конфигурация /etc/sasl2/slapd.conf

mech_list: gssapi diges-md5 cram-md5 external
pwcheck_method: saslauthd
keytab: /etc/ldap.keytab

.ldap.keytab содержит ключи участников ldap / authsrv1.ex.ample.com и ldap / authsrv2.ex.ample.com и принадлежит пользователю ldap и группе ldap. Также я создал syncrepl inetOrgPerson и добавил механизм {SASL} в качестве пароля, чтобы проверить, могу ли я использовать выделенную учетную запись вместо ldap / authsrv ...

Если я выполняю kinit с обоих серверов:

kinit -k -t /etc/ldap.keytab syncrepl
kinit -k -t /etc/ldap.keytab ldap/authsrv1.ex.ample.com
kinit -k -t /etc/ldap.keytab ldap/authsrv2.ex.ample.com

KDC дает мне билет, а затем я могу безупречно выполнить ldapsearch -Y GSSAPI или ldapwhoami -Y GSSAPI.

Также клиент ldap.conf настроен на использование GSSAPI и работает безупречно на всех наших клиентах.

BASE dc=ex,dc=ample,dc=com
URI ldap://authsrv1.ex.ample.com:389/,ldap://authsrv2.ex,ample.com:389/
TLS_CACERT /certs/EXAMPLE.pem
TLS_CACERTDIR /certs/
TLS_CERT /certs/authsrv1.ex.ample.com.pem
TLS_KEY /certs/authsrv1.ex.ample.com.key.pem
SUDOERS_BASE ou=SUDOers,dc=ex,dc=ample,dc=com
SASL_MECH GSSAPI
SASL_REALM EX.AMPLE.COM
GSSAPI_SIGN on
GSSAPI_ENCRYPT off
NETWORK_TIMEOUT 10
BIND_POLICY soft
nss_initgroups_ignoreusers root,ldap,named,avahi,haldaemon,dbus
bind_timeout 2
nss_reconnect_tries 2
nss_reconnect_sleeptime 1
nss_reconnect_maxconntries 3

Наши веб-сервер позволяет аутентификацию с использованием SASLAUTHD и тоже работает безупречно. Все, что мы не можем настроить, это syncrepl через GSSAPI.

Я пробовал также указать authcid и authzid, и у меня есть следующий authregex в поставщике cn = config:

olcAuthRegexp: {0}uid=(.*),cn=gssapi,cn=auth ldap://dc=ex,dc=ample,dc=com??sub?(&(uid=$1)(objectClass=inetOrgPerson)

Что касается ACL, я пытался реплицировать с тем же пользователем (syncrepl) с простым механизмом аутентификации, и он отлично работает.

Есть идеи?

Большое спасибо.

С уважением.

0
задан 14 July 2020 в 16:22
2 ответа

Спустя много дней, недель ... пытаясь выяснить, что было происходит ...

Проблема была в / etc / sysconfig / openldap. Изменение:

OPENLDAP_USER="ldap"
OPENLDAP_GROUP="ldap"

Кому:

OPENLDAP_USER=""
OPENLDAP_GROUP=""

Проблема решена.

0
ответ дан 4 January 2021 в 09:55
$ cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
$
$
$ grep KRB5 /etc/sysconfig/slapd
KRB5_KTNAME="FILE:/etc/openldap/ldap.keytab"
KRB5_CLIENT_KTNAME="FILE:/etc/openldap/ldap.keytab"
$ ls -l /etc/openldap/ldap.keytab
-rw-------. 1 ldap ldap 346 Jun 15  2015 /etc/openldap/ldap.keytab
$
$
$  ps aux | grep slapd | grep -v grep
ldap      1121  1.2  3.9 356408 39748 ?        Ssl  22:07   0:02 /usr/sbin/slapd -u ldap -h ldapi:/// ldap:/// ldaps:///
0
ответ дан 4 January 2021 в 09:55

Теги

Похожие вопросы