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

OpenLDAP с нарушенным StartTLS в Debian Lenny

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

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

Кто-то ударил меня подсказкой, пожалуйста.

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

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

ldap_create
ldap_extended_operation_s
ldap_extended_operation
ldap_send_initial_request
ldap_new_connection 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: Trying 192.168.10.41:636
ldap_pvt_connect: fd: 3 tm: -1 async: 0
ldap_open_defconn: successful
ldap_send_server_request
ber_scanf fmt ({it) ber:
ber_dump: buf=0x9bdbdb8 ptr=0x9bdbdb8 end=0x9bdbdd7 len=31
  0000:  30 1d 02 01 01 77 18 80  16 31 2e 33 2e 36 2e 31   0....w...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 fmt ({) ber:
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   w...1.3.6.1.4.1.  
  0010:  31 34 36 36 2e 32 30 30  33 37                     1466.20037        
ber_flush2: 31 bytes to sd 3
  0000:  30 1d 02 01 01 77 18 80  16 31 2e 33 2e 36 2e 31   0....w...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: want=31, written=31
  0000:  30 1d 02 01 01 77 18 80  16 31 2e 33 2e 36 2e 31   0....w...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 (infinite timeout)
wait4msg continue ld 0x9bd3050 msgid 1 all 1
** ld 0x9bd3050 Connections:
* host: 192.168.10.41  port: 636  (default)
  refcnt: 2  status: Connected
  last used: Sun Jun  6 12:54:05 2010


** ld 0x9bd3050 Outstanding Requests:
 * msgid 1,  origid 1, status InProgress
   outstanding referrals 0, parent count 0
  ld 0x9bd3050 request count 1 (abandoned 0)
** ld 0x9bd3050 Response Queue:
   Empty
  ld 0x9bd3050 response count 0
ldap_chkResponseList ld 0x9bd3050 msgid 1 all 1
ldap_chkResponseList returns ld 0x9bd3050 NULL
ldap_int_select
read1msg: ld 0x9bd3050 msgid 1 all 1
ber_get_next
ldap_read: want=8, got=0

ber_get_next failed.
ldap_err2string
ldap_start_tls: Can't contact LDAP server (-1)

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

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

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

Попробуйте выполнить команду chown openldap: openldap для файлов сертификатов.

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

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

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