Mettre la sécurité ssl avec LDAP

Simon009 Messages postés 60 Statut Membre -  
 simon009 -
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

  1. Ronieee Messages postés 75 Statut Membre 38
     
    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
  2. Ronieee Messages postés 75 Statut Membre 38
     
    - 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
  3. Simon009 Messages postés 60 Statut Membre 3
     
    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
  4. Simon009 Messages postés 60 Statut Membre 3
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Profil bloqué
     
    Bonjour,

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

    Cordialement,
    0
  7. Ronieee Messages postés 75 Statut Membre 38
     
    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
  8. Simon009 Messages postés 60 Statut Membre 3
     
    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
  9. Simon009 Messages postés 60 Statut Membre 3
     
    up
    0
  10. Simon009 Messages postés 60 Statut Membre 3
     
    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
  11. simon009
     
    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
  12. Simon009 Messages postés 60 Statut Membre 3
     
    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
  13. simon009
     
    Ç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
  14. Ronieee Messages postés 75 Statut Membre 38
     
    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
  15. simon009
     
    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
  16. Simon009 Messages postés 60 Statut Membre 3
     
    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
    1. fatadn
       
      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
  17. simon009
     
    Je ne sais pas, j'ai fait sa sous linux debian 6.
    0