[Postfixbuch-users] Ist Abschalten von virtual_alias_maps für smtpd problematisch?
Mathias Jeschke
postfixbuch-users at gmj.cjb.net
Mo Jun 21 20:19:25 CEST 2010
Hallo Postmaster,
ich habe hier einen Postfix-Mailserver mit folgender Konstellation:
- ca. 200 "virtuelle" Benutzer abgelegt in einem LDAP-Verzeichnis
mit "Default-E-Mail-Adressen" in der Form user at firma.de und
vorname.nachname at firma.de
- eine Reihe zusätzlicher "Alias-Domains", d.h. alle User-Anteile sollen
unter allen Domains (firma.com, firma.info, ...) erreichbar sein.
Diese Domains sind ebenfalls im LDAP abgelegt.
- Ich möchte auf jeden Fall verhindern, alle Kombinationen von User-Teil
und Domains als Alias den Nutzern-Objekten im LDAP zuzuordnen.
(Vor allem da die Anzahl der Domains auch von Zeit zu Zeit zunimmt.)
Beim Einliefern einer Mail passiert also folgendes:
1. per $mydestination wird geprüft, ob Postfix für die Domain zuständig ist.
($mydestination beinhaltet eine LDAP-Table, zur Domain-Abfrage)
(Es ist nur "smtpd_recipient_restrictions" gesetzt, um Relaying nach SMTP-Auth
zu erlauben: smtpd_recipient_restrictions =
permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination)
2. Es werden die "local_recipient_maps" ausgewertet, in denen u.a. so etwas steht:
---------------------------------------------------------------------------
# Prüfe, ob der User-Teil als Alias oder als Account bekannt ist.
# (Prüfung der Domain-Gültigkeit erfolgt über $mydestination)
query_filter = (&(mail=*)(|(uid=%u)(gosaMailAlternateAddress=%u@*)))
result_attribute = uid
---------------------------------------------------------------------------
3. In den "virtual_alias_maps" werden zum einen alle Domains im LDAP durch
die Standard-Domain ersetzt (so dass die andere Map s.u. in "virtual_alias_maps"
zutreffen kann: alias_key at firma.com -> alias_key at firma.de -> user at firma.de)
Die Map sieht in etwa so aus:
---------------------------------------------------------------------------
query_filter = cn=%d
result_attribute = description
result_format = @firma.de
---------------------------------------------------------------------------
Weiterhin werden die E-Mail-Adressen auf Aliases geprüft:
---------------------------------------------------------------------------
query_filter = (|(gosaMailAlternateAddress=%s)(mail=%s))
result_attribute = uid
---------------------------------------------------------------------------
(Der Teil mit "mail=%s" ist ein "Hack", um die Mail mit Cyrus zustellen
zu können: weil "vorname.nachname" keine gültige Mailbox ist.)
Nun zum Problem:
Durch das Hinzufügen der virtual_alias_maps zur "Domain-Ersetzung" werden durch die
"Catchall-Adresse" @%d -> @firma.de leider die local_recipient_maps ausgehebelt,
weil (in meinem Fall blöderweise) der smtpd bei der Annahme auf Port 25 auch in
dieser Map nach gültigen Empfängern sucht.
Daher habe ich in der master.cf für smtpd "virtual_alias_maps=" gesetzt,
was anscheinend das Problem löst.
Besser wäre eine Möglichkeit - die ich bisher noch nicht gefunden habe -
um den Domain-Teil im Envelop zu ersetzen.
Ich bin mir aber unsicher, ob das noch andere Probleme nach sich zieht,
habt Ihr eine Idee?
Gruß,
Mathias Jeschke
Mehr Informationen über die Mailingliste Postfixbuch-users