最小後綴 master.cf

最小後綴 master.cf

我目前正在部署另一個 Postfix MTA,這次我想精簡master.cf並停用不需要的服務,以減少潛在的攻擊面,並在此過程中更好地了解它。

MTA 應該接收發給虛擬使用者的電子郵件,將它們傳送到適當的郵件目錄,最後轉發來自經過驗證的使用者的郵件。

目前還不可能切換到 O​​penSMTPd(我的整個設定可以在一個 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

我不建議您從預設 大師.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

相關內容