1

J'envoie un petit SOS sans trop d'espoirs, mais j'essaye quand même :
Je dois mettre en place un serveur de messagerie avec authentification (plus récupération de certains paramètres) via un annuaire LDAP.
Pour l'instant, je m'occupe du côté IMAP, le SMTP attendra plus tard.
J'ai bien configuré l'autentification, quand je me connecte à la boite, le bind fonctionne bien, mon syslog m'indique que j'ai réussi à me connecter, crée la BAL si besoin, puis plus rien au niveau des logs et j'ai un message d'erreur (non défini, juste échec de connexion) au niveau client (IMP ou Thinderbird).
Jusque là, quand j'avais des problèmes, je trouvais rapidement une réponse ou une piste parce que j'avais un message d'erreur. Mais là, rien dans log/syslog, rien dans log/mail/*, donc je suis un peu perdu. Si un humble Linuxien a une piste, je suis preneur.
avatar

2

Linux ?

tu as pensé a regarder PAM ?

Normalement une appli faite pour utiliser PAM pour l'authentification peut utiliser divers méthodes d'identifications sans savoir comment ça marche, donc il doit y avoir un serveur IMAP et un serveur SMTP qui utilise PAM et qu'on active le plugin LDAP

Pour la recup des parametres il sont de quel genre ?
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

3

Non, justement, l'objectif est de ne pas utiliser PAM (ça rajoute une couche d'authentification en plus, IMAP<->PAM<->LDAP... alors que courier supporte nativement l'authentification LDAP).
avatar

4

Pourquoi ne pas vouloir l'utiliser ? confus

PAM est le standard pour l'authentification sous linux actuellement sorry

"courier" c'est le nom du serveur IMAP/SMTP que vous utilisez ?
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

5

Oui
Pourquoi ne pas l'utiliser ? Parce que ça ne correspond pas du tout à ce qu'on désire faire.
Comme dit, ça ajoute un élément dans la chaine d'authentification qui ajoute une possibilité de faille (les comptes LDAP deviennent des comptes Linux) et qui rend la structure moins souple.
Avec une authentification PAM LDAP, tu travailles comme si tu avais des comptes Unix dont la provenance est PAM, donc l'ensemble de tes informations générales est lié à ces comptes Unix (en particulier, tu restes dans un fonctionnement des aliases en dur au niveau de ton serveur, ce qui n'est pas pratique... idem pour les quotas, etc.).
Travailler avec une authentification LDAP simple permet de s'affranchir de tout ça, et en plus permet de gérer l'ensemble des paramètres de messagerie (maildrop, mailboxes, quotas, aliases) directement dans la base LDAP. Toutes tes infos sont centralisées, c'est plus souple pour l'administration, la gestion des droits, la bascule vers de la SSO...
avatar

6

je ne maitrise pas assez le sujet mais la suite d'outils fournis avec windows service for unix ne pourrait elle pas résoudrationner ton problème ?
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

7

J'ai résolu le problème il y a 20 minutes... petit conseil à l'usage des linuxiens : ne mettez jamais un espace ou une tabulation en début de ligne dans les fichiers de configuration, et ce même si c'est ainsi dans le fichier d'exemple (j'ai perdu presque une semaine de taff avec cette connerie)
avatar

8

cheeky Cet (ces) outils on fait de l'effet sur le vince wink
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

9

-- edit rien --
avatar

10

Courrage smile
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

11

Bonjour,
Je lance un SOS pour l'aide à la mise en place d'une authentification ldap par courier. Sur Debian Sarge, jai installé postfix et courier-(imap pop) qui marche avec une authentification par le comptes unix. J'ai un autre serveur ldap qui tourne sur sarge. Je voudrais réorienter les authentifications de courier sur ce serveur ldap. Quelqu'un pourrait il me donner un coup de pousse sur la config de postfix, courier et ldap? Je suis aussi intéressé par l'expérience de NIL.
Merci d'avance pour tout.

Boub

12

Bon pour Postifx, je ne peux pas trop t'aider (il y a plein de tutos sur le Web) puisque je suis parti sur le pack complêt de courier-mta qui comporte un serveur esmtp.
Déjà, il faut connaître ta version de courier, parce que le système d'authentification (authdaemond) n'est plus lié directement à courier, mais est autonome dans les dernières versions. Il faut aussi que ton courier soit compilé avec les flags ldap activés.
Ensuite, pour courier-imap, tout se joue a niveau de deux fichiers : authdaemonrc et authldaprc. Dans authdaemonrc, il faut juste indiquer que tu utilises ldap comme système d'authentification (en supprimant ou non les autres suivant si tu veux ldap comme unique point d'entrée des utilisateurs ou pas).
Les deux paramètres sont
authmodulelist="authldap"
authmodulelistorig="authldap"

Ensuite, pour configurer l'authentification via ldap, ça se fait dans authldaprc.
Petit détail, il ne faut aucun espace en début de ligne devant les mots clés, sinon ils ne sont pas pris en compte et ça génère des erreurs incompréhensibles par rapport à ce qu'on pense exact de la conf.
Rapport à PROTOCOL VERSION, c'est 3 ou 2 suivant ta version... ATTENTION, la version de protocole n'a rien à voir avec la version d'OpenLDAP si c'est ce que tu utilises ! OpenLDAP 2.x.x est capable de parler en LDAP v3, c'est un paramètre dans les fichiers de conf.
LDAP_URI ldap://ldap.mon.serveur
LDAP_PROTOCOL_VERSION 3 
LDAP_BASEDN dc=ton,dc=dn,dc=debase,dc=ldap


ensuite, tu peux authentifier les utilisateurs de deux façons différentes : soit en te connectant à ton anuaire (en faisant un bind, donc) en superutilisateur LDAP et en piochant les informations d'identité et de mot de passe et en laissant courier se débrouiller, soit en faisant un bind avec l'utilisateur directement et c'est le résultat du bind qui valide ou non l'authentification. La première solution est a priori plus rapide en terme de perfs, mais moins sécurisée (le mot de passe est en clair dans le fichier de conf, les mots de passes, s'ils sont en clair dans la base, transitent en clair entre les serveurs/les services) et ne supporte pas l'encryptage SSHA et CRAM-MD5. Perso, j'ai préféré utiliser la seconde methode (d'autant que mes mots de passes sont en SSHA).

Première façon :
LDAP_BINDDN  cn=superutilisateur,dc=lyon,dc=iufm,dc=frdc=ton,dc=dn,dc=debase,dc=ldap
LDAP_BINDPW motDePAsseEnClair


Seconde façon :
LDAP_AUTHBIND 1

Le paramètre suivant permet de savoir quelle information d'identification va être utilisé pour la recherche. Chez nous, c'est très particulier, on a le droit d'avoir plusieurs UIDs (qui fonctionnent comme des alias d'authentification). Donc l'utilisateur, pour s'identifier, rentre son email plutôt que son UID. Courier-IMAP est intelligent, puisqu'il fait une recherche de DN à partir de l'attribut renseigné et qu'il authentifie après avec le DN trouvé et le mot de passe saisi.
Habituellement, ches "les gens normaux" les adresses sont de types uid@mondomaine.com, ce qui fait qu'on s'authentifie avec comme attribut uid et courier utilise l'info LDAP_DOMAIN pour ajouter @mondomaine.com
LDAP_MAIL mail

Valeur du timeout de requête... la valeur par défaut est très bien :
LDAP_TIMEOUT 5

Valeur qui permet de mettre un filtre LDAP pour filtrer (cheeky) les comptes. On peut mettre par exemple un filtre par objectClass. (Par exemple, dans mon schema, il y a une objectClass qui donne s'appelle monEntrepriseEMailUsage. Les utilisateurs qui l'ont ont droit à utiliser la messagerie, les autres non). Ce paramètre est optionnel si tout membre de la base a accès à la messagerie.
LDAP_FILTER (objectClass=monEntrepriseEMailUsage)

Dans le cas où on ne s'authentifie pas avec une adresse de messagerie user@domaine, on indique à courier d'ajouter ça pour générer l'adresse de messagerie.
Ne pas renseigner si on s'authentifie avec une adresse de messagerie, sinon on va avoir user@domaine.com@domaine.com
LDAP_DOMAIN example.com

Dans le cas où les utilisateurs n'existent pas au niveau Unix, on a deux possibiltiés : les faire exister en définissant avec PAM une règle comme quoi l'authentification UNIX sur le pop, et l'imap se fait avec l'annuaire LDAP, ou utiliser un utilisateur de messagerie virtuel qui va stocker tous les comptes. Ce compte doit exister et avoir un uid/un gid non null (pas root). Dans le cas d'une compilation de Courier-IMAP from scratch, c'est le compte qui fait le ./configure et le make
LDAP_GLOB_UID         courier
LDAP_GLOB_GID         courier


Ici, on indique dans quel attribut LDAP se trouve l'information de homeDirectory de l'utilisateur. C'est à cet endroit que sur le serveur seront stockés les maildirs.
LDAP_HOMEDIR homeDirectory

Si on ne veut pas que les maildirs se trouvent vraiment dans /home/user on peut ajouter un chemin préfixant qui permet de ne pas mettre des emails dans un ~ (ce qui n'est pas propre, mais ce qu'on a fait ^^). Attention, il faut que les utilisateurs (ou le compte virtuel) ait un accès de type rw dans ces dossiers, donc c'est à vérifier.
LDAP_MAILROOT /var/mail

Le paramètre suivant permet de donner l'attribut LDAP qui retourne le dossier dans lequel la mailbox sera stockée. S'il n'est pas renseigné, par défaut, ça sera ./Maildir. Chez nous, on ne l'a pas renseigné, ce qui fait que les boites aux lettres sont dans /home/user/Maildir
LDAP_MAILDIR mailbox

Si tu as installé Courier aussi comme smtp, cet attribut permet de mettre en place des redirections. Non utilisé pour l'instant chez nous, fonctionnement non testé.
LDAP_DEFAULTDELIVERY defaultDelivery

Indique quel dans attribut LDAP se trouve l'information de quota.
LDAP_MAILDIRQUOTA quota

Indique dans quel attribut LDAP se trouve le "gecos" (Données d'affichage de la personne...)
LDAP_FULLNAME displayName

Indique dans quel(s) attribut(s) sont stockés les mots de passe (utilisé uniquement dans l'authentification de type 1 avec le superutilisateur LDAP). On peut n'utiliser qu'un seul des champs en fonction du type de stockage des mots de passe utilisé
LDAP_CLEARPW           clearPassword
LDAP_CRYPTPW            userPassword


Dans le cas où les utilisateurs existent au niveau UNIX, et où on n'utilise pas de compte virtuel, on indique ici les champs qui contiennent l'uid et le gid de l'utilisateur.
LDAP_UID                uidNumber
LDAP_GID                gidNumber


Les autres paramètres ne doivent normalement pas être changés... La section LDAP_EMAILMAP_ (normalement commentée) sert lorsqu'on a deux annuaires, l'un avec les infos d'utilisateurs, l'autre avec les infos de messagerie.

Bon courage happy
avatar

13

Grand merci, je suis en pleine config et test, je te tiendrai informé de la suite.

Boub

14

bonjour

j'aimerai savoir pour ce qui connaisse COURIER MTA et MAILADM, s'il est possible:

- de mettre en place la notion de redirection : Je veux pouvoir faire des redirections de mails dans d'autres adresses
- les mails d'absence : je veux pouvoir configurer les reponses automatiques en cas d'absence
- les listes de diffusion : Je veux pouvoir creer des listes de diffusions pour les mails groupés

merci d'avance.

15

Oui et oui au moins pour la première et la dernière question. Après, tout dépend de la façon dont tu paramètres ton serveur... tu peux gérer les listes et les redirections dans un fichier aliases ou directement depuis un annuaire LDAP (ptetre aussi à partir d'une autre source de données, à voir...)
avatar

16

Redirection : avec des .forward par exemple, ou dans le cas de cyrus-imap, dans les scripts sieve
mails d'absence : dans le cas de cyrus-imap (encore oui grin) toujours dans les scripts sieve, exemple : http://wiki.fastmail.fm/wiki/index.php/SieveExamples
Listes de diffusion, ouais, c'est possible avec des tables d'alias comme dit Nil, maus c'est quand meme plus propre d'installer un mailman ou sympa (et plus adapté)
Mon site perso : http://www.xwing.info

17

La redirection, c'est aussi possible avec une table d'aliases, hein ^^ (mais c'est hyper crade, pas facile à maintenir, pas souple...)
avatar

18

Nil > j'ai essayé de configurer courier-imap+ldap, mais il met de la mauvaise volonté sad

dans mon authldaprc, j'ai
LDAP_SERVER             127.0.0.1
LDAP_PORT               389
LDAP_BASEDN             ou=users,dc=19pouces,dc=dyndns,dc=org//dedans, j'ai tous mes utilisateurs
LDAP_BINDDN             cn=admin,dc=19pouces,dc=dyndns,dc=org
LDAP_BINDPW             monsupermotdepassequiroxxxxtout
LDAP_TIMEOUT            15
LDAP_MAIL               uid
LDAP_DOMAIN             dc=19pouces,dc=dyndns,dc=org
LDAP_GLOB_GID           courier
LDAP_GLOB_UID           courier
LDAP_HOMEDIR            homeDirectory
LDAP_MAILDIR            mailDir
LDAP_MAILDIRQUOTA       mailDirQuota
LDAP_FULLNAME           cn
LDAP_CRYPTPW            userPassword
LDAP_UID                uidNumber
LDAP_DEREF              never
LDAP_TLS                0

*hem* en postant, ça, je viens de m'apercevoir de mailDir et mailDirQuota... ce sont des attributs LDAP ? je n'ai pas vu de schéma proposé dans le dossier /courier... :/

r/run/courier/authdaemon
dans authdaemonrc, j'ai authmodulelist="authldap"
authmodulelistorig="authcram authldap"
daemons=5
version=""
authdaemonvar=/va


ASH=1 IMAPDSTART=YES
et dans imapd, j'ai ADDRESS=0
PORT=143
MAXDAEMONS=1000
MAXPERIP=8
PIDFILE=/var/run/courier/imapd.pid
TCPDOPTS="-nodnslookup -noidentlookup"
AUTHMODULES="authdaemon"
AUTHMODULES_ORIG="authdaemon"
IMAP_CAPABILITY="IMAP4rev1 CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT
THREAD=REFERENCES SORT"
IMAP_CAPABILITY_ORIG="IMAP4rev1 CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT
THREAD=REFERENCES SORT AUTH=CRAM-MD5 AUTH=CRAM-SHA1 IDLE"
IMAP_IDLE_TIMEOUT=60
IMAP_CAPABILITY_TLS="$IMAP_CAPABILITY AUTH=PLAIN"
IMAP_CAPABILITY_TLS_ORIG="$IMAP_CAPABILITY_ORIG AUTH=PLAIN"
IMAP_DISABLETHREADSORT=0
IMAP_CHECK_ALL_FOLDERS=0
IMAP_OBSOLETE_CLIENT=0
IMAP_ULIMITD=65536
IMAP_USELOCKS=0
IMAP_EMPTYTRASH=Trash:1
IMAP_MOVE_EXPUNGE_TO_TR

j'ai essayé de suivre http://alinux.washcoll.edu/docs/plc/postfix-courier-howto.html , notamment
tadmin@imap-mail:/usr/doc$ telnet localhost 143

Trying 127.0.0.1...
Connected to imap.
Escape character is '^]'.
* OK Courier-IMAP ready. Copyright 1998-2002 Double Precision,Inc.
See COPYING for distribution information.
type . logout
. logout
* BYE Courier-IMAP server shutting down
. OK LOGOUT completed
Connection closed by foreign host.

type the following command to thest the user account:
	courierauthtest tadmin

The following output should be displayed:

Authenticated: module authdaemon
Home directory: /home/1020
UID/GID: 1020/1001
Maildir: /home/1020/Maildir
AUTHADDR=tadmin
AUTHFULLNAME=Theodore Admin

sauf que ça ne marche pas triso
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

19

Pfffouuuu c'est loin grin
Oui, les deux attributs de Quota sont des attributs LDAP ; il faut récupérer un schéma qui les contient ou t'en fabriquer un.
avatar

20

Ok, merci smile
Ce qui est cool, c'est que ce n'est précisé dans aucun des tuto que j'ai lu ... :/
Et dans http://www.courier-mta.org/authlib/ , pas moyen de trouver l'info tritop les deux sont des string, je suppose ?

avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

21

Yep c'est le plus simple...
avatar

22

question conne...
si je veux faire un attributetype ( 1.3.6.1.4.1.7165.2.1.5 NAME 'logonTime' )

comment je détermine l'OID 1.3.6.1.4.1.7165.2.1.5 ? j'ai essayé de regarder un peu plusieurs docs, mais ils ne disent pas comment en faire des perso :/
ou alors j'en prends un « au pif » ?
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

23

Si ton annuaire est "privé", tu te fais un OID racine comme tu veux (pour peu qu'il ne tape pas dans les OID des classes standards). En fait, c'est exactement comme les noms de domaines, tu peux très bien définir des noms en interne si tu reste à l'interne, mais si tu es visible sur internet, tu dois t'enregistrer.
Pour les OID, de mémoire, c'est l'ICANN qui s'occupe de ça (ou l'IANA ? Non, ça doit être l'ICANN).

En fait, globalement, tu définis une branche principale, et deux sous branches, une qui finira en .1 et l'autre en .2
Là, vu l'heure j'ai un doute, c'est soit l'un soit l'autre...
tout .1.x sera tes attributs
tout .2.x sera des classes (ou inversement donc... c'est pas obligé, mais c'est +/- normalisé de fait).
Sachant que tu peux avoir
l'attribut .1.4
la classe .2.1
le sous arc .3 qui va définir autre chose (sous arc pour un centre distant par ex. qui utilisera .3.1 et .3.2)
Tu peux très bien avoir des "sauts" dans tes OID (.1.1 ; .1.2 ; .1.6 ...)
avatar

24

nan, c'est l'IANA (enfin, c'est ce que j'ai lu cheeky)
oki, c'est bien ce que je pensais ^^ et on peu prendre quoi comme OID pour être sûr de ne pas taper dans les classes standard ? cheeky
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

25

http://www.openldap.org/doc/admin23/schema.html
A priori, c'est pas bien d'avoir un sous arc privé non déclaré grin et l'IANA attribue gratuitement des sous-arcs pour les petites entreprises privées (cf. lien)
avatar

26

Ca doit être pour ça qu'ils ne disent pas comment faire un arc privé non déclaré, alors triso

merci !
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

27

Bon, ça ne veut toujours pas marcher ... cry pourtant, mon user flanby est bien avec un mot de passe en CRYPT et a bien les attributs demandés :/
j'ai :
root@parallels:/etc/courier# telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT
THREAD=REFERENCES SORT STARTTLS XMAGICTRASH] Courier-IMAP ready. Copyright 1998-2005 Double Precision, Inc.  See COPYING for distribution information.
NOOP
NOOP OK NOOP completed
LOGIN flanby plopplop
LOGIN NO Error in IMAP command received by server.

avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant