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
simon009 - 18 avril 2011 à 20:42
A voir également:
- Mettre la sécurité ssl avec LDAP
- Mode securite - Guide
- Https //www.google.com/ gws_rd=ssl ✓ - Forum Réseaux sociaux
- Page de démarage firefox google /?gws_rd=ssl ✓ - Forum Virus
- Http://www.google.com/intl/xx-hacker/ - Forum Réseaux sociaux
- Télécharger sans chiffrement ssl - Forum Réseaux sociaux
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
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
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
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
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 !
/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 !
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
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 ?
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 ?
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
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 ?
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 ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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
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
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,
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,
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
18 mars 2011 à 18:53
up
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
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.
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,
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,
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
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 ?
./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 ?
Ç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)
./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)
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
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 !
/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 !
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
//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
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
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
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