最小后缀 master.cf

7 postfix

我目前正在部署另一个 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
Run Code Online (Sandbox Code Playgroud)

没有任何描述最小配置的手册页,并且每个服务的手册页并没有真正说明是否需要某个模块(对于某些模块来说很容易弄清楚,对于其他人来说几乎不可能没有无休止的试错)。

我当前失败的尝试如下(省略了提交端口,现在我只是想让邮件投递工作):

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
Run Code Online (Sandbox Code Playgroud)

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

mas*_*oeh 9

我不会建议您从默认的 master.cf 中删除服务。当您尝试极简配置时,您已经被它咬住了。

postfix 有很多服务的原因之一是安全性。优点之一是 postfix 由单独的守护进程/服务运行以执行特定任务。因此,postfixmaster可以调整每个 postfix 服务的权限和特权。例如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
Run Code Online (Sandbox Code Playgroud)