por padrão, o cliente verifica o certificado do servidor. Basta adicionar "TLS_REQCERT nunca" ao /etc/openldap/ldap.conf
Estou tentando fazer com que o OpenLDAP no Lenny trabalhe com o StartTLS. Eu tenho uma máquina do Fedora 13 que estou usando como cliente para teste. Até agora, o cliente Fedora está ignorando a diretiva 'host' em /etc/ldap.conf quando tento conectar usando o ldapsearch. O cliente deseja se conectar a 127.0.0.1:389 mesmo se eu especificar -H ldaps: //server.name ao usar ldapsearch. /etc/ldap.conf na máquina cliente está no modo 444.
Mas mesmo quando tento conectar localmente a partir de uma sessão ssh, vejo erros como este:
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
Alguém me bateu com um cluebat, plz.
Atualização: você deve usar ~ / .ldaprc para configurações como 'host'. Além disso, eu apenas usei o nmap contra o servidor ldap e ele mostrou 636 e 389 em um estado aberto.
Veja o que imprime na tela quando tento me conectar, 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)
por padrão, o cliente verifica o certificado do servidor. Basta adicionar "TLS_REQCERT nunca" ao /etc/openldap/ldap.conf
Eu consegui fazer o SSL trabalhar com o SLAPD em Lenny recentemente. Embora eu não me lembre exatamente do que fiz, lembro-me de ter algo a ver com a diferença de cifras entre o GNUTLS e o OPENSSL. Os pacotes do SLAPD para Lenny foram compilados contra o GNUTLS. Pode ter algo a ver com este .
Parece que não é possível ler o arquivo-chave. Você deve ter uma chave sem senha. Adicione openldap ao grupo ssl-cert. Faça o grupo na chave ssl-cert e as permissões 440. O comando openssl s_client pode ser usado para depurar problemas de tls.
Tente fazer um openldap chown: openldap nos arquivos de certificado.
Se você tiver um certificado SSL assinado por um certificado intermediário (o que não é incomum atualmente), você terá problemas com o TLS em slapd sob Lenny. Como mencionado pelo sybreon, o Lenny slapd faz o link com o GNUTLS, que não suporta todas as opções que você precisa.
A solução é usar o backport de Lenny slapd. No entanto, descobrimos que o backport 2.4.17-2.1 ~ bpo50 + 1 compila contra o libdb4.6, que tem um bug nele que nos afeta depois de correr por cerca de uma semana.
Então, neste ponto, eu não recomendo usar o Lenny para executar slapd se você precisar de TLS. Atualize para espremer.
Tags tls openldap debian-lenny