LugOwlWiki

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

LugOwlWiki: Mail (zuletzt geändert am 2017-08-21 08:41:34 durch AndreLandwehr)