Anpassung der Postfix-Konfiguration
Diese Seite beschreibt erforderliche Schritte und die Anpassung der Postfix-Konfiguration, sodass am Ende alles zusammenarbeitet.
Setuid-root Kopie von Dovecot's LDA für Postfix
Aus Sicherheitsgründen werden die Berechtigungen der Domain-/Benutzer-Verzeichnisse sehr restriktiv gesetzt.
Jeder Benutzer erhält seine eigene eindeutige UID und die GID der Domain, der er angehört. Daher wird es einem Benutzer möglich sein, nur lesend auf das Verzeichnis der Domain zuzugreifen. Nur für sein eigenes Verzeichnis erhält der Benutzer Lese-Schreib-Zugriff.
Es gilt als unsicher deliver (the Dovecot LDA) mit dem setuid-root Attribut zu versehen, wenn Die Datei für alle Anwender, auch die, denen Sie nicht trauen, zugänglich ist.
Aus diesem Grund ist es notwendig, eine Kopie des Dovecot LDA, mit gesetztem setuid-root-Attribut, für Postfix zur Verfügung zu stellen.
Postfix wird es aber ablehnen, Dateien mit Root-Rechten oder mit Rechten des mail_owners (in der Regel postfix) auszuführen. Von daher lassen wir den Job von nobody erledigen. Dazu werden wiederholt sehr restriktive Berechtigungen gewählt. Nur nobody wird es möglich sein, die Kopie des Dovecot LDA mit Root-Rechten auszuführen.
Auf BSD und Gentoo Linux Systemen ist nobody Mitglied der Gruppe nobody, nicht nogroup.
mkdir -p /usr/local/lib/dovecot chmod 700 /usr/local/lib/dovecot chown nobody /usr/local/lib/dovecot cp /usr/lib/dovecot/deliver /usr/local/lib/dovecot/ chown root:`id -g nobody` /usr/local/lib/dovecot/deliver chmod u+s,o-rwx /usr/local/lib/dovecot/deliver
master.cf
Erweitern Sie Postfix' master-Prozess-Konfiguration um den Service dovecot. Fügen Sie dazu folgende Zeilen ein.
dovecot unix - n n - - pipe
flags=DORhu user=nobody argv=/usr/local/lib/dovecot/deliver -f ${sender}
-d ${user}@${nexthop} -n -m ${extension}Details zu den oben verwendeten flags stehen in pipe(8). Alle anderen Argumente werden in der Dovecot LDA Dokumentation erklärt.
main.cf
Fügen Sie folgende Einstellungen in Ihrer globalen Postfix Konfiguration ein oder passen Sie bereits vorhandene Einstellungen an.
# relocated users aus der Datenbank #relocated_maps = pgsql:/etc/postfix/pgsql-relocated_maps.cf # Virtuelle Domains virtual_mailbox_domains = pgsql:/etc/postfix/pgsql-virtual_mailbox_domains.cf virtual_alias_maps = pgsql:/etc/postfix/pgsql-virtual_alias_maps.cf transport_maps = pgsql:/etc/postfix/pgsql-transport.cf virtual_minimum_uid = 70000 virtual_uid_maps = pgsql:/etc/postfix/pgsql-virtual_uid_maps.cf virtual_gid_maps = pgsql:/etc/postfix/pgsql-virtual_gid_maps.cf virtual_mailbox_base = / virtual_mailbox_maps = pgsql:/etc/postfix/pgsql-virtual_mailbox_maps.cf # dovecot LDA dovecot_destination_recipient_limit = 1 virtual_transport = dovecot: # dovecot SASL smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes # Halten Sie smtpd_sasl_local_domain identisch zu Dovecots auth_default_realm: Leer. # Beide enthalten standardmäßig keinen Wert. Lassen Sie smtpd_sasl_local_domain auskommentiert. # Dazu mehr unter: http://wiki.dovecot.org/Authentication/Mechanisms/DigestMD5 #smtpd_sasl_local_domain = smtpd_sasl_security_options = noplaintext, noanonymous #smtpd_sasl_security_options = noanonymous #broken_sasl_auth_clients = yes # Minimale smtpd_recipient_restrictions smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
Weitere Details zu den Postfix Konfigurationsparametern finden Sie in: postconf(5).
