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

Как установить файл сертификата CA для внутреннего сервера LDAP в конфигурации smbpasswd

У меня проблема с smbpasswd, внутренним сервером LDAP и сертификатами SSL / TLS. Клиентская машина, на которой я запускаю smbpasswd, - это машина Debian Etch, а сервер Ldap - это Sun DS, работающая на Solaris. Все следующее происходит на клиенте.

Когда я отключаю SSL, установив ldap ssl = no в smb.conf, программа smbpasswd работает без ошибок.

Когда я устанавливаю "ldap ssl = start tls", следующие сообщения печатаются smbpasswd, и есть длительный период ожидания, прежде чем какой-либо пароль будет запрошен им.

Failed to issue the StartTLS instruction: Connect error
Connection to LDAP server failed for the 1 try!
..... long delay .....
New SMB password:
Retype new SMB password:
Failed to issue the StartTLS instruction: Connect error
Connection to LDAP server failed for the 1 try!
smbpasswd: /tmp/buildd/openldap2-2.1.30/libraries/liblber/io.c:702: ber_get_next: Assertion `0' failed.
Aborted

Я провел несколько тестов с "ldapsearch -ZZ". Сначала он не работал, но после того, как я добавил строку TLS_CACERT в /etc/ldap/ldap.conf, /etc/libnss-ldap.conf и /etc/pam_ldap.conf, он начал работать. Итак, соответствующие разделы TLS во всех этих файлах:

ssl start_tls
tls_checkpeer no
tls_cacertfile /path/to/ca-root.pem
TLS_CACERT /path/to/ca-root.pem

Но программа smbpasswd продолжала выдавать ошибку.

Я попытался создать файл /etc/smbldap-tools/smbldap.conf со следующим содержимым (после консультации с документацией debian для пакета smbldap-tools), но, как я вижу, smbpasswd поставляется с пакетом samba-common и не использует конфигурацию для smbldap-tools коммунальные услуги.

verify="optional"
cafile="/path/to/ca-root.pem"

У меня вопрос: как установить, какой сертификат ЦС SSL используется программой smbpasswd?

Вы не указываете, какой сертификат CA должен использовать SSL-клиент; вместо этого вы просто добавляете все сертификаты CA в тот же файл. В зависимости от того, какой центр сертификации подписал сертификат сервера, он пытается найти его в этом корневом файле сертификатов.

Вы столкнулись с ошибкой и используете openldap 2.2; обновите его до последней версии: 2.4.x ldap. Тогда тебе будет хорошо.