В настоящее время я развертываю еще один Postfix MTA, и на этот раз мне хотелось бы сократить количество master.cf
и отключить ненужные службы, чтобы уменьшить потенциальную поверхность атаки, а также лучше понять процесс.
MTA должен получать электронные письма от виртуальных пользователей, доставлять их в соответствующий почтовый каталог и, наконец, ретранслировать почту от аутентифицированных пользователей.
Переход на OpenSMTPd (с помощью которого вся моя конфигурация может быть выражена в одном файле из 15 строк) на данный момент невозможен (нет поддержки milter), поэтому мне остается Postfix.
Ужас, о котором идет речь:
# ==========================================================================
# 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
Не существует ни одной страницы руководства, описывающей минимальную конфигурацию, а страницы руководства каждой службы на самом деле не говорят, требуется ли модуль или нет (для некоторых это достаточно легко выяснить, для других это практически невозможно без бесконечных проб и ошибок).
Моя текущая неудачная попытка выглядит следующим образом (порт отправки опущен, сейчас я пытаюсь только заставить работать доставку почты):
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
Это вроде бы работает, за исключением того, что вся полученная почта доставляется (в maildir) только при перезапуске Postfix, и я почти уверен, что он неполный и не может обрабатывать возвраты, поэтому я все еще ищу ответ.
решение1
Я бы не рекомендовал вам удалять услугу изпо умолчанию мастер.cf. Вы были укушены этим, когда попробовали минималистичную конфигурацию.
Одна из причин, по которой у Postfix так много служб, заключается в следующем:безопасность. Одним из преимуществ является то, что postfix запускается отдельным демоном/службой для выполнения определенной задачи. Таким образом, postfix master
может настраивать разрешения и привилегии для каждой службы postfix. Напримерqmgr(8) демонне взаимодействует с внешним миром и может работать с фиксированными низкими привилегиями в изолированной среде.
В любом случае у меня нет времени заниматься бесконечными пробами и ошибками, чтобы узнать, что такое postfix-сервис, который можно отключить. Поэтому я даю вам некоторую информацию о некоторых сервисах и группирую их по нескольким группам.
# 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