最小 Postfix master.cf

最小 Postfix master.cf

我目前正在部署另一个 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

这有点用,除了所有收到的邮件只有在重新启动 Postfix 时才会传递(到 maildir),而且我很确定它是不完整的并且无法处理退回,所以我仍在寻找答案。

答案1

我不建议你从默认 主配置文件当你尝试极简配置时你就已经被它咬了。

Postfix 拥有众多服务的原因之一是安全其中一个优点是 Postfix 由单独的守护进程/服务运行以执行特定任务。因此,Postfixmaster可以调整每个 Postfix 服务的权限和特权。例如qmgr(8) 守护进程不与外界对话,并且可以在 chrooted 环境中以固定的低权限运行。

无论如何,我没有时间进行无休止的反复试验,以了解可以禁用哪些 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

相关内容