Postfix
Allgemein
Egal ob virtual server rein sollen oder nicht:
myhostname = lug-owl.de mydomain = lug-owl.de
Auch bei mydestination dürfen die virtuellen nicht aufgeführt sein, nur die Domains mit den normalen Systemusern als Empfänger gehören hier rein.
mynetworks = 127.0.0.0/8, 188.68.32.151/32 [::1]/128
ACHTUNG: Fehlt bei mynetworks nicht noch die echte IPv6 Adresse?
mailbox_command = /usr/bin/procmail smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) inet_protocols = all mailbox_size_limit = 0
SASL stuff für SMTP-auth
smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
TLS Support
smtpd_tls_security_level = encrypt smtpd_tls_cert_file = /etc/dovecot/dovecot.pem smtpd_tls_key_file = /etc/dovecot/private/dovecot.pem
Virtual Servers
In der main.cf:
virtual_mailbox_domains = cybernoia.de virtual_mailbox_base = /var/mail.virtual virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox_maps virtual_minimum_uid = 1000 virtual_uid_maps = hash:/etc/postfix/virtual_uid_maps virtual_gid_maps = static:8
Das Mapping von Mailadressen auf Inboxen passiert in der virtual_mailbox_maps:
andrel@cybernoia.de cybernoia.de/andrel andre.landwehr@cybernoia.de cybernoia.de/andrel info@cybernoia.de cybernoia.de/andrel blog@cybernoia.de cybernoia.de/blog hanneheiner@cybernoia.de cybernoia.de/hanneheiner/inbox malte@cybernoia.de cybernoia.de/malte/inbox
Zusätzlich muss für jede Mailadresse ein Mapping auf eine echte System-UID existieren, das passiert in der virtual_uid_maps:
andrel@cybernoia.de 1005 andre.landwehr@cybernoia.de 1005 info@cybernoia.de 1005 blog@cybernoia.de 1005 hanneheiner@cybernoia.de 1005 malte@cybernoia.de 1005
wobei 1005 die UID von andrel ist.
Beide mapfiles müssen kompiliert werden mit postmap virtual_uid_maps; postmap virtual_mailbox_maps.
Jetzt können unter /var/mail.virtual die virtuellen Domains und darunter die INBOXen der accounts (wie in der virtual_mailbox_maps konfiguriert) angelegt werden, also z.B. /var/mail.virtual/cybernoia.de/andrel. Berechtigungen beachten!
Dovecot
Allgemein
10-mail.conf:
mail_location = mbox:~/Mail:INBOX=/var/mail/%u mail_privileged_group = mail
10-master.conf:
service imap-login { inet_listener imap { address = 127.0.0.1 port = 143 } inet_listener imaps { address = *, :: port = 993 ssl = yes } } service auth { unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix } }
Virtual Server
Die IMAP Konfiguration ist bzgl. Virtual Servers der deutlich aufwändigere und verwirrendere Teil, nicht zuletzt weil Dovecot seine Konfiguration kreuz und quer über ein conf.d Verzeichnis verteilt.
10-auth.conf:
!include auth-system.conf.ext !include auth-passwdfile.conf.ext
Damit werden die User sowohl in der /etc/passwd als auch in den domainspezifischen files gesucht.
auth-passwdfile.conf.ext:
passdb { driver = passwd-file args = username_format=%n /etc/dovecot/%d/imap.passwd } userdb { driver = passwd-file args = username_format=%n /etc/dovecot/%d/imap.passwd }
auth-system.conf.ext:
passdb { driver = pam args = username_format=%u } userdb { driver = passwd }
Jetzt kann man für jede Domain ein Verzeichnis anlegen, z.B. /etc/dovecot/cybernoia.de. Darin gibt es dann eine imap.passwd mit allen Usern, die sich auch einloggen können sollen. UID/GID muss wieder die vom echten Systemuser sein, dem die mbox gehört (siehe Postfix Konfiguration):
andrel:{CRYPT}ReD04zhbqIhaY:1005:1005::/home/andrel::userdb_mail=mbox:~/Mail malte:{CRYPT}DbJdg4lqPb.2g:1005:1005::/home/andrel::userdb_mail=mbox:/var/mail.virtual/cybernoia.de/malte hanneheiner:$5$u/19L96bS2cbWlis$fn4HqSF9H5ZBptGYVSS0HX2CR/dUkNV6.tV0zYuzCEB:1005:1005::/home/andrel::userdb_mail=mbox:/var/mail.virtual/cybernoia.de/hanneheiner