最小限の Postfix master.cf

最小限の Postfix master.cf

現在、さらに別の Postfix MTA を導入中ですが、今回は、master.cf攻撃対象となる可能性のある領域を減らすために不要なサービスを減らして無効にし、その過程でより深く理解したいと考えています。

MTA は仮想ユーザーへの電子メールを受信し、適切なメールディレクトリに配信し、最後に認証されたユーザーからのメールを中継する必要があります。

OpenSMTPd (これを使用すると、設定全体を 15 行のファイル 1 つで表現できます) への切り替えは現時点では不可能 (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

これは一応動作しますが、受信したメールはすべて Postfix を再起動したときにのみ (maildir に) 配信されます。また、不完全でバウンスを処理できないことはほぼ確実なので、まだ答えを探しています。

答え1

サービスを削除することはお勧めしませんデフォルト マスター.cfミニマリスト構成を試したときに、これに悩まされました。

postfixに多くのサービスがある理由の一つは安全利点の1つは、特定のタスクを実行するために別のデーモン/サービスによって実行されることです。そのため、postfixはmasterpostfixサービスごとに権限と特権を調整できます。たとえば、qmgr(8) デーモン外部と通信せず、chroot 環境で固定された低い権限で実行できます。

とにかく、無効にできる 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

関連情報