Postfix (Virtual Domains) und Auslieferung an Cyrus

D

donnerzusel

Grünschnabel
Schönen guten Tag,

(ich hoffe, daß das hier der richtige Bereich ist, zumindest schien er mir schlüssig...)

Ich hab einen Knoten im Linuxhirn: Wenn ich mit Postfix mehrere Virtual Mailbox-Domains aufbauen würde, und alle Mails über IMAP/POP3 abrufbar sein sollen, wie ordnet Postfix die Mails den "Cyrus"-Accounts zu? Legt man die Postfächer in Cyrus mit der vollen eMail-Adresse an (also user@vdomain.tld)?

Oder wird das über virtual_transport-maps gemacht?
Oder ordnet man jeder virtuellen Mailbox-Domain einen eigenen Cyrus-LMTP-Socket zu (das bedeutet ja auch, daß man pro Domain eine Cyrus-Instanz hat)?

Vielen Dank schonmal! :)
 
Hallo,

ich habe nun auch gerade nach vier Tagen harter Arbeit verstanden wie so ein Mailserver funktioniert.

Ich habe einige Tipps für dich:

Erstmal möchte ich erläutern was ich verwende:

Debian 3.1 (Sarge)

Postfix + SASL + Cyrus (viele Howtos gehen auf MySQL ein doch dies kommt bei mir nicht zum Einsatz)


Installieret Pakete:
postfix postfix-tls
libsasl2 libsasl2-modul sasl2-bin
cyrus21-common cyrus21-imapd cyrus21-pop3 cyrus21-admin

1. Postfix

Änderungen an der main.cf (Dies ist nicht die Komplette Datei & bitte Variablen anpassen):

myhostname = hostname.domain.tld
mydomain = domain.tld

# Konfiguration der virtuellen Mailboxen und User
#
# Fuer welche Domains und User nehmen wir E-Mails an
virtual_maps = hash:/etc/postfix/virtualUsers, hash:/etc/postfix/localDomains
# LMTP / Die Uebergabe an Cyrus
mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp
# Wer darf Mails verschicken
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination

master.cf (bei folgender Zeile muss das chroot deaktiviert werden damit es mit SASL sprechen kann):

# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# =========================================================================
smtp inet n - n - - smtpd

Rechte auf Dateien/ Gruppenzugehörigkeiten:

/etc/group:

mail:x:8:postfix,cyrus
sasl:x:45:postfix,cyrus

/etc/posftix/sasl/smtp.conf

pwcheck_method: saslauthd
mech_list: LOGIN PLAIN
# Log Level von 0-7
log_level:1

/etc/postfix/localDomains (siehe main.cf):

# /etc/postfix/localDomains
domain.tld hostname.domain.tld
example.com hostname.domain.tld
example.net hostname.domain.tld


und ein postmap erstellt den hash (*.db) [man sollte sich hierzu in /etc/postfix/ befinden da sonst der pfad nicht stimmt:

root@host # postmap localDomains


/etc/postfix/virtualUsers:

# /etc/postfix/virtualUsers
# E-Mail-Adressen der Domain domain.tld
# E-Mail-Adresse Zuordnung Cyrus Postfach
********** domainp1
********** domainp1
********** domainp2
# Forwarding (E-Mails werden an die Zugeordnete Adresse geleitet)
********** **********
# E-Mail-Adressen der Domain example.com
# E-Mail-Adresse Zuordnung Cyrus Postfach
********** examplep1
********** examplep2
# Forwarding (E-Mails werden an die Zugeordnete Adresse geleitet)
anna@example .com **********

wieder ein postmap:

root@host # postmap localDomains


2. SASL:

/etc/default/saslauthd:

# SASL soll gestartet werden
START=yes
# Authentifizierungsmechanismus
MECHANISMS="sasldb pam"


User anlegen:

root@host # saslpasswd2 -c domainp1

User löschen:

saslpasswd2 -d domainp1

User anzeigen:

sasldblistusers2

Passwort ändern:

saslpasswd2 domainp1

Passwort prüfen/ Datenbank prüfen:

testsaslauthd -u domainp1 -p passwort -s smtp


3. Cyrus:

Cyrus Passwort zur Administration setzen:

root@host # passwd cyrus

Cyrus in der SASL-Datenbank anlegen:
root@host # saslpasswd2 -c cyrus

/etc/imapd.conf:

admins: cyrus

Cyrus neustarten:
root@host # /etc/init.d/cyrus21 restart

Auf die Cyrus Konsole einloggen:
root@host # cyradm -u cyrus localhost

Anlegen von Mailboxen:
localhost.localdomain> cm user.domainp1

Löschen von Mailboxen:
localhost> sam user.domainp1 cyrus all
localhost> dm user.domainp1
sam = set ACLs on mailbox
user.domainp1 = Mailbox
cyrus = unser User cyrus der die administrative Arbeit vornimmt
all = alle Rechte

4. Alles neu starten:

root@host # /etc/init.d/saslauthd restart
root@host # /etc/init.d/postfix restart
root@host # /etc/init.d/cyrus21 restart

5. MailClient:

Als Name: Eigener Name
(wir nur verwendet um anzuzeigen von wem die Mail ist)
E-Mail-Adresse: **********
Abrufen von Mails
POP3
Protokol: POP oder POP3
Server: name des Servers
(z. B. mail.domain.tld)
Benutername: Zuordung der Mailadresse (das Postfach) z. B. domainp1
IMAP
Protokol: IMAP
Server: name des Servers
(z. B. mail.domain.tld)
Benutername: Zuordung der Mailadresse (das Postfach) z. B. domainp1
Verschicken von Mails
Protokolle: SMTP
Server: name des Servers
(z. B. mail.domain.tld)
Benutername: Zuordung der Mailadresse (das Postfach) z. B. domainp1


Ich hoffe dies hilft. Falls du dies nicht so ganz verstehts (das Thema ist auch sehr komplex/ weiß nicht ob ich alle wichtigen Teile meiner fast 10 Seitigen Doku rauskopiert habe).

Falls es noch zu Problemen kommt schau ich mal ob ich meine Doku als PDF oder so hier posten kann.

Tipp:

immer die Logs beobachten:

tail -f /var/log/mail.log

Bitte nicht blind "copy & paste" verwenden sondern nachdenken. Bei Fragen Fragen!
 
Hi

wäre nett wenn du mir dieses howto zukommen lassen könntest bzw. es hier posten könntest?

MfG
ACID25
 
Hallo,
müsste man nach dem Anpassen der virtualUsers nicht wie beschrieben
Code:
root@host # postmap localDomains
SONDERN
Code:
root@host # postmap virtualUsers
ausführen ?

Habe leider kein Test-System da und auf dem produktiv System möchte ich jetzt nicht werkeln.
 
Ich persönlich preferiere da ja die Lösung mit MySQL: http://workaround.org/articles/ispmail-sarge/
Da wird dann auch ziemlich klar wie die Mailboxen unterschieden werden, wenn man mal einen Blick in das virtual_mailbox_base wirft. Dort findet sich dann für jede Domain, in der schon ein Account existiert, ein eigener Unterordner und in diesen dann die einzelnen Maildirs der User. Außerdem kann man am Aufbau der MySQL-Tabellen gut erkennen, wie doppelte Account-Namen verhindert werden.
 
Hallo,
das werde ich mir auch mal anschauen. Klingt nett, und scheint auch einigermaßen einfach zu sein :).

Gruß
 

Ähnliche Themen

dovecot und postfix Konfiguration Problem

Postfix, Dovecot Mail-Directory Problem

postfix und clamavstmp

Exim + Cyrus-IMAP Fehler bei der Einlieferung

Spamassassin kennt virtuale User nicht!!!

Zurück
Oben