Ich stelle derzeit einen weiteren Postfix-MTA bereit und dieses Mal möchte ich die Anzahl der master.cf
nicht 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 master
kann 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