Невозможно получить OpenLDAP с работой TLS

У меня есть сервер OpenLDAP 2.4.39, работающий на хосте Centos 7, который заполняется с минимальным набором данных. Это работает как ожидалось, когда TLS не используется. Я использую это для аутентификации с dokuwiki сегодня. Я купил SSL у Namecheap/Comodo, и пытаюсь заставить это работать, как он должен.

Пример:

root@smtp:~# ldapsearch -h ldap.foo.bar -D cn=Manager,dc=foo,dc=bar -W -LLL -b ou=people,dc=foo,dc=bar "(uid=baz)"
Enter LDAP Password: 
dn: uid=baz,ou=people,dc=foo,dc=bar
objectClass: top
objectClass: inetOrgPerson
objectClass: organizationalPerson
cn:: SGFucyDDhWdlIE1hcnRpbnNlbg==
displayName:: SGFucyDDhWdlIE1hcnRpbnNlbg==
givenName:: SGFucyDDhWdl
mail: baz@something.fugu
mobile: 12345678
sn: Doe
uid: baz

Если я пытаюсь вызвать TLS, вещи изменение.

root@smtp:~# ldapsearch -h ldap.foo.bar -D cn=Manager,dc=foo,dc=bar -W -LLL -b ou=people,dc=foo,dc=bar -ZZ "(uid=baz)"
ldap_start_tls: Connect error (-11)
    additional info: A TLS packet with unexpected length was received.

root@smtp:~# ldapsearch -h ldap.foo.bar -D cn=Manager,dc=foo,dc=bar -W -LLL -b ou=people,dc=foo,dc=bar -ZZ -d -1 "(uid=baz)"

...
...
TLS: can't connect: A TLS packet with unexpected length was received..
ldap_err2string
ldap_start_tls: Connect error (-11)
    additional info: A TLS packet with unexpected length was received.

Конфигурация на сервере LDAP.

dn: cn=config
objectClass: olcGlobal
cn: config
olcArgsFile: /var/run/openldap/slapd.args
olcPidFile: /var/run/openldap/slapd.pid
structuralObjectClass: olcGlobal
entryUUID: 5760d8da-0f87-1035-85b1-9b4063f1519b
creatorsName: cn=config
createTimestamp: 20151025171240Z
olcIdleTimeout: 300
olcLogLevel: none
olcTLSCACertificateFile: /etc/openldap/tls/ldap.foo.bar.ca_bundle
olcTLSCertificateFile: /etc/openldap/tls/ldap.foo.bar.crt
olcTLSCertificateKeyFile: /etc/openldap/tls/ldap.foo.bar.key
olcTLSCipherSuite: HIGH:MEDIUM:+SSLv2
entryCSN: 20151025205018.128335Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20151025205018Z

[root@ldap tls]# ls -l
total 16
-rw-r--r-- 1 root root 5630 Oct 25 17:14 ldap.foo.bar.ca_bundle
-rw-r--r-- 1 root root 2240 Oct 25 17:14 ldap.foo.bar.crt
-r-------- 1 root root 3243 Oct 25 17:14 ldap.foo.bar.key
[root@ldap tls]# file ldap.foo.bar.ca_bundle 
ldap.foo.bar.ca_bundle: PEM certificate
[root@ldap tls]# file ldap.foo.bar.crt 
ldap.foo.bar.crt: PEM certificate
[root@ldap tls]# file ldap.foo.bar.key 
ldap.foo.bar.key: PEM RSA private key

Конфигурация на клиенте: Я добавил пакет CA к клиентским сертификатам CA. Клиент является хостом Debian, где я скопировал пакет в /usr/local/share/ca-certificates/ и выполнил команду update-ca-certificates

Из того, что я вижу, и читайте, это должно работать. Но это не. Это также не работает, если я пытаюсь запустить тот же поиск с самого ldap сервера. Я изо всех сил пытаюсь отладить это далее, поскольку я понятия не имею, где начать. Какие-либо предложения на том, что я могу изучить, чтобы заставить это работать? Все конфигурационные файлы были вручную отредактированы прежде, чем отправить здесь, таким образом, я, возможно, сделал ошибки, но я не думаю дело обстоит так.

Добавленный позже после получения запросов на него.

Oct 25 20:50:54 ldap slapd[21177]: daemon: shutdown requested and initiated.
Oct 25 20:50:54 ldap slapd[21177]: slapd shutdown: waiting for 0 operations/tasks to finish
Oct 25 20:50:54 ldap slapd[21177]: slapd stopped.
Oct 25 20:50:54 ldap slapd[21670]: @(#) $OpenLDAP: slapd 2.4.39 (Sep 29 2015 13:31:12) $
    mockbuild@worker1.bsys.centos.org:/builddir/build/BUILD/openldap-2.4.39/openldap-2.4.39/servers/slapd
Oct 25 20:50:54 ldap slapd[21673]: hdb_db_open: warning - no DB_CONFIG file found in directory /var/lib/ldap: (2).
Expect poor performance for suffix "dc=foo,dc=bar".
Oct 25 20:50:54 ldap slapd[21673]: slapd starting
Oct 25 21:23:19 ldap slapd[21673]: <= bdb_equality_candidates: (uid) not indexed
Oct 25 21:23:19 ldap slapd[21673]: <= bdb_equality_candidates: (gidNumber) not indexed
Oct 25 21:23:19 ldap slapd[21673]: <= bdb_equality_candidates: (memberUid) not indexed
Oct 25 21:23:19 ldap slapd[21673]: <= bdb_equality_candidates: (uid) not indexed
Oct 25 21:23:19 ldap slapd[21673]: <= bdb_equality_candidates: (gidNumber) not indexed
Oct 25 21:23:19 ldap slapd[21673]: <= bdb_equality_candidates: (memberUid) not indexed
Oct 26 07:30:08 ldap slapd[21673]: daemon: shutdown requested and initiated.
Oct 26 07:30:08 ldap slapd[21673]: slapd shutdown: waiting for 0 operations/tasks to finish
Oct 26 07:30:08 ldap slapd[21673]: slapd stopped.
Oct 26 07:30:08 ldap slapd[23274]: @(#) $OpenLDAP: slapd 2.4.39 (Sep 29 2015 13:31:12) $
    mockbuild@worker1.bsys.centos.org:/builddir/build/BUILD/openldap-2.4.39/openldap-2.4.39/servers/slapd
Oct 26 07:30:08 ldap slapd[23275]: slapd starting
[root@ldap log]#

Я имею после наблюдения этого журнала, добавленного/usr/share/openldap-servers/DB_CONFIG.example к/var/lib/ldap/DB_CONFIG и сделанному a systemctl restart slapd. Я не сфокусировался на подъеме надлежащих индексов и работе, так как я хочу TLS, работающий сначала.

0
задан 26 October 2015 в 09:37
2 ответа

Ответ на мой вопрос было проще, чем предполагалось. В моей предыдущей конфигурации у меня был следующий набор:

olcTLSCipherSuite: HIGH:MEDIUM:+SSLv2

Как видите, он явно не разрешает TLS. Я перенастроил этот параметр, и теперь он работает безупречно.

olcTLSCipherSuite: HIGH:+SSLv3:+TLSv1:MEDIUM:+SSLv2:@STRENGTH:+SHA:+MD5:!NULL

Я мог бы удалить SSLv2 и MD5 позже. Я не могу решить, дают ли они хоть какую-то полезность, если клиент не поддерживает что-либо еще.

0
ответ дан 4 December 2019 в 16:47

В общем,

  • Ошибки TLS / SSL часто легче диагностировать с помощью команды SSL Swiss Army Knife openssl , чем с помощью вывода полномасштабного приложения C / S SSL; здесь могла бы быть полезна подкоманда esp openssl s_client .
  • olc обеспечивает богатый диагностический вывод, комбинируя несколько olcLogLevels; seetable 5.1 из Таблица 5.1: Уровни отладки ссылки на slapd.conf openldap . Если моя память не выдает меня, это флаги, численно меньшие или равные BER, которые позволяют (также) трассировку SSL / TLS.

При этом - из приведенного выше списка olc кажется, что

olcTLSVerifyClient

отсутствует, не говоря уже о том, что он установлен на «требовать» или «разрешать».

MECH_AND_URL="-H ldapi:///" # or whatever your setup needs; your mileage may vary
ldapsearch -b cn=config $MECH_AND_URL "(cn=config)" olcTLSVerifyClient -LLL

Если это действительно ничего не дает, создайте и установите его:

ldapmodify $MECH_AND_URL <<EOF 
dn: cn=config
changetype: modify
add: olcTLSVerifyClient
olcTLSVerifyClient: allow

-
EOF
1
ответ дан 4 December 2019 в 16:47

Теги

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