smtpd_sender_login_maps mit Postfixadmin als relay für Exchange

Abstract

Wird ein Mailserver über Postfixadmin administriert, wird die Verwaltung von Maildomains meist an Domainadmins ( hier postmaster Account der Maildomain ) deligiert. Manchmal werden noch zusaetzlich Exchange Relay Setups von Kunden angefragt.

Wird ein Mailserver über Postfixadmin administriert, wird die Verwaltung von Maildomains meist an Domainadmins ( z.B postmaster Account der Maildomain ) deligiert. Manchmal werden noch zusätzlich Exchange Relay Setups von Kunden angefragt.

Diese Anforderung kann man dannn wie folgt umsetzen.

Alle Mails an alle Mailadressen ( als Aliase ) einer Maildomain laufen in eine Mailbox ( z.B. die postmaster Mailbox/Account der Maildomain ).

Important

Mit Postfixadmin sind auch sogenannte "Catch All" Accounts vom Grundsatz her möglich, wegen der daraus resultierenden Spamproblematik erlaube ich solche Accounts per se nicht, Mindestens die gewollten Mailadressen sind vom Domainadmin zu pflegen.

Die postmaster Mailbox wird regelmaessig per POP3 zb von einem Exchange server abgefragt. Versendet wird wiederum ebenfalls mit vorheriger Authentifizierung über den postmaster account der Maildomain.

Important

Es ist mir völlig bewusst , dass ein solches Setup sehr veraltet ist, die bessere Lösung ist natürlich einen transport auf die fixe ip des Exchange zu legen, aber es gibt eben Kunden die sich diesen Luxus nicht leisten wollen.

Normalerweise legt man das Postfixadmin Layout in mysql so an, dass es kein "Versenden als" möglich ist. Das heisst, jede Emailadresse/Mailbox muss sich mit ihrem Passwort vor dem Versenden authentifizieren.

Mit einer Alias Adresse kann folglich per se nicht versendet werden, was aber weiter kein Problem ist da man ein Alias auch in Form einer weitergeleiteten Mailbox anlegen kann, diese kann dann problemlos zb in Thunderbird zusätzlich eingepflegt werden und natürlich auch Versenden.

Damit dieses an sich sinnvolle Postfixadmin Schema beibehalten werden kann, muss man dem postmaster Account bzw Domainadmin einer Maildomain nun das Recht erteilen mit allen existierenden Mailadressen einer Maildomain zu versenden, damit dieser als relay User im Exchange Server angelegt werden kann.

Man koennte das Problem nun mit statischen Eintraegen lösen , dass ist aber nicht sehr elegant. Besser ist es dies mit einer mysql Abfrage zu lösen um beide Anforderungen gleichzeitig abzuarbeiten.

smtpd_sender_login_maps = mysql:/etc/postfix/mysql_sasl_login_maps.cf

user = postfixadmin
password = postfix
hosts = 1.2.3.4
dbname = postfix
query = SELECT username FROM domain_admins WHERE domain='%d' UNION SELECT username FROM mailbox WHERE username='%s' AND active = 1

Desweitern sollte man noch weitere Absicherungen in der main.cf von Postfix vornehmen

smtpd_sender_restrictions = reject_unknown_sender_domain,
                            reject_non_fqdn_sender,
                            permit_mynetworks,
                            reject_unlisted_sender,
                            permit_sasl_authenticated,
                            reject_unauth_pipelining


smtpd_recipient_restrictions = reject_unknown_recipient_domain,
                               reject_non_fqdn_recipient,
                               permit_mynetworks,
                               reject_unlisted_recipient,
                               reject_sender_login_mismatch,
                               permit_sasl_authenticated,
                               reject_unauth_pipelining,
                               reject_unauth_destination

Important

Besonders reject_unlisted_sender in smtpd_sender_restrictions vor permit_sasl_authenticated ist wichtig, denn damit wird verhindert dass mit Mailadressen versendet wird ,die auf dem Mailsystem gar nicht existieren, das zwingt zb den Domainadmin des Exchange den Mailadressenbestand seiner Maildomain, auf dem Exchange ,mit dem Postfixadminsystem sychron zu halten.

Abschliessend ist zu erwähnen, dass diese Anforderungen heute wohl eher selten sind, oder anders gelöst werden , sei es mit statischen Postfixeinträgen oder mit anderen Adminguis als Postfixadmin, völlig ausgestorben dürften diese Setups allerdings noch nicht sein und da Postfixadmin doch sehr verbreitet ist , könnte diese Lösung doch bisweilen noch für jemanden hilfreich sein.

Robert Schetterer, 15. February 2013