Estoy intentando que OpenLDAP en Lenny funcione con StartTLS. Tengo una máquina Fedora 13 que estoy usando como cliente para realizar pruebas. Hasta ahora, el cliente Fedora ignora la directiva 'host' en /etc/ldap.conf cuando intento conectarme usando ldapsearch. El cliente quiere conectarse a 127.0.0.1:389 incluso si especifico -H ldaps://server.name cuando uso ldapsearch. /etc/ldap.conf en la máquina cliente está en modo 444.
Pero incluso cuando intento conectarme localmente desde una sesión ssh, veo errores como este:
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
Alguien me golpeó con un bate de pistas, por favor.
Actualización: debe usar ~/.ldaprc para configuraciones como 'host'. Además, acabo de usar nmap contra el servidor ldap y mostró 636 y 389 en estado abierto.
Esto es lo que se imprime en la pantalla cuando intento conectarme.ldapsearch -ZZ –x '(objectclass=*)'+ -d -1
ldap_create ldap_operación_extendida_s operación_ldap_extendida ldap_send_initial_request ldap_nueva_conexión 1 1 0 ldap_int_conexión_abierta ldap_connect_to_host: TCP 192.168.10.41:636 ldap_new_socket: 3 ldap_prepare_socket: 3 ldap_connect_to_host: Probando 192.168.10.41:636 ldap_pvt_connect: fd: 3 tm: -1 asíncrono: 0 ldap_open_defconn: exitoso 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 a 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: quiero = 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 msgid 1 (tiempo de espera infinito) wait4msg continuar ld 0x9bd3050 msgstr 1 todos 1 ** ld 0x9bd3050 Conexiones: * host: 192.168.10.41 puerto: 636 (predeterminado) refcnt: 2 estado: Conectado utilizado por última vez: domingo 6 de junio a las 12:54:05 de 2010 ** ld 0x9bd3050 Solicitudes pendientes: * msgstr 1, orrigid 1, estado InProgress referencias pendientes 0, recuento de padres 0 ld 0x9bd3050 recuento de solicitudes 1 (abandonado 0) ** ld 0x9bd3050 Cola de respuestas: Vacío ld 0x9bd3050 recuento de respuestas 0 ldap_chkResponseList ld 0x9bd3050 msgstr 1 todos 1 ldap_chkResponseList devuelve ld 0x9bd3050 NULL ldap_int_select read1msg: ld 0x9bd3050 msgstr 1 todos 1 ber_get_next ldap_read: quiero = 8, tengo = 0 ber_get_next falló. ldap_err2cadena ldap_start_tls: No puedo contactar con el servidor LDAP (-1)
Respuesta1
De forma predeterminada, el cliente busca el certificado del servidor. Simplemente agregue "TLS_REQCERT nunca" a /etc/openldap/ldap.conf
Respuesta2
Recientemente logré que SSL funcione con SLAPD en Lenny. Si bien no recuerdo exactamente lo que hice, sí recuerdo que tuvo algo que ver con la diferencia de cifrado entre GNUTLS y OPENSSL. Los paquetes SLAPD para Lenny se compilaron contra GNUTLS. Podría tener algo que ver coneste.
Respuesta3
Parece que no puede leer el archivo clave. Deberías tener una clave sin contraseña. Agregue openldap al grupo ssl-cert. Cree el grupo con la clave ssl-cert y los permisos 440. El comando openssl s_client se puede utilizar para depurar problemas de tls.
Respuesta4
Si tiene un certificado SSL firmado por un certificado intermedio (lo cual no es raro hoy en día), tendrá problemas con TLS en slapd bajo Lenny. Como lo mencionó sybreon, Lenny slapd vincula con GNUTLS, que no admite todas las opciones que necesita.
La solución es utilizar el backport Lenny de slapd. Sin embargo, descubrimos que el backport 2.4.17-2.1~bpo50+1 se compila contra libdb4.6, que tiene un error que nos afecta después de ejecutarlo durante aproximadamente una semana.
Así que en este punto no recomiendo usar Lenny para ejecutar slapd si necesitas TLS. Actualice para apretar en su lugar.