Я пытаюсь заставить 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. Вместо этого обновитесь, чтобы сжать.