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 Ellendhel (site web personnel) . Évalué à 1.
http://www.vogelweith.com/debian_server/07_postfix.php#x1-13(...)
[^] # Re: Un petit lien
Posté par xillion . Évalué à 1.
# Configuration ?
Posté par Etienne Bagnoud (site web personnel) . Évalué à 2.
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 xillion . Évalué à 1.
[^] # Re: Configuration ?
Posté par Etienne Bagnoud (site web personnel) . Évalué à 2.
- 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 xillion . Évalué à 1.
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 Etienne Bagnoud (site web personnel) . Évalué à 2.
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 xillion . Évalué à 1.
[^] # Re: Configuration ?
Posté par Etienne Bagnoud (site web personnel) . Évalué à 2.
(&(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 xillion . Évalué à 1.
[^] # Re: Configuration ?
Posté par xillion . Évalué à 1.
[^] # Re: Configuration ?
Posté par Etienne Bagnoud (site web personnel) . Évalué à 2.
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 xillion . Évalué à 1.
[^] # Re: Configuration ?
Posté par xillion . Évalué à 1.
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 Etienne Bagnoud (site web personnel) . Évalué à 2.
'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 xillion . Évalué à 1.
Si on augement le -d 1024 ou 2048 le résultat est le meme :s
[^] # Re: Configuration ?
Posté par xillion . Évalué à 1.
[^] # Re: Configuration ?
Posté par Etienne Bagnoud (site web personnel) . Évalué à 2.
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 xillion . Évalué à 1.
[^] # Re: Configuration ?
Posté par Etienne Bagnoud (site web personnel) . Évalué à 2.
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 xillion . Évalué à 1.
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 Etienne Bagnoud (site web personnel) . Évalué à 2.
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 xillion . Évalué à 1.
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 xillion . Évalué à 1.
[^] # Re: Configuration ?
Posté par Etienne Bagnoud (site web personnel) . Évalué à 2.
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 xillion . Évalué à 1.
[^] # Re: Config
Posté par xillion . Évalué à 1.
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 xillion . Évalué à 1.
- 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.