Mettre la sécurité ssl avec LDAP

Fermé
Simon009 Messages postés 55 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 9 septembre 2011 - Modifié par Simon009 le 15/02/2011 à 16:04
 simon009 - 18 avril 2011 à 20:42
Bonjour,

J'essaye d'activer la sécurité ssl avec mon LDAP, mais ça ne fonctionne pas, j'ai suivi quelque tutoriaux, mais sans grand résultat. Pouvait vous m'aider. J'utilise Debian 6.

Merci,

http://kidrek.fr/blog/?p=30
http://www.vogelweith.com/debian_server/050_openldap.php


16 réponses

Ronieee Messages postés 70 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 6 février 2013 38
25 mars 2011 à 16:32
J'ai réussi à corriger mon problème de cette manière :

1)
Lors de l'installation de OpenLdap, j'ai rajouté les options de tls :

./configure --with-tls
make depend
make
make install

Ainsi, les options de tls sont crée lors de la compilation.

2)
Ensuite, les fichiers de confs sont :

slapd.conf:
_access to *
by self write
by users read
by anonymous auth

TLSCipherSuite HIGH:MEDIUM:+TLSv1:+SSLv2:+SSLv3
TLSCertificateFile /usr/local/etc/openldap/CA/server.pem
TLSCertificateKeyFile /usr/local/etc/openldap/CA/server.key
TLSCACertificateFile /usr/local/etc/openldap/CA/cacert.pem
VerifyClient never_

ldap.conf:
tls_checkpeer yes
tls_ciphers HIGH
ssl yes
tls_cacert /usr/local/etc/openldap/CA/cacert.pem

3)
J'ai crée un fichier d'éxecution slapd_launch :

#!/bin/sh
export LD_LIBRARY_PATH=.
cd 'dirname $0'
./slapd -d127 -h "ldap:/// ldaps:///" -f slapd.conf

(l'option -d est le verbose a enlever pour version finale)

J'ai fait d'autre manip par la suite qui n'avait rien en rapport avec le tls mais pour avoir un service et non plus un executable
2
Ronieee Messages postés 70 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 6 février 2013 38
28 mars 2011 à 11:01
- Mon dossier slapd était à :

/usr/local/etc/openldap/

Tous mes fichiers de confs étaient présents dans ce dossier;
L'erreur que j'avais faite à la base, c'était l'oubli de l'option --with-tls lors de la compilation.
Ensuite, j'ai découvert que les executables (et non les services) était dans le répertoire /etc/rc.d/init.d/


- Pour créer une service, j'ai crée un fichier slapd dans le /etc/init.d/ :

#!/bin/sh
. /etc/rc.d/init.d/functions

ldap_root=/usr/local/etc/openldap
launcher=$ldap_root/slapd_launch
prog=slapd
RETVAL=0

start() {
echo -n $"Starting $prog: "
daemon $launcher $ldap_root
RETVAL=$?
echo
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f $ldap_root/pid.lock
}

case $1 in
start) start;;
stop) stop;;
restart) stop; start;;
status) status $httpd; RETVAL=$?;;
*) echo $"Usage: $0 {start|stop|restart|status}";;
esac

Pour demarrer le serveur ldap:
/etc/init.d/slapd start ou restart

Bref, bon courage à toi, c'était bien lourd a faire !
2
Simon009 Messages postés 55 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 9 septembre 2011 3
16 févr. 2011 à 20:21
J'ai suivi ce tutoriel : http://kidrek.fr/blog/?p=30

Quand je fait la commande pour tester : ldapsearch -x "(objectClass=*)" -H ldaps://adresse IP de l'hôte


Sa me donne cette erreur : ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)

mais si j'enleve le s de ldaps://

Sa fonctionne.

Quand je fait

netstat -plane |grep ":636"

Sa ne me donne rien

Pouvait vous m'aider ?
1
Simon009 Messages postés 55 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 9 septembre 2011 3
14 mars 2011 à 15:09
J'ai modifier le fichier /etc/default/slapd en mettant:
SLAPD_SERVICES="ldap:/// ldaps:///"

netstat -plane |grep ":636" fonctionne maintenant, il me retourne :

tcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN 0 4958 1762/slapd
tcp6 0 0 :::636 :::* LISTEN 0 4959 1762/slapd

Aussi quand je fais ldapsearch -b "dc=domaine" -ZZ -xh debian6

Ça me donne

ldap_start_tls: Protocol error (2)
additional info: unsupported extended operation

Mais j'ai toujours le même problème, il me dit qu'il ne peut pas se connecter à mon serveur LDAP. ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
J'utilise une vraie certification SSL.

Des idées ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,

de quel type de certificat de sécurité SSL s'agit-il ?

Cordialement,
0
Ronieee Messages postés 70 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 6 février 2013 38
15 mars 2011 à 11:28
Je ré-up le sujet car j'ai exactement le meme problème.

il me dit qu'il ne peut pas se connecter à mon serveur LDAP et m'affiche cette erreur :
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
alors qu'en normal, ca fonctionnne...

J'avais aussi essayé de changé le /etc/default/slapd, mais rien n'y fait. Tjs le mm problème.

Qu'entend tu par "quel type de certificat", Roberto125 ?
Pour ma part, j'ai généré un certificat grace à openssl et cette commande :

# openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout \ldapkey.pem -out ldapcert.pem
0
Simon009 Messages postés 55 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 9 septembre 2011 3
15 mars 2011 à 22:10
J'ai essayer un certificat ssl de GlobalSSL et un auto-générer meme erreur. De plus, Quand je fais

openssl s_client -connect nom du serveur ldap:636

Sa me donne : CONNECTED(00000003)
3551:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:188:

Des idée de solution.

Merci,
0
Simon009 Messages postés 55 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 9 septembre 2011 3
18 mars 2011 à 18:53
up
0
Simon009 Messages postés 55 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 9 septembre 2011 3
Modifié par Simon009 le 25/03/2011 à 21:01
Pour la compilation toute a bien fonctionner sauf que je ne trouve pas mon dossier slapd, on dirait qu'il ne l'as pas installer. Je ne peut pas démarrer mon service slapd mais je trouve bien slapd.conf.
0
Salut,

Merci pour ton aide, j'ai effectué les modifications que tu m'as dit et voila ce que ça me donne quand je veux démarrer mon serveur LDAP. Pour /etc/rc.d/init.d/functions je n'est tout simplement pas ce dossier sur mon serveur, J'ai /etc/rc0.d ou rc1.d jusqu'à 6

/etc/init.d/slapd start

/etc/init.d/slapd: line 3: /etc/rc.d/init.d/functions: Aucun fichier ou dossier de ce type

Starting slapd: daemon: fatal: refusing to execute unsafe program: /usr/local/etc/openldap/slapd_launch (/usr/local/etc is group writable)

Peux-tu m'aider ?

Merci,
0
Simon009 Messages postés 55 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 9 septembre 2011 3
1 avril 2011 à 17:45
J'ai essayer ta commande pour démarrer mon service et sa me donne que ldap ne supporte pas ssl/tls


./slapd -d127 -h " ldaps:///192.168.254.148" -f /usr/local/etc/slapd.conf


@(#) $OpenLDAP: slapd 2.4.23 (Mar 25 2011 14:20:07) $
root@debian6:/home/simon/openldap_2.4.23.orig/servers/slapd
ldap_pvt_gethostbyname_a: host=debian6, r=0
daemon_init: ldaps:///192.168.254.148
daemon_init: listen on ldaps:///192.168.254.148
daemon_init: 1 listeners to open...
ldap_url_parse_ext(ldaps:///192.168.254.148)
daemon: TLS not supported (ldaps:///192.168.254.148)
slapd stopped.
connections_destroy: nothing to destroy.

Sa ta fait sa ?
0
Ça l'as fonctionner, mais je bloque dans le démarrage, ça me fait cette erreur quand, j'écris cette ligne pour le démarrer.

./slapd -d127 -h "ldap:/// ldaps:///" -f /usr/local/etc/openldap/slapd.conf


/usr/local/etc/openldap/slapd.conf: line 65: <suffix> invalid DN 21 (Invalid syntax)
0
Ronieee Messages postés 70 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 6 février 2013 38
5 avril 2011 à 16:00
Quand tu dis :

/usr/local/etc/openldap/slapd.conf: line 65: <suffix> invalid DN 21 (Invalid syntax)

c'est surement que dans ton slapd.conf (ligne 65 comme précisé), ton DN n'est pas conforme à LDAP.

C'est à dire que j'ai déjà eu cette erreur, c'était parce que je me trompais sur la forme de mes DN. Mon pbleme était:

dn = "admin, dc=example, dc=com"
dn = "cn=admin, dc=example, dc=com".

Le premier DN était faux, ms c'était surtout une erreur d'étourderie. Tu as peut-être oublié un petit champs ou autre à un endroit ^^.

Allez, tu y es presque =D !
0
Je ne voit pas mon erreur dans ma config, peut être pourra tu voir l'erreur. Aussi, je ne trouve pas mes schéma, j'en voit dans /usr/local/etc/openldap/schema/ mais pas toute.


//usr/local/etc/openldap/ldap.conf

#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

BASE dc=exemple,dc=com
URI ldaps://adresse ip

tls_checkpeer yes
tls_ciphers HIGH
ssl yes
tls_cacert /usr/local/etc/openldap/CA/cacert.pem

#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never


/usr/local/etc/openldap/slapd.conf


# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.

#include /usr/local/etc/openldap/schema/core.schema
#include /usr/local/etc/openldap/schema/cosine.schema
#include /usr/local/etc/openldap/schema/nis.schema
#include /usr/local/etc/openldap/schema/inetorgperson.schema


# Define global ACLs to disable default read access.

# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral ldap://root.openldap.org

pidfile /usr/local/var/run/slapd.pid
argsfile /usr/local/var/run/slapd.args

TLSCipherSuite HIGH:MEDIUM:+TLSv1:+SSLv2:+SSLv3
TLSCertificateFile /usr/local/etc/openldap/CA/server.pem
TLSCertificateKeyFile /usr/local/etc/openldap/CA/server.key
TLSCACertificateFile /usr/local/etc/openldap/CA/cacert.pem
TLSVerifyClient never


# Load dynamic backend modules:
# modulepath /usr/local/libexec/openldap
moduleload back_hdb
# moduleload back_hdb.la
# moduleload back_ldap.la

# Sample security restrictions
# Require integrity protection (prevent hijacking)
# Require 112-bit (3DES or better) encryption for updates
# Require 63-bit encryption for simple bind
# security ssf=1 update_ssf=112 simple_bind=64

# Sample access control policy:
# Root DSE: allow anyone to read it
# Subschema (sub)entry DSE: allow anyone to read it
# Other DSEs:
# Allow self write access
# Allow authenticated users read access
# Allow anonymous users to authenticate
# Directives needed to implement policy:
# access to dn.base="" by * read
# access to dn.base="cn=Subschema" by * read
access to *
by self write
by users read
by anonymous auth

# if no access controls are present, the default policy
# allows anyone and everyone to read anything but restricts
# updates to rootdn. (e.g., "access to * by * read")
#
# rootdn can always read and write EVERYTHING!

#######################################################################
# BDB database definitions
#######################################################################

database hdb
suffix "dc=exemple,dc=com"
rootdn "cn=admin,dc=exemple,dc=com"

rootpw {SSHA}bgFRgv7+wknb3Xj7WVda3js/Hx8n6Yw2
# Cleartext passwords, especially for the rootdn, should
# be avoid. See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw secret
# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory /usr/local/var/openldap-data
# Indices to maintain
index objectClass eq
index uid eq
0
Simon009 Messages postés 55 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 9 septembre 2011 3
Modifié par Simon009 le 6/04/2011 à 21:56
Bon,

J'ai finalement réussi a le démarrer et sa fonctionne, il manquer les schéma, il a fallu j'aille les chercher dans le dossier openldap ou il a compiler et les transférer dans mon dossier de schéma
0
Bonjour,

SVP est ce qu'il ya possibilité de démarrer le Service Openldap en local ?
dans mon cas il ne démarre pas :s et je ne sais pas exactement pourquoi !!
Je travail sous windows xp

Svp j'ai besoin d'aide :s
0
Je ne sais pas, j'ai fait sa sous linux debian 6.
0