Bei der Integration unseres Produktes in den Mailstack von UCS müssen wir einen MILTER-Daemon an Postfix anbinden.
Dieses kann nur auf Basis einer zusätzlichen Template-Datei im Template-Set für Postfix erfolgen.
Die übliche Umsetzung dieser Konfiguration hängt zwei zusätzliche Zeilen an die main.cf von Postfix an.
Bei dieser Konfiguration werden allerdings alle smtpd(8postfix) Dienste, die vom Postfix master-Prozess gestartet wurden, beeinflußt. Neben den smtpd-Prozessen für eingehende E-Mail werden auch die Prozesse konfiguriert, über die Amavis mit Postfix gekoppelt wird. Dieses hat zur Folge, dass jede E-Mail den Milter zweimal durchläuft.
Dieses Verhalten kann nur vermieden werden, wenn die Konfiguration des MILTERs in der master.cf von Postfix vorgenommen wird.
Leider ist diese Vorgehensweise mit den derzeit von UCS implementierten Templates der master.cf nicht möglich.
Die aus unserer Sicht einzige Möglichkeit erfordert eine Erweiteurng der Template-Datei /etc/univention/templates/files/etc/postfix/master.cf.d/10_services :
$ diff -u 10_services 10_services.benno
--- 10_services_ORG 2015-03-12 10:04:42.315133281 +0100
+++ 10_services 2015-03-12 14:09:49.926892120 +0100
@@ -8,6 +8,10 @@
smtp = '%s inet n - n - - smtpd' % configRegistry.get('mail/smtpport', '25')
if configRegistry.is_true("mail/postfix/smtpd/debug", False):
smtp += " -v"
+PREFIX='mail/postfix/smtpd/options'
+for key, value in configRegistry.items():
+ if key.startswith(PREFIX) and key != PREFIX:
+ smtp += ' -o %s=%s' % (key.split('/')[-1], configRegistry[key])
print smtp
@!@
#628 inet n - n - - qmqpd
@@ -30,6 +34,10 @@
ssmtp = "465 inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes"
if configRegistry.is_true("mail/postfix/smtpd/debug", False):
ssmtp += " -v"
+PREFIX='mail/postfix/smtpd/options'
+for key, value in configRegistry.items():
+ if key.startswith(PREFIX) and key != PREFIX:
+ ssmtp += ' -o %s=%s' % (key.split('/')[-1], configRegistry[key])
print ssmtp
@!@
#587 inet n - n - - smtpd -v -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
Die zusätzlichen Parameter für die Konfiguration von Postfix können dann wie folgt gesetzt werden:
ucr set mail/postfix/smtpd/options/smtpd_milters='unix:/var/spool/postfix/benno-milter/benno-milter.sock'
ucr set mail/postfix/smtpd/options/milter_default_action='tempfail'
Viele Grüße,
Martin Werthmöller