Dovecot maiboxlocatie via LDAP halen

Pagina: 1
Acties:

  • begintmeta
  • Registratie: November 2001
  • Niet online

begintmeta

Moderator General Chat
Topicstarter
Ik ben bezig een IMAP servertje op te zetten, aanvankelijk voor een heel beperkt aantal gebruikers en een domein, maar het moet makkelijk uit te breiden zijn naar multipele domeinen en veel gebruikers.

Om dat te doen heb ik na enig ge-experimenteer met BSDs, sendmail, courier uiteindelijk gekozen voor Ubuntu-server 8.10, postfix, dovecot en natuurlijk openldap.

De (in dit kader) relevante gebruikersinformatie die via LDAP is op te vragen: uid, cn, mailadres en wachtwoord.

postfix levert de mail inmiddels netjes af in een maildir in /var/mail/virtualmail/[domeinnaam-ldap-mailadres]/[gebruikersnaam-ldap-mailadres]/.

Het is de bedoeling dat dovecot dezelfde maildir gebruikt, echter krijg ik dat niet voor elkaar. De locatie die dovecot gebruikt is /var/mail/virtualmail/[ldap-uid]/.

Ik laat dovecot de uid-password-combinatie gebruiken uit ldap ter authentificatie, de maillocatie wordt daar dan uit bepaald (mail_location = maildir:/var/mail/virtualmaiil/%d/%u)(waarbij %d dus leeg blijft in dit geval).

Nu had ik bedacht dat ik de gebruikersnaam(uid) zou kunnen 'omvormen' naar het adres in mail, maar ik wil graag dat je met de uid (zonder @domein) kunt blijven inloggen(bij veel gebruikers kunnen dan eventueel wel doublure-uids ontstaan, dus dat moet ik dan bewaken), en dat de maildir dan toch in /var/mail/virtualmail/[domeinnaam-ldap-mailadres]/[gebruikersnaam-ldap-mailadres]/ terecht komt. Dovecot zou dus eigenlijk moeten authentificeren tegenover uid&password via LDAP, dan de mail-variabele(het RFC822-adres in dit geval dus) ophalen en van daaruit de maildir-locatie (%d/%u) vormen. Ik krijg dit echter niet voor elkaar, en met de manuals, howtos en faqs kom ik er niet tijdig uit. Zijn er GoTters die me wat verder op weg kunnen helpen?

  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 22-01 08:08

TrailBlazer

Karnemelk FTW

Ik heb deze dovecot-ldap config
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
dn = cn=exim,ou=Email,ou=People,ou=Account,rest_van_tree
dnpass = exim
tls = no
ldap_version = 3
base = dc=%d,ou=Email,ou=People,ou=Account,rest_van_tree
scope = subtree
user_attrs = mailMessageStore=home
user_filter = (&(objectClass=mailUser)(mail=%u))
pass_attrs = uid=mail,userPassword=password
pass_filter = (&(objectClass=mailUser)(mail=%u))
default_pass_scheme = CRYPT
user_global_uid = exim
user_global_gid = exim

Laat eens het ldapobject zien van een gebruiker. Ik heb in ieder geval een object mailMessageStore in het objectstaan. Deze koppel ik aan de interne dovecot variabele home.

  • begintmeta
  • Registratie: November 2001
  • Niet online

begintmeta

Moderator General Chat
Topicstarter
TrailBlazer schreef op donderdag 15 januari 2009 @ 12:23:
Ik heb deze dovecot-ldap config
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
dn = cn=exim,ou=Email,ou=People,ou=Account,rest_van_tree
dnpass = exim
tls = no
ldap_version = 3
base = dc=%d,ou=Email,ou=People,ou=Account,rest_van_tree
scope = subtree
user_attrs = mailMessageStore=home
user_filter = (&(objectClass=mailUser)(mail=%u))
pass_attrs = uid=mail,userPassword=password
pass_filter = (&(objectClass=mailUser)(mail=%u))
default_pass_scheme = CRYPT
user_global_uid = exim
user_global_gid = exim

Laat eens het ldapobject zien van een gebruiker. Ik heb in ieder geval een object mailMessageStore in het objectstaan. Deze koppel ik aan de interne dovecot variabele home.
Aan het toevoegen van een LDAPitem had ik ook wel gedacht, op het moment is het als volgt:

uid=[gebruiker],ou=people,dc=hier,dc=lan,dc=lan
uid=gebruiker
password={ssha}78et372grf2fgfv8fg3g8f32fg2ogf3o2gf
cn=Voornaam Achternaam
sn=Achternaam
mail=gebruiker@hier.lan.lan

postfix zet de mailtjes in /var/mail/virtualmail/hier.lan.lan/gebruiker/ (interpreteert ldapitem: mail)
dovecot (na inloggen op ldapitem uid,password) gebruikt /var/mail/virtualmail/gebruiker/

  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 22-01 08:08

TrailBlazer

Karnemelk FTW

Voeg dan gewoon ff het item mailMessagestore toe. Eventueel kan je postfix die ook gewoon laten ophalen dan ben je nog flexibeler waar je de mail van een specifieke gebruiker op wil slaan.