OpenLDAP с StartTLS не работает на Debian Lenny

OpenLDAP с StartTLS не работает на Debian Lenny

Я пытаюсь заставить OpenLDAP на Lenny работать с StartTLS. У меня есть машина Fedora 13, которую я использую в качестве клиента для тестирования. Пока что клиент Fedora игнорирует директиву 'host' в /etc/ldap.conf, когда я пытаюсь подключиться с помощью ldapsearch. Клиент хочет подключиться к 127.0.0.1:389, даже если я указываю -H ldaps://server.name on при использовании ldapsearch. /etc/ldap.conf на клиентской машине находится в режиме 444.

Но даже когда я пытаюсь подключиться локально из сеанса SSH, я вижу такие ошибки: ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)

Кто-нибудь, дайте мне ключ-бат, пожалуйста.

Обновление: вы должны использовать ~/.ldaprc для таких настроек, как 'host'. Кроме того, я только что использовал nmap против сервера ldap, и он показал 636 и 389 в открытом состоянии.

Вот что выводится на экран, когда я пытаюсь подключиться,ldapsearch -ZZ –x '(objectclass=*)'+ -d -1

ldap_create
ldap_extended_operation_s
ldap_extended_operation
ldap_send_initial_request
ldap_новое_подключение 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP 192.168.10.41:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Попытка 192.168.10.41:636
ldap_pvt_connect: fd: 3 tm: -1 асинхронный: 0
ldap_open_defconn: успешно
ldap_send_server_request
ber_scanf fmt ({it) ber:
ber_dump: buf=0x9bdbdb8 ptr=0x9bdbdb8 end=0x9bdbdd7 len=31
  0000: 30 1д 02 01 01 77 18 80 16 31 2д 33 2д 36 2д 31 0....н...1.3.6.1  
  0010: 2e 34 2e 31 2e 31 34 36 36 2e 32 30 30 33 37 .4.1.1466.20037   
ber_scanf фмт ({) бер:
ber_dump: buf=0x9bdbdb8 ptr=0x9bdbdbd end=0x9bdbdd7 len=26
  0000: 77 18 80 16 31 2e 33 2e 36 2e 31 2e 34 2e 31 2e с...1.3.6.1.4.1.  
  0010: 31 34 36 36 2e 32 30 30 33 37 1466.20037        
ber_flush2: 31 байт на sd 3
  0000: 30 1д 02 01 01 77 18 80 16 31 2д 33 2д 36 2д 31 0....н...1.3.6.1  
  0010: 2e 34 2e 31 2e 31 34 36 36 2e 32 30 30 33 37 .4.1.1466.20037   
ldap_write: требуется=31, написано=31
  0000: 30 1д 02 01 01 77 18 80 16 31 2д 33 2д 36 2д 31 0....н...1.3.6.1  
  0010: 2e 34 2e 31 2e 31 34 36 36 2e 32 30 30 33 37 .4.1.1466.20037   
ldap_result ld 0x9bd3050 msgid 1
wait4msg ld 0x9bd3050 msgid 1 (бесконечный тайм-аут)
wait4msg продолжить ld 0x9bd3050 msgid 1 все 1
** ld 0x9bd3050 Подключения:
* хост: 192.168.10.41 порт: 636 (по умолчанию)
  refcnt: 2 статус: Подключен
  последний раз использовался: Вс июн 6 12:54:05 2010


** ld 0x9bd3050 Невыполненные запросы:
 * msgid 1, origid 1, статус InProgress
   Невыполненные рекомендации 0, количество родителей 0
  ld 0x9bd3050 количество запросов 1 (отказано 0)
** ld 0x9bd3050 Очередь ответов:
   Пустой
  ld 0x9bd3050 количество ответов 0
ldap_chkResponseList ld 0x9bd3050 msgid 1 все 1
ldap_chkResponseList возвращает ld 0x9bd3050 NULL
ldap_int_select
read1msg: ld 0x9bd3050 msgid 1 все 1
ber_get_next
ldap_read: требуется=8, получено=0

ber_get_next не удалось.
ldap_err2string
ldap_start_tls: Невозможно связаться с сервером LDAP (-1)

решение1

По умолчанию клиент проверяет наличие сертификата сервера. Просто добавьте "TLS_REQCERT never" в /etc/openldap/ldap.conf

решение2

Недавно мне удалось заставить SSL работать с SLAPD на Lenny. Хотя я не помню точно, что я сделал, я припоминаю, что это было как-то связано с разницей в шифрах между GNUTLS и OPENSSL. Пакеты SLAPD для Lenny были скомпилированы с использованием GNUTLS. Возможно, это связано сэтот.

решение3

Похоже, что он не может прочитать файл ключа. У вас должен быть ключ без пароля. Добавьте openldap в группу ssl-cert. Создайте группу на ключе ssl-cert и установите разрешения 440. Команду openssl s_client можно использовать для отладки проблем с tls.

решение4

Если у вас есть SSL-сертификат, подписанный промежуточным сертификатом (что не редкость в наши дни), у вас будут проблемы с TLS в slapd под Lenny. Как упоминал sybreon Lenny, slapd связан с GNUTLS, который не поддерживает все необходимые вам опции.

Решение — использовать бэкпорт Lenny slapd. Однако мы обнаружили, что бэкпорт 2.4.17-2.1~bpo50+1 компилируется с libdb4.6, в котором есть ошибка, которая влияет на нас после работы в течение недели.

Так что на данный момент я не рекомендую использовать Lenny для запуска slapd, если вам нужен TLS. Вместо этого обновитесь до squeeze.

Связанный контент