[RHEL4] Postfix + Cyrus virtualdomains

Pagina: 1
Acties:

  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Hallo,

Ik ben bezig met het testen en leren op het gebied van Postfix en Cyrus.
De bedoeling is:

- Postfix virtual (mailbox) domains + wat local (mydestination) adresjes.
- Cyrus-imapd als IMAP server
- SASL ->auxprop -> /etc/sasldb2 voor wachtwoorden etc..(later evt. met MySQL).

Nou wil ik even weten of ik op de goeie weg ben (best-practise) met mijn configuratie.

Mijn grootste probleem was het feit dat cyrus dus ZO moet worden ingesteld dat het net als Postfix gebruik maakt van 'virtuele domeinen' (/etc/imapd.conf: virtdomains:userid) maar OOK locale mail kan ontvangen (Postfix $mydestination mailtjes enzo).

Ik heb het volgende opgenomen in postfix' main.cf:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
#Virtual domains
virtual_transport = cyrus
virtual_mailbox_domains = mijndomein.nl
virtual_mailbox_maps = hash:/etc/postfix/vmail_mailbox
virtual_alias_maps = hash:/etc/postfix/vmail_alias

# SASL stuff
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_local_domain = lokaaldomein.nl

# Cyrus voor local (mydestination) stuff
mailbox_transport = cyrus-local


En in master.cf het volgende:
code:
1
2
3
4
5
cyrus     unix  -       n       n       -       -       pipe
  user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -r ${sender} -m ${extension} ${recipient}

cyrus-local unix  -       n       n       -       -       pipe
  user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -r ${sender} -m ${extension} ${user}


Zoals te zien is .. heb ik dus een tweede cyrus regel toegevoegd, namelijk 'cyrus-local'. In main.cf maakt 'mailbox_transport' gebruik van 'cyrus-local' en 'virtual transport' van 'cyrus'.

Waarom ?
Omdat anders lokale (niet virtual domain) mail in cyrus terechtkomt als bijv. 'user.sander@virtueeldomein.nl' ipv 'user.sander' ..... (let op het einde van de 2 opdrachtregels in bovenstaande sample uit master.cf: $(recipient) versus $(user)).

Dus mijn 'cyrus' vermelding in master.cf doet de virtual_domains bezorging en gooit de mails in mailboxen als 'user.sander@virtueeldomein.nl'. De 'cyrus-local' vermelding doet de '$mydestination' local-transport mail ... naar mailboxen als 'user.sander'.

Mijn /etc/sasldb2 ziet er dan bijv. zo uit:
code:
1
2
3
4
5
#sasldblistusers2

sander@virtueeldomein.nl: userPassword
sander@srv01.localdomain: userPassword
cyrus@srv01.localdomain: userPassword


Dus mijn vraag:
Is DIT de manier waarop je via Postfix de zaakjes voor zowel de local mail als voor de virtual mail regelt in Postfix en Cyrus ??? En moet ik dus inderdaad voor Cyrus WEL nog zaken als 'virtual_mailbox_domains' , 'virtual_mailbox_maps' , 'virtual_alias_maps' etc .. in main.cf instellen ?

Virtual_mailbox_maps is een beetje dubbel .. want in Cyrus moet ik OOK al de mailboxen aanmaken .. maar als ik virtual_mailbox_maps weglaat .. wordt de mail rejected.

Overigens : het werkt allemaal goed tot nu toe .. maar daar gaat het me niet om, Windows95 werkt ook .. het gaat me erom of dit een degelijke / juiste manier is.

[ Voor 20% gewijzigd door BoXie op 25-06-2005 01:45 ]


  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 00:43
Cyrus is een beetje ingewikkeld, je bent aardig op weg, maar er zitten een aantal dingen niet helemaal 100% goed :P

Allereerst, je levert af via een of ander cyrdeliver programma, dit is niet aan te raden. Heb je een cyrus 1.x howto erbij gepakt ofzo? Sinds Cyrus 2.0 gebruiken we daar een LMTP unix socket voor.

Vervolgens: dat gedoe met je defaultdomain: maak je standaard domain in cyrus je defaultdomain. Let hierbij op dat alle virtual domains onder dit defaultdomain gehost worden (als je lm *@defaultdomain doet, krijg je _ALLE_ mailboxes te zien :X, niet onbelangrijk bij recursief verwijderen van een mailbox domain :P)

Als jij gewoon je gewenste domein op defaultdomain zet in cyrus, wordt zowel mail voor user@domain als user gewoon afgeleverd in user.user in de hoofdroot van de cyrus spool.

  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Ok bedankt !

Echter:

Eén van die 'cyrus deliver' regels stond al standaard in Postfix > v2.0. En in mijn cyrus.conf staat momenteel (ook default):
code:
1
2
3
# at least one LMTP is required for delivery
#  lmtp         cmd="lmtpd" listen="lmtp" prefork=0
lmtpunix      cmd="lmtpd" listen="/var/lib/imap/socket/lmtp" prefork=1

Is dat niet precies wat jij bedoelt ? Zo nee, hoe stel ik het DAN in ?

Verder staat in mijn imapd.conf o.a.:
code:
1
2
virtdomains: userid
defaultdomain: localdomain

Het werkt allemaal wel .. alleen zijn er 2 Cyrus deliver regels nodig naar mijn idee .. 1 voor de virtuele domeinen waarbij wordt bezorgt naar bijv. 'user.sander@virtueeldomein.nl' zodat er onder verschillende virtuele domeinen dezelfde email users kunnen zijn en 1 voor het 'default domain' ... waarbij wordt bezorgt naar mailboxen als 'user.sander'. Toch ??

Bedankt vast voor je input !!!

[ Voor 14% gewijzigd door BoXie op 25-06-2005 13:20 ]


  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Ok .. ik heb al wat gevonden.
Ik ga het nu ongeveer ZO doen:

code:
1
2
3
4
5
6
7
8
9
10
11
12
  /etc/cyrus.conf:
        SERVICES { 
          ... 
      lmtpunix cmd="lmtpd" listen="/var/lib/imap/socket/lmtp" prefork=1
      ... 
        } 

    /etc/postfix/main.cf:
        mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp

    /etc/postfix/master.cf:
        lmtp      unix  -       -       n       -       -       lmtp


Echter .. hoe gaat het dan met mijn virtual_transport ? Kan ik daar ook zomaar gebruik maken van een lmtp socket ? De HOWTO's laten dat niet zien.

  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Ok ik heb nu:

[b]#main.cf[/b]
mydomain = localdomain
myhostname = srv01.localdomain
myorigin = $myhostname 

mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp
virtual_transport = lmtp:unix:/var/lib/imap/socket/lmtp

[b]#master.cf[/b]
lmtp      unix  -       -       n       -       -       lmtp

[b]#/etc/sasldb2[/b]
info@virtueeldomein.nl: userPassword
sander@srv01.localdomain: userPassword
cyrus@srv01.localdomain: userPassword

[b]#/etc/imapd.conf[/b]
virtdomains: userid
defaultdomain: srv01.localdomain

[b]/etc/cyrus.conf[/b]
lmtpunix      cmd="lmtpd" listen="/var/lib/imap/socket/lmtp" prefork=1


Dit werkt allemaal prima ... lokale mail gaat naar 'user.sander' -achtige mailboxen in Cyrus ... en virtuele domains gaan naar 'user.info@virtueel.nl' achtige mailboxen in Cyrus.

Heb ik het nou goed gedaan op deze manier ?


[/pre]