Estou tentando fazer com que o OpenLDAP no Lenny funcione com o StartTLS. Eu tenho uma máquina Fedora 13 que estou usando como cliente para testes. Até agora, o cliente Fedora está ignorando a diretiva 'host' em /etc/ldap.conf quando tento conectar-me usando ldapsearch. O cliente deseja se conectar a 127.0.0.1:389 mesmo se eu especificar -H ldaps://server.name ativado ao usar ldapsearch. /etc/ldap.conf na máquina cliente está no modo 444.
Mas mesmo quando tento conectar-me 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 uma chave, por favor.
Atualização: você deve usar ~/.ldaprc para configurações como 'host'. Além disso, usei o nmap no servidor ldap e ele mostrou 636 e 389 em estado aberto.
Aqui está o que é impresso na tela quando tento me conectar,ldapsearch -ZZ –x '(objectclass=*)'+ -d -1
ldap_create ldap_extended_operação_s ldap_extended_operação 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: Tentando 192.168.10.41:636 ldap_pvt_connect: fd: 3 tm: -1 assíncrono: 0 ldap_open_defconn: bem-sucedido 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 para 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: desejo=31, escrito=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 msgstr 1 wait4msg ld 0x9bd3050 msgstr 1 (tempo limite infinito) wait4msg continuar ld 0x9bd3050 msgstr 1 todos 1 ** Conexões ld 0x9bd3050: * host: 192.168.10.41 porta: 636 (padrão) refcnt: 2 status: Conectado usado pela última vez: domingo, 6 de junho, 12:54:05 de 2010 ** ld 0x9bd3050 Solicitações pendentes: * msgstr 1, original 1, status InProgress referências pendentes 0, contagem de pais 0 ld 0x9bd3050 contagem de solicitações 1 (abandonado 0) ** ld 0x9bd3050 Fila de resposta: Vazio ld 0x9bd3050 contagem de respostas 0 ldap_chkResponseList ld 0x9bd3050 msgstr 1 todos 1 ldap_chkResponseList retorna ld 0x9bd3050 NULO ldap_int_select read1msg: ld 0x9bd3050 msgstr 1 todos 1 ber_get_next ldap_read: desejo = 8, obtive = 0 ber_get_next falhou. ldap_err2string ldap_start_tls: Não é possível entrar em contato com o servidor LDAP (-1)
Responder1
por padrão, o cliente verifica o certificado do servidor. Basta adicionar "TLS_REQCERT nunca" a /etc/openldap/ldap.conf
Responder2
Consegui fazer o SSL funcionar com o SLAPD no Lenny recentemente. Embora não me lembre exatamente o que fiz, lembro-me de ter algo a ver com a diferença de cifras entre GNUTLS e OPENSSL. Os pacotes SLAPD para Lenny foram compilados no GNUTLS. Pode ter algo a ver comesse.
Responder3
Parece que não consegue ler o arquivo de chave. Você deve ter uma chave sem senha. Adicione openldap ao grupo ssl-cert. Faça o grupo na chave ssl-cert e nas permissões 440. O comando openssl s_client pode ser usado para depurar problemas de tls.
Responder4
Se você tiver um certificado SSL assinado por um certificado intermediário (o que não é incomum atualmente), você terá problemas com TLS no slapd sob Lenny. Conforme mencionado por sybreon Lenny slapd links com GNUTLS, que não suporta todas as opções que você precisa.
A solução é usar o backport Lenny do slapd. No entanto, descobrimos que o backport 2.4.17-2.1~bpo50+1 compila em libdb4.6, que possui um bug que nos afeta após cerca de uma semana de execução.
Portanto, neste ponto, não recomendo usar Lenny para executar o slapd se você precisar de TLS. Atualize para apertar.