[Debian] Openldap : mise en place de TLS

Openldap : mise en place de TLS [Debian] - Linux et OS Alternatifs

Marsh Posté le 19-04-2006 à 00:30:32    

Bonsoir,
je poste en désespoir de cause, j'ai passé quelques jours à essayer de mettre en place TLS sur mon annuaire LDAP et ça ne marche toujours pas.
Pourtant la démarche est assez simple en soi, mais j'ai toujours la meme erreur.
 
Présentation :  
Debian 3.1r1, OpenLDAP 2.2.23-8, Samba 3.0.14a, libnss-ldap 238-1, libpam-ldap 178-1, smbldap-tools 0.9.2
La machine nomme PDC-SRV appartient au domaine "oac" et sert de controleur de domaine (PDC) Samba avec annuaire LDAP, plus quelques services (DHCP, DNS, ...)
 
J'ai suivi plusieurs tutos (plusieurs se recoupent et divergent), et je suis arrivé à une configuration qui marche très bien sans TLS.
Le problème vient quand j'active TLS avec start_tls (pas SSL, je reste sur le port 389 avec la couche TLS).
 
Voici les modifications pour TLS, tout d'abord les certificats :
 
mkdir /etc/ldap/cert
 
*** certif serveur
# openssl genrsa -out serverkey.pem 1024
# openssl req -new -key serverkey.pem -out servercert.req
tout est laissé par défaut, sauf le CN : PDC-SRV.oac
 
*** certif de la CA
# openssl genrsa -out cakey.pem 1024
# openssl req -new -x509 -key cakey.pem -out cacert.pem -days 365
tout est laissé par défaut, sauf le CN : CA
 
*** signature du certif serveur par la CA
# openssl x509 -req -in servercert.req -out servercert.pem -CA cacert.pem -CAkey cakey.pem -days 365 -CAcreateserial
# chmod 400 serverkey.pem
 
*** modification de /etc/ldap/slapd.conf
TLSCertificateFile      /etc/ldap/cert/servercert.pem
TLSCertificateKeyFile   /etc/ldap/cert/serverkey.pem
TLSCACertificateFile    /etc/ldap/cert/cacert.pem
 
*** modification de /etc/ldap/ldap.conf
HOST 127.0.0.1 # pour info, deja présent
TLS_CACERT /etc/ldap/cert/cacert.pem
ssl start_tls
tls_checkpeer yes
tls_cacertfile /etc/ldap/cert/cacert.pem
 
*** Redémarrage du serveur
# /etc/init.d/slapd restart
pas d'erreur
 
*** Tests de recherche dans l'annuaire
# ldapsearch -b 'dc=oac' -ZZ -xh PDC-SRV.oac -v
ldap_initialize( ldap://PDC-SRV.oac )
ldap_start_tls: Can't contact LDAP server (-1)
 
# ldapsearch -b 'dc=oac' -Z -xh PDC-SRV.oac -v
ldap_initialize( ldap://PDC-SRV.oac )
ldap_start_tls: Can't contact LDAP server (-1)
ldap_bind: Can't contact LDAP server (-1)
 
# ldapsearch -b 'dc=oac' -ZZ -x -v
ldap_initialize( DEFAULT )
ldap_start_tls: Connect error (-11)
 additionnal info: TLS: hostname does not match CN in peer certificate
 
lors de ce test, je vois dans les logs de slapd cette ligne :
connection_read(9): unable to get TLS client DN, error 49 id=5
 
# ldapsearch -b 'dc=oac' -Z -x -v
ldap_initialize( DEFAULT )
ldap_start_tls: Connect error (-11)
 additionnal info: TLS: hostname does not match CN in peer certificate
filter: (objectclass=*)
requesting: ALL
[...] affichage des entrées de la base LDAP, ça marche si TLS n'est pas employé donc.
 
Peut-être que ces tests peuvent permettre de voir d'où vient le problème  :??:  
 
Pourriez-vous m'aider à résoudre ce problème svp ?
J'espère avoir été assez clair dans mon explication, c'est peut-être une petite bricole à coté de laquelle je suis passé, ou bien un problème que certains d'entre vous ont déjà rencontré, tout conseil est plus que bienvenu !  :jap:  
Merci d'avance


Message édité par Moa_ le 19-04-2006 à 00:34:16
Reply

Marsh Posté le 19-04-2006 à 00:30:32   

Reply

Marsh Posté le 20-04-2006 à 11:15:23    

up

Reply

Marsh Posté le 20-04-2006 à 11:39:00    

Tu as quoi dans /etc/default/slapd


---------------
Fais le ou ne le fais pas, mais il n'y a pas d'essai !!!
Reply

Marsh Posté le 20-04-2006 à 14:00:31    

/etc/default/slapd

Citation :

SLAPD_CONF=
SLAPD_USER=
SLAPD_GROUP=
SLAPD_PIDFILE=
TRY_BDB_RECOVERY=yes
SLURPD_START=auto
SLAPD_SERVICES="ldap://127.0.0.1"
SLAPD_OPTIONS="-4"
SLURPD_OPTIONS=""

Reply

Marsh Posté le 20-04-2006 à 14:17:54    

Salut,
 
SLAPD_CONF=
SLAPD_USER=
SLAPD_GROUP=
SLAPD_PIDFILE=
TRY_BDB_RECOVERY=yes
SLURPD_START=auto
SLAPD_SERVICES="ldap://127.0.0.1"     -->   il manque ldaps://127.0.0.1
SLAPD_OPTIONS="-4"
SLURPD_OPTIONS=""

Reply

Marsh Posté le 20-04-2006 à 14:21:44    

Même résultat, serveur redémarré bien sur.
D'après ce que j'ai compris TLS utilise ldap:// sur port 389 alors que SSL utilise ldaps:// sur port 636, je cherche à utiliser TLS, c'est pour ça que je ne l'avais pas mis.


Message édité par Moa_ le 20-04-2006 à 14:24:13
Reply

Marsh Posté le 20-04-2006 à 14:31:00    

Désolé, j'avais pas vu que tu l'avais écrit dans le 1er post...
 
Dans slapd.conf, utilises-tu la vérification du certificat client (directive TLSVerifyClient) ?
Si ce n'est pas le cas précises le dedans (TLSVerifyClient never), sinon il faut en générer un pour chaque client et l'installer.

Reply

Marsh Posté le 20-04-2006 à 15:01:13    

Je ne l'avais pas effectivement, je l'ai rajouté, ça n'a pas marché mais j'ai ensuite essayé un truc :
j'ai changé dans le /etc/default/slapd "ldap://127.0.0.1" par "ldap://PDC-SRV.oac" et redémarré le serveur.
la recherche : # ldapsearch -b 'dc=oac' -ZZ -xh PDC-SRV.oac -v affiche désormais les entrées de la base, donc j'ai l'impression que ça marche.
 
Seulement je n'ai rien dans les logs concernant TLS (meme avec l'option -1 pour slapd), alors je ne sais comment vérfier le bon fonctionnement.
 
Je fais un tcpdump entre mon serveur et un client windows qui se connecte, à la copie d'un fichier sur serveur vers le client (tls activé sur samba aussi) je ne vois pas de différence dans les paquets transmis, y'a des caractères, des points, des lettres, des SMB, mais ça se ressemble beaucoup entre le mode normal et le mode TLS :o


Message édité par Moa_ le 20-04-2006 à 16:40:05
Reply

Marsh Posté le 21-04-2006 à 08:36:11    

Moi j'avais çà dans mon /etc/default, et je fonctionne avec ldaps pour crypter mes infos.
 
SLAPD_SERVICES="ldap:/// ldaps:///"


---------------
Fais le ou ne le fais pas, mais il n'y a pas d'essai !!!
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed