Forum Linux.debian/ubuntu Installation Dovecot Postfix

Posté par  .
Étiquettes :
0
25
fév.
2010

Bonjour a tous:

Je dois mettre en place un service de mail avec:
Postfix
Dovecot
Ldap

Pour le moment Ldap et dovecot sont installés. Le but étant de se connecter sur le serveur dovecot a passant par un utilisateur enregistré dans LDAP.
Lors du test en telenet:

Flo-Debian:/home/florian# telnet 127.0.0.1 143
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
* OK Dovecot ready.
. login test@flo-debian.gescom test
. NO Temporary authentication failure.

fichier mail.err:
Feb 25 14:39:32 Flo-Debian dovecot: auth(default): ldap(test@flo-debian.gescom,127.0.0.1): ldap_search((&(objectClass=mailAccount)(mailenable=OK))) failed: No such object

Comment puis-je réussir mon authentification au pres de openLDAP ?

l'utilisateur test a été crée et est visible depuis phpadminldap.
Je travaille sous une Debian Lenny

Merci a tous
  • # Un petit lien

    Posté par  (site web personnel) . Évalué à 1.

    Il semble que cela réponde au problème que tu rencontres, si j'ai bien compris.

    http://www.vogelweith.com/debian_server/07_postfix.php#x1-13(...)
    • [^] # Re: Un petit lien

      Posté par  . Évalué à 1.

      Ben merci bien pour le lien mais c'est le tuto que j'utilise justement pour la configuration du serveur et il me semble que j'ai configurer ca comme indiqué mais toujours le meme problème :s
  • # Configuration ?

    Posté par  (site web personnel) . Évalué à 2.

    Montre déjà tes fichiers de configuration ça pourrais aider.
    Oh et pour faire un telnet tu n'as pas besoin d'être en root.

    "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

    • [^] # Re: Configuration ?

      Posté par  . Évalué à 1.

      Fichier de config: slapd.conf:
      # Features to permit
      #allow bind_v2
      
      # Schema and objectClass definitions
      include         /etc/ldap/schema/core.schema
      include         /etc/ldap/schema/cosine.schema
      include         /etc/ldap/schema/nis.schema
      include         /etc/ldap/schema/inetorgperson.schema
      include         /etc/ldap/schema/mmc.schema 
      include         /etc/ldap/schema/mail.schema
      
      
      # Where the pid file is put. The init.d script
      # will not stop the server if you change this.
      pidfile         /var/run/slapd/slapd.pid
      # List of arguments that were passed to the server
      argsfile        /var/run/slapd/slapd.args
      
      # Read slapd.conf(5) for possible values
      loglevel        256
      
      # Where the dynamically loaded modules are stored
      modulepath	/usr/lib/ldap
      moduleload	back_bdb
      
      # The maximum number of entries that is returned for a search operation
      sizelimit 500
      
      # The tool-threads parameter sets the actual amount of cpu's that is used
      # for indexing.
      tool-threads 1
      
      #######################################################################
      # Specific Backend Directives for bdb:
      # Backend specific directives apply to this backend until another
      # 'backend' directive occurs
      backend		bdb
      
      #######################################################################
      # Specific Backend Directives for 'other':
      # Backend specific directives apply to this backend until another
      # 'backend' directive occurs
      #backend		
      
      #######################################################################
      # Specific Directives for database #1, of type bdb:
      # Database specific directives apply to this databasse until another
      # 'database' directive occurs
      database        bdb
      
      # The base of your directory in database #1
      suffix          "dc=flo-debian,dc=gescom"
      
      # rootdn directive for specifying a superuser on the database. This is needed
      # for syncrepl.
      rootdn          "cn=admin,dc=flo-debian,dc=gescom"
      rootpw gescom
      # Where the database file are physically stored for database #1
      directory       "/var/lib/ldap"
      
      # The dbconfig settings are used to generate a DB_CONFIG file the first
      # time slapd starts.  They do NOT override existing an existing DB_CONFIG
      # file.  You should therefore change these settings in DB_CONFIG directly
      # or remove DB_CONFIG and restart slapd for changes to take effect.
      
      # For the Debian package we use 2MB as default but be sure to update this
      # value if you have plenty of RAM
      dbconfig set_cachesize 0 2097152 0
      
      # Sven Hartge reported that he had to set this value incredibly high
      # to get slapd running at all. See http://bugs.debian.org/303057 for more
      # information.
      
      # Number of objects that can be locked at the same time.
      dbconfig set_lk_max_objects 1500
      # Number of locks (both requested and granted)
      dbconfig set_lk_max_locks 1500
      # Number of lockers
      dbconfig set_lk_max_lockers 1500
      
      # Indexing options for database #1
      index           objectClass eq
      index cn,sn pres,eq,sub,subany
      
      # Save the time that the entry gets modified, for database #1
      lastmod         on
      
      # Checkpoint the BerkeleyDB database periodically in case of system
      # failure and to speed slapd shutdown.
      checkpoint      512 30
      
      # Where to store the replica logs for database #1
      # replogfile	/var/lib/ldap/replog
      
      # The userPassword by default can be changed
      # by the entry owning it if they are authenticated.
      # Others should not be able to see it, except the
      # admin entry below
      # These access lines apply to database #1 only
      access to attrs=userPassword,shadowLastChange
              by dn="cn=admin,dc=flo-debian,dc=gescom" write
              by anonymous auth
              by self write
              by * none
      
      # Ensure read access to the base for things like
      # supportedSASLMechanisms.  Without this you may
      # have problems with SASL not knowing what
      # mechanisms are available and the like.
      # Note that this is covered by the 'access to *'
      # ACL below too but if you change that as people
      # are wont to do you'll still need this if you
      # want SASL (and possible other things) to work 
      # happily.
      access to dn.base="" by * read
      
      # The admin dn has full write access, everyone else
      # can read everything.
      access to *
              by dn="cn=admin,dc=flo-debian,dc=gescom" write
              by * none
      	by * read
      
      # For Netscape Roaming support, each user gets a roaming
      # profile for which they have write access to
      #access to dn=".*,ou=Roaming,o=morsnet"
      #        by dn="cn=admin,dc=flo-debian,dc=gescom" write
      #        by dnattr=owner write
      
      #######################################################################
      # Specific Directives for database #2, of type 'other' (can be bdb too):
      # Database specific directives apply to this databasse until another
      # 'database' directive occurs
      #database        
      
      # The base of your directory for database #2
      #suffix		"dc=debian,dc=org"
      
      - ldap.conf:
      # LDAP Defaults
      
      # See ldap.conf(5) for details
      # This file should be world readable but not world writable.
      host localhost
      base dc=flo-debian,dc=gescom
      #SIZELIMIT	12
      #TIMELIMIT	15
      #DEREF		never
      
      - dovecot.conf:
      protocols = imap 
      auth default {
        # Space separated list of wanted authentication mechanisms:
        #   plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi
        # NOTE: See also disable_plaintext_auth setting.
        mechanisms = plain login
      
        # LDAP database <doc/wiki/AuthDatabase.LDAP.txt>
        passdb ldap {
          # Path for LDAP configuration file
          args = /etc/dovecot/dovecot-ldap.conf
        }
      
       userdb ldap {
          # Path for LDAP configuration file
          args = /etc/dovecot/dovecot-ldap.conf
        }
      
        user = root
      
       master {
            # Master socket provides access to userdb information. It's typically
            # used to give Dovecot's local delivery agent access to userdb so it
            # can find mailbox locations.
            path = /var/run/dovecot/auth-master
            #mode = 0600
            # Default user/group is the one who started dovecot-auth (root)
            user = vmail 
            group = mail
          }
      
      dovecot-ldap.conf:
      #
      # NOTE: If you're not using authentication binds, you'll need to give
      # dovecot-auth read access to userPassword field in the LDAP server.
      # With OpenLDAP this is done by modifying /etc/ldap/slapd.conf. There should
      # already be something like this:
      
      # access to attribute=userPassword
      #        by dn="<dovecot's dn>" read # add this
      #        by anonymous auth
      #        by self write
      #        by * none
      
      # Space separated list of LDAP hosts to use. host:port is allowed too.
      hosts = flo-debian.gescom
      
      # LDAP URIs to use. You can use this instead of hosts list. Note that this
      # setting isn't supported by all LDAP libraries.
      #uris = 
      
      # Distinguished Name - the username used to login to the LDAP server
      #dn = cn=test,ou=Users,dc=flo-debian,dc=gescom 
      
      # Password for LDAP server
      #dnpass = test
      
      # Use SASL binding instead of the simple binding. Note that this changes
      # ldap_version automatically to be 3 if it's lower. Also note that SASL binds
      # and auth_bind=yes don't work together.
      #sasl_bind = no
      # SASL mechanism name to use.
      #sasl_mech =
      # SASL realm to use.
      #sasl_realm =
      # SASL authorization ID, ie. the dnpass is for this "master user", but the
      # dn is still the logged in user. Normally you want to keep this empty.
      #sasl_authz_id =
      
      # Use TLS to connect to the LDAP server.
      #tls = no
      
      # Use authentication binding for verifying password's validity. This works by
      # logging into LDAP server using the username and password given by client.
      # The pass_filter is used to find the DN for the user. Note that the pass_attrs
      # is still used, only the password field is ignored in it. Before doing any
      # search, the binding is switched back to the default DN.
      auth_bind = yes
      #
      # If you use this setting, it's a good idea to use a different
      # dovecot-ldap.conf for userdb (it can even be a symlink, just as long as the
      # filename is different in userdb's args). That way one connection is used only
      # for LDAP binds and another connection is used for user lookups. Otherwise
      # the binding is changed to the default DN before each user lookup.
      #
      # For example:
      #   auth_bind_userdn = cn=%u,ou=people,o=org
      #
      #auth_bind_userdn =
      
      # LDAP protocol version to use. Likely 2 or 3.
      ldap_version = 3
      
      # LDAP base. %variables can be used here.
      base = dc=flo-debian, dc=gescom
      
      # Dereference: never, searching, finding, always
      deref = never
      
      # Search scope: base, onelevel, subtree
      scope = subtree
      
      # User attributes are given in LDAP-name=dovecot-internal-name list. The
      # internal names are:
      #   uid - System UID
      #   gid - System GID
      #   home - Home directory
      #   mail - Mail location
      #
      # There are also other special fields which can be returned, see
      # http://wiki.dovecot.org/UserDatabase/ExtraFields
      user_attrs = mailbox=home
      
      # Filter for user lookup. Some variables can be used (see
      # http://wiki.dovecot.org/Variables for full list):
      #   %u - username
      #   %n - user part in user@domain, same as %u if there's no domain
      #   %d - domain part in user@domain, empty if user there's no domain
      user_filter  = (&(objectClass=mailAccount)(mail=%u)(mailenable=OK)) 
      
      
      # Password checking attributes:
      #  user: Virtual user name (user@domain), if you wish to change the
      #        user-given username to something else
      #  password: Password, may optionally start with {type}, eg. {crypt}
      # There are also other special fields which can be returned, see
      # http://wiki.dovecot.org/PasswordDatabase/ExtraFields
      pass_attrs = mail=user,userPassword=password 
      
      # If you wish to avoid two LDAP lookups (passdb + userdb), you can use
      # userdb prefetch instead of userdb ldap in dovecot.conf. In that case you'll
      # also have to include user_attrs in pass_attrs field prefixed with "userdb_"
      # string. For example:
      #pass_attrs = uid=user,userPassword=password,homeDirectory=userdb_home,uidNumber=userdb_uid,gidNumber=userdb_gid
      
      # Filter for password lookups
      pass_filter = (&(objectClass=mailAccount)(mail=%u)(mailenable=OK)) 
      
      # Default password scheme. "{scheme}" before password overrides this.
      # List of supported schemes is in: http://wiki.dovecot.org/Authentication
      #default_pass_scheme = CRYPT
      
      # You can use same UID and GID for all user accounts if you really want to.
      # If the UID/GID is still found from LDAP reply, it overrides these values.
      user_global_uid = vmail 
      user_global_gid = mail
      
      
      Pour info, je ne cherche pas a mettre en place, dans un 1er temps en tout cas, de sécurité ssl ou autres. Voila pour les fichiers et sinon merci pour l'info telnet :)
      • [^] # Re: Configuration ?

        Posté par  (site web personnel) . Évalué à 2.

        Je dirais que ton dovecot ne trouve pas le DN de ton utilisateur. Je ferais comme suis :

        - Création d'un utilisateur dovecot (exemple) :

        dn: cn=dovecot,ou=applications,dc=flo-debian,dc=gescom
        cn: dovecot
        objectClass: applicationProcess
        objectClass: top
        objectClass: simpleSecurityObject
        userPassword: XXXXXXXXXXXXXXXXXXX


        - Changer les accès comme suit :

        access to *
        by dn="cn=admin,dc=flo-debian,dc=gescom" write
        by dn="cn=dovecot,ou=applications,dc=flo-debian,dc=gescom" read
        by * none
        # Ici le by * read ne sert à rien, il vient droit après un by * none
        # by * read


        - Configurer dovecot pour utiliser cet utilisateur

        # Distinguished Name - the username used to login to the LDAP server
        dn = cn=dovecot,ou=applications,dc=flo-debian,dc=gescom

        # Password for LDAP server
        dnpass = XXXXXXXXXXXXXXXXXXX


        J'espère que ça aide.

        "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

        • [^] # Re: Configuration ?

          Posté par  . Évalué à 1.

          Ok merci bien mais j'ai toujours la meme erreur :(

          Sinon jme demandais si ca ne viendrais pas de la ligne:

          devocet.conf:
          pass_filter = (&(objectClass=mailAccount)(mail=%u)(mailenable=OK))

          Si j'ai bien compris je vais faire un filtre sur mes compte mail avec l'objet MaillAcount ?

          Donc est ce que la requête ne poserait pas problème ?
          • [^] # Re: Configuration ?

            Posté par  (site web personnel) . Évalué à 2.

            Oui tu dois avoir une entrée, dans ton annuaire, genre :

            dn: mail=test@flo-debian.gescom,dc=flo-debian,dc=gescom
            objectClass: top
            objectClass: mailAccount
            mail: test@flo-debian.gescom
            mailEnable: OK


            Après je connais pas le schema mailAccount, mais c'est un exemple d'entrée. Tu peux mettre un exporte LDIF de ton annuaire ?

            "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

            • [^] # Re: Configuration ?

              Posté par  . Évalué à 1.

              La résulta de la commande slacat:
              slapcat: slap_init no backend for "dc=example,dc=com"
              Flo-Debian:/etc/ldap# slapcat -f slapd.conf -b "dc=flo-debian,dc=gescom"
              slapd.conf: line 104: rootdn is always granted unlimited privileges.
              slapd.conf: line 122: rootdn is always granted unlimited privileges.
              dn: dc=flo-debian,dc=gescom
              objectClass: top
              objectClass: dcObject
              objectClass: organization
              o: Cointe
              dc: flo-debian
              structuralObjectClass: organization
              entryUUID: ec042294-b5a1-102e-92e5-e1cfa325c27f
              creatorsName:
              createTimestamp: 20100224150625Z
              entryCSN: 20100224150625.774167Z#000000#000#000000
              modifiersName:
              modifyTimestamp: 20100224150625Z
              
              dn: cn=admin,dc=flo-debian,dc=gescom
              objectClass: simpleSecurityObject
              objectClass: organizationalRole
              cn: admin
              description: LDAP administrator
              userPassword:: e2NyeXB0fVRkUS41WmJuLkVYT3M=
              structuralObjectClass: organizationalRole
              entryUUID: ec08c574-b5a1-102e-92e6-e1cfa325c27f
              creatorsName:
              createTimestamp: 20100224150625Z
              entryCSN: 20100224150625.804985Z#000000#000#000000
              modifiersName:
              modifyTimestamp: 20100224150625Z
              
              dn: uid=xillion,dc=flo-debian,dc=gescom
              uid: xillion
              cn: Xillion Ge
              sn: Ge
              mail: xillion@flo-debian.gescom
              userPassword:: eGlsbGlvbg==
              objectClass: inetOrgPerson
              structuralObjectClass: inetOrgPerson
              entryUUID: 0339fc16-b5a4-102e-871f-8d42d3f2711e
              creatorsName: cn=admin,dc=flo-debian,dc=gescom
              createTimestamp: 20100224152123Z
              entryCSN: 20100224152123.708581Z#000000#000#000000
              modifiersName: cn=admin,dc=flo-debian,dc=gescom
              modifyTimestamp: 20100224152123Z
              
              dn: uid=jeff,dc=flo-debian,dc=gescom
              uid: jeff
              cn: Jeff De
              sn: De
              mail: jeff@flo-debian.gescom
              userPassword:: eGlsbGlvbg==
              objectClass: inetOrgPerson
              structuralObjectClass: inetOrgPerson
              entryUUID: 1680749e-b5a4-102e-8720-8d42d3f2711e
              creatorsName: cn=admin,dc=flo-debian,dc=gescom
              createTimestamp: 20100224152156Z
              entryCSN: 20100224152156.047130Z#000000#000#000000
              modifiersName: cn=admin,dc=flo-debian,dc=gescom
              modifyTimestamp: 20100224152156Z
              
              dn: uid=adminServ,dc=flo-debian,dc=gescom
              uid: adminServ
              cn: admin Server
              sn: Server
              userPassword:: YWRtaW5zZXJ2
              objectClass: inetOrgPerson
              structuralObjectClass: inetOrgPerson
              entryUUID: 658cd21c-b5a4-102e-8721-8d42d3f2711e
              creatorsName: cn=admin,dc=flo-debian,dc=gescom
              createTimestamp: 20100224152408Z
              mail: admin@flo-debian.gescom
              entryCSN: 20100225092906.882282Z#000000#000#000000
              modifiersName: cn=admin,dc=flo-debian,dc=gescom
              modifyTimestamp: 20100225092906Z
              
              dn: ou=Users,dc=flo-debian,dc=gescom
              objectClass: organizationalUnit
              objectClass: top
              ou: Users
              structuralObjectClass: organizationalUnit
              entryUUID: 1d98c594-b62e-102e-8a10-9d679643f421
              creatorsName: cn=admin,dc=flo-debian,dc=gescom
              createTimestamp: 20100225074958Z
              entryCSN: 20100225074958.499224Z#000000#000#000000
              modifiersName: cn=admin,dc=flo-debian,dc=gescom
              modifyTimestamp: 20100225074958Z
              
              dn: ou=Groups,dc=flo-debian,dc=gescom
              objectClass: organizationalUnit
              objectClass: top
              ou: Groups
              structuralObjectClass: organizationalUnit
              entryUUID: 1d9e645e-b62e-102e-8a11-9d679643f421
              creatorsName: cn=admin,dc=flo-debian,dc=gescom
              createTimestamp: 20100225074958Z
              entryCSN: 20100225074958.536059Z#000000#000#000000
              modifiersName: cn=admin,dc=flo-debian,dc=gescom
              modifyTimestamp: 20100225074958Z
              
              dn: ou=System,dc=flo-debian,dc=gescom
              objectClass: organizationalUnit
              objectClass: top
              ou: System
              structuralObjectClass: organizationalUnit
              entryUUID: 1d9fab52-b62e-102e-8a12-9d679643f421
              creatorsName: cn=admin,dc=flo-debian,dc=gescom
              createTimestamp: 20100225074958Z
              entryCSN: 20100225074958.544429Z#000000#000#000000
              modifiersName: cn=admin,dc=flo-debian,dc=gescom
              modifyTimestamp: 20100225074958Z
              
              dn: ou=mailDomains,dc=flo-debian,dc=gescom
              objectClass: organizationalUnit
              objectClass: top
              ou: mailDomains
              structuralObjectClass: organizationalUnit
              entryUUID: 73e0b6fa-b62e-102e-8a13-9d679643f421
              creatorsName: cn=admin,dc=flo-debian,dc=gescom
              createTimestamp: 20100225075223Z
              entryCSN: 20100225075223.254769Z#000000#000#000000
              modifiersName: cn=admin,dc=flo-debian,dc=gescom
              modifyTimestamp: 20100225075223Z
              
              dn: cn=test,ou=Users,dc=flo-debian,dc=gescom
              objectClass: inetOrgPerson
              objectClass: CourierMailAccount
              objectClass: top
              sn: nom
              cn: test
              mail: test@flo-debian.gescom
              structuralObjectClass: CourierMailAccount
              entryUUID: c286e02e-b63b-102e-8734-bb8d26488688
              creatorsName: cn=admin,dc=flo-debian,dc=gescom
              createTimestamp: 20100225092738Z
              userPassword:: e01ENX1DWTlyelVZaDAzUEszazZESmllMDlnPT0=
              entryCSN: 20100225093233.422665Z#000000#000#000000
              modifiersName: cn=admin,dc=flo-debian,dc=gescom
              modifyTimestamp: 20100225093233Z
              
              dn: cn=dovecot,ou=Users,dc=flo-debian,dc=gescom
              cn: dovecot
              objectClass: applicationProcess
              objectClass: top
              objectClass: simpleSecurityObject
              userPassword:: ZG92ZWNvdA==
              structuralObjectClass: applicationProcess
              entryUUID: ba25d92c-b702-102e-89d0-614b01b149f7
              creatorsName: cn=admin,dc=flo-debian,dc=gescom
              createTimestamp: 20100226091154Z
              entryCSN: 20100226091154.455029Z#000000#000#000000
              modifiersName: cn=admin,dc=flo-debian,dc=gescom
              modifyTimestamp: 20100226091154Z
              
              Flo-Debian:/etc/ldap# 
              
              Pour la réponse que vient de me donner j'essaye de créer un compte avec les objets necessaires ...
              • [^] # Re: Configuration ?

                Posté par  (site web personnel) . Évalué à 2.

                Non, change plutôt ta requête LDAP (et apprend à utiliser les filtres de recherches, c'est super important dans le LDAP). Pour rechercher ton utilisateur, utilise ce filtre :

                (&(objectclass=CourierMailAccount)(mail=%u))


                Sinon je mettrais pas cn=dovecot dans ou=Users. Je créerais une une ou=Applications, ça me paraît plus logique, mais c'est personnel.

                "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

                • [^] # Re: Configuration ?

                  Posté par  . Évalué à 1.

                  Alors pour l'utlisateur j'ai créer:
                  dn: mail=testing@flo-debian.gescom,dc=flo-debian,dc=gescom
                  objectClass: top
                  objectClass: CourierMailAccount
                  mail: testing@flo-debian.gescom
                  userPassword: {MD5}risfylFZSeXVT7IrjtlVdQ==
                  sn: tester
                  
                  L'objet class de inetorgperson.schéma (que j'ai intégré dans le schéma...):
                  objectclass	( 2.16.840.1.113730.3.2.2.1
                     NAME 'CourierMailAccount'
                  	DESC 'RFC2798: Internet Organizational Person'
                  	SUP top
                      STRUCTURAL
                  	MUST mail
                  	MAY (sn $ userPassword )
                  	)
                  
                  Sinon c'est vrai que j'ai un peu de mal avec LDAP alors: Pourquoi avoir créé le user dovecot? Et pour le filtre je me mélange un peu dans les héritage les différents ObjectClass ... Et au cas ou ca changerais qq chose j'utilise phpadmin ldap. Et pour finir meme apres avoir changé la requete et test ca ne va toujours pas :s La même erreur de le fichier log
                  • [^] # Re: Configuration ?

                    Posté par  . Évalué à 1.

                    Sinon pour infos ca peut toujours aider, j'arrive a me connecter en telnet avec le compte florian qui est mon compte utilisateur sous Debian est-ce normale? Je ne devrais pas savoir me connecter uniquement avec les utilisateurs de LDAP ?
                  • [^] # Re: Configuration ?

                    Posté par  (site web personnel) . Évalué à 2.

                    Le compte est pour ne pas laisser une connexion anonyme.

                    Sinon il faut que tu utilises les fichiers de log de slapd (openLDAP) dans les différents modes de debug, généralement en sachant lire ces fichiers tu corriges tout en peut de temps. C'est un peu d'entraînement mais c'est intéressant.

                    Je connais pas plus que ça la configuration de dovecot, donc poste les logs de slapd avec le "loglevel stats" (slapd.conf) dans un premier temps.

                    "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

                    • [^] # Re: Configuration ?

                      Posté par  . Évalué à 1.

                      Ok pour le compte. Sinon pour les fichier log, pour slapd je ne trouve des log que dans le fichier /var/llog/syslog:
                      Mar  1 08:25:48 Flo-Debian slapd[1740]: daemon: shutdown requested and initiated.
                      Mar  1 08:25:48 Flo-Debian slapd[1740]: slapd shutdown: waiting for 0 threads to terminate
                      Mar  1 08:25:48 Flo-Debian slapd[1740]: slapd stopped.
                      Mar  1 08:25:48 Flo-Debian slapd[2781]: @(#) $OpenLDAP: slapd 2.4.11 (Nov 26 2009 09:17:06) $#012#011root@SD6-Casa:/tmp/buildd/openldap-2.4.11/debian/build/servers/slapd
                      Mar  1 08:25:48 Flo-Debian slapd[2781]: /etc/ldap/slapd.conf: line 104: rootdn is always granted unlimited privileges.
                      Mar  1 08:25:48 Flo-Debian slapd[2781]: /etc/ldap/slapd.conf: line 122: rootdn is always granted unlimited privileges.
                      Mar  1 08:25:48 Flo-Debian slapd[2782]: slapd starting
                      
                      Et pour les loglevel je suppose que tu parles de la commande slapd 256 -d:
                      Flo-Debian:/home/florian# slapd -d 256
                      @(#) $OpenLDAP: slapd 2.4.11 (Nov 26 2009 09:17:06) $
                      	root@SD6-Casa:/tmp/buildd/openldap-2.4.11/debian/build/servers/slapd
                      daemon: bind(7) failed errno=98 (Address already in use)
                      daemon: bind(7) failed errno=98 (Address already in use)
                      slapd stopped.
                      connections_destroy: nothing to destroy.
                      
                      • [^] # Re: Configuration ?

                        Posté par  . Évalué à 1.

                        Excuse moi j'aurais peut etre du arrêter le service avant :

                        Flo-Debian:/home/florian# slapd -d 256

                        @(#) $OpenLDAP: slapd 2.4.11 (Nov 26 2009 09:17:06) $
                        root@SD6-Casa:/tmp/buildd/openldap-2.4.11/debian/build/servers/slapd
                        /etc/ldap/slapd.conf: line 104: rootdn is always granted unlimited privileges.
                        /etc/ldap/slapd.conf: line 122: rootdn is always granted unlimited privileges.
                        • [^] # Re: Configuration ?

                          Posté par  (site web personnel) . Évalué à 2.

                          Mais y'a pas de connexions rien sur ton log. Et lance ton démon avec la ligne suivante :
                          'slapd -h 'ldap:/// ldapi:///' -g openldap -u openldap -f /etc/ldap/slapd.conf -d 256'

                          Et si tu n'as toujours pas de log, augmente le niveau de log.

                          "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

                          • [^] # Re: Configuration ?

                            Posté par  . Évalué à 1.

                            Lorsque je tape la commande que tu m'as donné, il ne se passe pas grand chose, j'ai un prompt (>) dans la console et rien d'autre.
                            Si on augement le -d 1024 ou 2048 le résultat est le meme :s
                            • [^] # Re: Configuration ?

                              Posté par  . Évalué à 1.

                              Alors voila un peu de changement j'ai réussi a obtenir de nouveau log lorsque j'essaye de authentifier en telnet localhost 143:
                              Mar  2 09:26:17 Flo-Debian slapd[3441]: daemon: epoll: listen=8 active_threads=0 tvp=zero
                              Mar  2 09:26:17 Flo-Debian slapd[3441]: daemon: epoll: listen=9 active_threads=0 tvp=zero
                              Mar  2 09:26:43 Flo-Debian dovecot: auth(default): new auth connection: pid=3480
                              Mar  2 09:26:48 Flo-Debian dovecot: auth(default): client in: AUTH#0111#011PLAIN#011service=IMAP#011secured#011lip=127.0.0.1#011rip=127.0.0.1#011resp=
                              Mar  2 09:26:48 Flo-Debian dovecot: auth(default): pam(admin,127.0.0.1): lookup service=dovecot
                              Mar  2 09:26:50 Flo-Debian slapd[3441]: daemon: activity on 1 descriptor
                              Mar  2 09:26:50 Flo-Debian slapd[3441]: daemon: activity on:
                              Mar  2 09:26:50 Flo-Debian slapd[3441]:  14r
                              Mar  2 09:26:50 Flo-Debian slapd[3441]: 
                              Mar  2 09:26:50 Flo-Debian slapd[3441]: daemon: read active on 14
                              Mar  2 09:26:50 Flo-Debian slapd[3441]: conn=0 op=1 BIND dn="cn=u,ou=mailDomains" method=128
                              Mar  2 09:26:50 Flo-Debian slapd[3441]: conn=0 op=1 RESULT tag=97 err=49 text=
                              Mar  2 09:26:50 Flo-Debian slapd[3441]: daemon: epoll: listen=8 active_threads=0 tvp=zero
                              Mar  2 09:26:50 Flo-Debian slapd[3441]: daemon: epoll: listen=9 active_threads=0 tvp=zero
                              Mar  2 09:26:50 Flo-Debian slapd[3441]: daemon: activity on 1 descriptor
                              Mar  2 09:26:50 Flo-Debian slapd[3441]: daemon: activity on:
                              Mar  2 09:26:50 Flo-Debian slapd[3441]: 
                              Mar  2 09:26:50 Flo-Debian slapd[3441]: daemon: epoll: listen=8 active_threads=0 tvp=zero
                              Mar  2 09:26:50 Flo-Debian slapd[3441]: daemon: epoll: listen=9 active_threads=0 tvp=zero
                              Mar  2 09:26:50 Flo-Debian dovecot: auth(default): pam(admin,127.0.0.1): pam_authenticate() failed: User not known to the underlying authentication module
                              Mar  2 09:26:50 Flo-Debian dovecot: auth(default): ldap(admin,127.0.0.1): bind: dn=cn=u,ou=mailDomains
                              Mar  2 09:26:50 Flo-Debian dovecot: auth(default): ldap(admin,127.0.0.1): invalid credentials
                              Mar  2 09:26:51 Flo-Debian dovecot: auth(default): client out: FAIL#0111#011user=admin
                              
                              • [^] # Re: Configuration ?

                                Posté par  (site web personnel) . Évalué à 2.

                                Mar 2 09:26:50 Flo-Debian slapd[3441]: conn=0 op=1 BIND dn="cn=u,ou=mailDomains" method=128

                                Donc tu essaies de t'authentifier avec l'utilisateur "cn=u,ou=mailDomains" sur l'annuaire LDAP. Donc deux choses qu'il faut contrôler :

                                - Tu as un endroits ou ton "%u" s'est transformés en "u" dans ta config de dovecot
                                - Il te manque un morceau de dn au même endroit

                                "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

                                • [^] # Re: Configuration ?

                                  Posté par  . Évalué à 1.

                                  Ok et merci pour tout: Un petite erreur dans le fichier de config, une lettre de trop dans la définition du DN. Avec l'utilisateur test avec le mail test@flo-debain.gescom j'ai réussi a me logger sur le serveur IMAP avec authentification LDAP:
                                  Flo-Debian:/home/florian# telnet localhost 143
                                  Trying 127.0.0.1...
                                  Connected to localhost.
                                  Escape character is '^]'.
                                  * OK Dovecot ready.
                                  . login test@flo-debian.gescom test
                                  . OK Logged in.
                                  
                                  
                                  fichier log:
                                  Mar  2 10:48:52 Flo-Debian slapd[3986]: <= test_filter 6
                                  Mar  2 10:48:52 Flo-Debian slapd[3986]: <= test_filter_and 6
                                  Mar  2 10:48:52 Flo-Debian slapd[3986]: <= test_filter 6
                                  Mar  2 10:48:52 Flo-Debian slapd[3986]: conn=0 op=4 SEARCH RESULT tag=101 err=0 nentries=1 text=
                                  Mar  2 10:48:52 Flo-Debian dovecot: auth(default): master out: USER#0111#011test@flo-debian.gescom#011uid=500#011gid=8
                                  Mar  2 10:48:52 Flo-Debian slapd[3986]: daemon: activity on 1 descriptor
                                  Mar  2 10:48:52 Flo-Debian slapd[3986]: daemon: activity on:
                                  Mar  2 10:48:52 Flo-Debian slapd[3986]: 
                                  Mar  2 10:48:52 Flo-Debian slapd[3986]: daemon: epoll: listen=8 active_threads=0 tvp=zero
                                  Mar  2 10:48:52 Flo-Debian slapd[3986]: daemon: epoll: listen=9 active_threads=0 tvp=zero
                                  Mar  2 10:48:52 Flo-Debian dovecot: imap-login: Login: user=<test@flo-debian.gescom>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
                                  Mar  2 10:48:52 Flo-Debian dovecot: IMAP(test@flo-debian.gescom): mkdir(/HOME_DIRECTORY_USED_BUT_NOT_GIVEN_BY_USERDB/Maildir/cur) failed: Permission denied
                                  
                                  J'ai un petit soucis sur le home directory mais le plus important est la :) Encore merci
                                  • [^] # Re: Configuration ?

                                    Posté par  (site web personnel) . Évalué à 2.

                                    Dans la configuration de dovecot tu as :

                                    user_attrs = mailbox=home

                                    Donc l'attribut "mailbox" dans ton annuaire indique le chemin vers le home de ton utilisateur. Renseigne cette valeur et ça devrait fonctionner.

                                    "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

                                    • [^] # Re: Configuration ?

                                      Posté par  . Évalué à 1.

                                      Ok pour le mailbox mais je n'arrive pas a trouve la syntax correcte: Lors de l'ajout du mailbox via phpldapadmin j'ai une erreur:

                                      Error number: 0x41 (LDAP_OBJECT_CLASS_VIOLATION)
                                      Description: You tried to perform an operation that would cause an undefined attribute to exist or that would remove a required attribute, given the current list of ObjectClasses. This can also occur if you do not specify a structural objectClass when creating an entry, or if you specify more than one structural objectClass.

                                      Pour le schéma je l'ai définit comme suite dans mail.schéma:
                                      objectclass ( 1.3.6.1.4.1.40098.1.2.13.4
                                      NAME 'CompteMail'
                                      DESC 'Mail Account'
                                      SUP top
                                      AUXILIARY
                                      MUST (
                                      mail $ sn $ cn $ userPassword
                                      )
                                      MAY (
                                      mailbox
                                      )
                                      )

                                      As tu une idée de ou peut venir le soucis ?
                                      • [^] # Re: Configuration ?

                                        Posté par  (site web personnel) . Évalué à 2.

                                        Plusieurs choses. Les attributs ont une syntaxe, des fois, qu'il faut respecter. phpmyldapadmin se broute des fois (oui, oui, pour certaines opérations je dois passer par la ligne de commande pour contourner un bug de phpldapadmin (et je devrais prendre le temps d'identifier ça et de reporter)).
                                        Ensuite tu dis que tu as définit. C'est toi qui a fait ce schéma ? Si oui, tu arrêtes ça de suite et tu utilises les schémas existants, surtout ceux qui fournissent déjà les bons attributs. Tu as posixAccount qui le fait. Et, ça tombe bien, comme tu stockes les messages sur cette machine, tu as besoin d'un uid et d'un gid, d'un shell (/bin/false, par exemple) ...

                                        Surtout que j'ai pas trouvé dans le registre de l'IANA le numéro 1.3.6.1.4.1.40098, le dernier étant 1.3.6.1.4.1.35341 il va falloir expliquer comment tu arrives à avoir ce OID : http://www.iana.org/assignments/enterprise-numbers

                                        "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

                                        • [^] # Re: Configuration ?

                                          Posté par  . Évalué à 1.

                                          Alors oui j'ai ajouter "objectClass" a la fin du schéma installé avec onpenldap "inetorgperson"

                                          Pour le posix j'ai bien la création de "ou" posix mais je n'ai pas de posixAccount. J'ai bien un Courier Mail Account mais a chaque fois que je remplis les champs, j'ai le message d'erreur suivant:
                                          0x41 (LDAP_OBJECT_CLASS_VIOLATION)

                                          Jme doute bien que j'ai mal renseigné un attribut mais je tape ce qu'il me semble logique et je sais pas vraiment quoi mettre d'autre.

                                          Sinon je vais être franc, IANA jamais entendu parlé ...

                                          Une dernier chose aussi c'est que grace a l objectClass que j'ai ajouter je peux choisir le RDN sur attributs que je veux ce qui me permet d'avoir un dn du type:
                                          mail=test@flo-debian.gescom,ou=Users,dc=flo-debian,dc=gescom

                                          Et ceci, si je comprend comment ca fonctionne, me permet de trouver mon user avec le filtre mis en place dans dovecot-ldap
                                          • [^] # Re: Configuration ?

                                            Posté par  . Évalué à 1.

                                            Pour finir j'ai bien trouvé le posixAccount mais il n'y a pas tout les attributs dont j'ai besoin ... Comment faire pour ajouter un attributs mail, mailbox, ...
                                          • [^] # Re: Configuration ?

                                            Posté par  (site web personnel) . Évalué à 2.

                                            * Moi c'est ce 1.3.6.1.4.1.40098 dans ton schéma, j'aimerais savoir d'où il vient. C'est toi qui l'a inventé ?

                                            Sinon je vais expliquer brièvement :

                                            objectClass : Définit la classe d'un objet dans ton annuaire. La classe de l'objet permet d'avoir des attributs sur cette objet. Chaque objet peut avoir une et une seule classe _structurelle_ et autant de classes _auxiliaires_ que tu souhaites.

                                            Quand tu créés un objet, tu lui donne une classe structurel (dans ton cas tes utilisateurs ont inetOrgPerson comme classe structurelle). Ensuite tu lui ajoutes une classe auxiliaire posixAccount pour avoir accès à de nouveaux attributs.
                                            Chaque classe a des attributs obligatoires et des attributs facultatifs (must, may). Tous les attributs obligatoires doivent être renseignés.
                                            Les classes supportent l'héritage. Toutes les classes descendent de la classe "top". inetOrgPerson hérite de organizationalPerson qui hérite de person qui hérite de top.
                                            Lorsqu'une classe hérite d'une autre, elle a les attributs des classes parentes plus ses propres attributs.

                                            Donc tu dois ajouter une classe à ton objet (mail=test@flo-debian.gescom,ou=Users,dc=flo-debian,dc=gescom) pour qu'il ait accès aux attributs de posixAccount. Ensuite tu peux renseigner les attributs nécessaires.

                                            Ensuite le DN et le RDN. Le RDN c'est le DN relatif. Pour uid=ebagnoud,ou=users,o=iro (je prends un exemple plus court que tes DN), le RDN est uid=ebagnoud, le DN c'est le chemin complet (uid=ebagnoud,ou=users,o=iro). DN ça veut dire Distinguished Name (qui vient de "specified" donc spécifier, préciser. Donc le nom "précis" ou "spécifique"). RDN c'est Relative Distinguished Name.
                                            Le DN te sert à identifier une entrée dans un annuaire uniquement (c'est un chemin comme "/home/ebagnoud/docs/ldap/export.ldif")

                                            Les filtres de recherches LDAP sont prévus pour chercher sur tout les objets inclus par la zone de recherche (tu as trois niveaux de recherche : base, one, subtree) et tous les attributs des objets.
                                            Si tu cherches (&(objectClass=inetOrgPerson)(uid=ebagnoud)) sur "ou=users,o=iro" avec un niveau "one", tu vas avoir tous les objets ayant l'uid ebagnoud et la classe inetOrgPerson dans le niveau directement au dessous (donc s'il y a un uid=ebagnoud,ou=it,ou=users,o=iro), celui-ci ne sera pas dans le résultat. Si tu changes le niveau en subtree, il sera dans le résultat. Base étant uniquement chercher dans l'objet spécifier.

                                            Donc il faut :
                                            1) Répondre à la question en début de commentaire, c'est super important
                                            2) Un export de l'utilisateur

                                            "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

  • # Config

    Posté par  . Évalué à 1.

    Alors voila j'ai créer un compte posixAccount comme suite:
    dn: mail=dupont@flo-debian.gescom, ou=Users, dc=flo-debian, dc=gescom
    objectClass: top
    objectClass: posixAccount
    objectClass: person
    objectClass: organizationalPerson
    objectClass: inetOrgPerson
    uid: dupont
    cn: Dupont Jean
    sn: Dupont
    givenName: Jean
    uidNumber: 1100
    gidNumber: 1111
    homeDirectory: /home/vmail/dupont
    loginShell: /bin/bash
    userPassword: dupont
    mail: dupont@flo-debian.gescom
    
    J'ai change le filter dans dovecot pour avoir un objetClass=posixAccount et en telnet ca fonctionne. Cependant je n'ai toujours pas d'attributs mailbox et lorsque je me log en telnet j'ai une erreur de permission sur la création d'un dossier mais je ne sais pas comment changer les droits:
    Mar  2 15:31:01 Flo-Debian dovecot: auth(default): ldap(dupont@flo-debian.gescom,127.0.0.1): bind search: base=ou=Users,dc=flo-debian,dc=gescom filter=(&(objectclass=posixAccount)(mail=dupont@flo-debian.gescom))
    Mar  2 15:31:01 Flo-Debian dovecot: auth(default): ldap(dupont@flo-debian.gescom,127.0.0.1): result: mail(user)=dupont@flo-debian.gescom
    Mar  2 15:31:01 Flo-Debian dovecot: auth(default): ldap(dupont@flo-debian.gescom,127.0.0.1): bind: dn=mail=dupont@flo-debian.gescom,ou=Users,dc=flo-debian,dc=gescom
    Mar  2 15:31:01 Flo-Debian dovecot: auth(default): client out: OK#0111#011user=dupont@flo-debian.gescom
    Mar  2 15:31:01 Flo-Debian dovecot: auth(default): master in: REQUEST#0111#0114658#0111
    Mar  2 15:31:01 Flo-Debian dovecot: auth(default): passwd(dupont@flo-debian.gescom,127.0.0.1): lookup
    Mar  2 15:31:01 Flo-Debian dovecot: auth(default): passwd(dupont@flo-debian.gescom,127.0.0.1): unknown user
    Mar  2 15:31:01 Flo-Debian dovecot: auth(default): ldap(dupont@flo-debian.gescom,127.0.0.1): user search: base=ou=Users,dc=flo-debian,dc=gescom scope=subtree filter=(&(objectclass=posixAccount)(mail=dupont@flo-debian.gescom)) fields=mailbox
    Mar  2 15:31:01 Flo-Debian dovecot: auth(default): master out: USER#0111#011dupont@flo-debian.gescom#011uid=500#011gid=8
    Mar  2 15:31:01 Flo-Debian dovecot: IMAP(dupont@flo-debian.gescom): mkdir(/HOME_DIRECTORY_USED_BUT_NOT_GIVEN_BY_USERDB/Maildir/cur) failed: Permission denied
    Mar  2 15:31:01 Flo-Debian dovecot: imap-login: Login: user=<dupont@flo-debian.gescom>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
    
    • [^] # Re: Config

      Posté par  . Évalué à 1.

      Pour l'utilisateur j'en ai créé un nouveau ci dessus mais toujours pas d'attributs mailbox donc je suppose que je dois l'ajouter en auxiliaire dans le schéma inetOrgPerson.

      Pour le numéro c'est moi qui l'ai ajouté et je n'ai fait qu'ajouter un a l'objectclass qui se trouvais au dessus du schéma mail.schéma que j'ai acquis avec le plugin MMC...

      Suivant ton conseil j'ai rétiré tout modif de ma part dans les schémas ...
    • [^] # Re: Config

      Posté par  . Évalué à 1.

      Alors voila ce que j'ai fait pour obtenir l'attribut mailbox:
      - Ouverture du fichier inetorgperson.schema
      - Ajout des lignes suivantes:
      attributetype ( 2.16.840.1.113730.3.1.217 ==>+1 par rapport au dernier attribut
      NAME 'mailbox'
      DESC 'RFC2798:home mail box'
      SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 ) ==>repis celui de l'attributs du dessus

      ensuite ajout de l'attribut dans la calsse existante:
      objectclass ( 2.16.840.1.113730.3.2.2
      NAME 'inetOrgPerson'
      DESC 'RFC2798: Internet Organizational Person'
      SUP organizationalPerson
      STRUCTURAL
      MUST mailbox
      MAY ( ......))

      Une fois fait je delete le user dupont et le créé de nouveau avec mailbox en plus. Résultat il accepte mon champs mailbox mais je dois y mettre une valeur binaire. Comprend pas. Pour vérifier la création de dupont je regarde dans phpldapadmin et pour le nouveau champs j'ai un bouton parcourir :s

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.