Minimales Postfix master.cf

Minimales Postfix master.cf

Ich stelle derzeit einen weiteren Postfix-MTA bereit und dieses Mal möchte ich die Anzahl der master.cfnicht benötigten Dienste reduzieren und deaktivieren, um die potenzielle Angriffsfläche zu verringern und dabei ein besseres Verständnis davon zu bekommen.

Der MTA sollte E-Mails von virtuellen Benutzern empfangen, diese an das entsprechende Mailverzeichnis übermitteln und schließlich E-Mails von authentifizierten Benutzern weiterleiten.

Die Umstellung auf OpenSMTPd (mit dem meine gesamte Konfiguration in einer einzigen 15-zeiligen Datei ausgedrückt werden kann) ist derzeit nicht möglich (keine Milter-Unterstützung), daher bleibe ich bei Postfix hängen.

Der Horror, um den es geht:

# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (no)    (never) (100)
# ==========================================================================
smtp      inet  n       -       n       -       -       smtpd
#submission inet n       -       n       -       -       smtpd
pickup    unix  n       -       n       60      1       pickup
cleanup   unix  n       -       n       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
tlsmgr    unix  -       -       n       1000?   1       tlsmgr
rewrite   unix  -       -       n       -       -       trivial-rewrite
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce
trace     unix  -       -       n       -       0       bounce
verify    unix  -       -       n       -       1       verify
flush     unix  n       -       n       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       n       -       -       smtp
relay     unix  -       -       n       -       -       smtp
showq     unix  n       -       n       -       -       showq
error     unix  -       -       n       -       -       error
retry     unix  -       -       n       -       -       error
discard   unix  -       -       n       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
anvil     unix  -       -       n       -       1       anvil
scache    unix  -       -       n       -       1       scache

Es gibt keine Manpage, die eine minimale Konfiguration beschreibt, und die Manpages der einzelnen Dienste geben nicht wirklich an, ob ein Modul erforderlich ist oder nicht (für einige ist es recht einfach, das herauszufinden, für andere ist es ohne endloses Ausprobieren nahezu unmöglich).

Mein aktueller fehlgeschlagener Versuch ist der folgende (Übermittlungsport ausgelassen, im Moment versuche ich nur, die E-Mail-Zustellung zum Laufen zu bringen):

smtp inet n - - - - smtpd
cleanup unix n - - - 0 cleanup
qmgr unix - - - 300 1 qmgr
rewrite unix - - - - - trivial-rewrite
proxymap unix - - - - - proxymap
virtual unix - n - - - virtual
anvil unix - - - - 1 anvil
local unix - n - - - local

Das funktioniert irgendwie, außer dass alle empfangenen E-Mails erst beim Neustart von Postfix (an Maildir) zugestellt werden, und ich bin ziemlich sicher, dass es unvollständig ist und keine Bounces verarbeiten kann, also suche ich immer noch nach einer Antwort.

Antwort1

Ich würde Ihnen nicht empfehlen, den Dienst zu entfernen aus demStandard master.cf. Sie sind darauf hereingefallen, als Sie die minimalistische Konfiguration ausprobiert haben.

Ein Grund, warum Postfix viele Dienste hat, istSicherheit. Ein Vorteil ist, dass Postfix von einem separaten Daemon/Dienst ausgeführt wird, um bestimmte Aufgaben auszuführen. Postfix masterkann also Berechtigungen und Privilegien pro Postfix-Dienst anpassen. Zum Beispielqmgr(8)-Daemonkommuniziert nicht mit der Außenwelt und kann mit festgelegten niedrigen Berechtigungen in einer Chroot-Umgebung ausgeführt werden.

Jedenfalls habe ich keine Zeit, endlos herumzuprobieren, um herauszufinden, welcher Postfix-Dienst deaktiviert werden kann. Deshalb gebe ich Ihnen einige Informationen zu einigen Diensten und gruppiere sie in mehrere Gruppen.

# INPUT SERVICE
smtp      inet  n       -       n       -       -       smtpd
#submission inet n       -       n       -       -       smtpd
pickup    unix  n       -       n       60      1       pickup

# PROCESSING SERVICE
cleanup   unix  n       -       n       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
rewrite   unix  -       -       n       -       -       trivial-rewrite

# OUTPUT SERVICE
error     unix  -       -       n       -       -       error
retry     unix  -       -       n       -       -       error
discard   unix  -       -       n       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
smtp      unix  -       -       n       -       -       smtp
relay     unix  -       -       n       -       -       smtp

# HELPER
# Generate bounce
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce
trace     unix  -       -       n       -       0       bounce

# For postfix recipient/sender verification See www.postfix.org/ADDRESS_VERIFICATION_README.html
verify    unix  -       -       n       -       1       verify

# Outgoing Connection manager 
scache    unix  -       -       n       -       1       scache

# TLS Cache Manager
tlsmgr    unix  -       -       n       1000?   1       tlsmgr

# maintains statistics about client connection counts or client request rates
anvil     unix  -       -       n       -       1       anvil

# Needed by mailq command
showq     unix  n       -       n       -       -       showq

# Needed by postqueue -f
flush     unix  n       -       n       1000?   0       flush

# Proxymap
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap

verwandte Informationen