Postfix
Postfix policyd-spf 拒絕 無
如何在 Postfix 中配置 policyd-spf 以拒絕沒有 SPF 記錄的域?
該文件未指定此條件,並且需要在出站中繼上拒絕欺騙/未經授權的電子郵件。
Stackoverflow 上的類似問答建議將 DMARC 與 SPF 一起使用。但這對於 Postfix 來說不是一個理想的情況,因為 OpenDMARC 仍處於測試階段,而且我不熟悉它的 Postfix 實現,或者它是否可以配置為在沒有 DMARC 記錄的情況下拒絕電子郵件。
像 policyd-spf 這樣的 SPF 策略伺服器沒有拒絕沒有 SPF 記錄的域的選項。解決方案是使用自定義策略伺服器。
如果您使用 python policyd-spf,您可以編輯執行檔(debian 中的 /usr/bin/policyd-spf):
在此程式碼塊下的第 159 行:
if mfrom_policy == 'SPF_Not_Pass': try: unused_results.remove('Fail') actions['reject'].append('Fail') unused_results.remove('Softfail') actions['reject'].append('Softfail') unused_results.remove('Neutral') actions['reject'].append('Neutral') except: if debugLevel >= 2: syslog.syslog('Configuration File parsing error: Mail_From_reject')
添加 :
elif mfrom_policy == 'Cerberus': try: unused_results.remove('Fail') actions['reject'].append('Fail') unused_results.remove('Softfail') actions['reject'].append('Softfail') unused_results.remove('None') actions['reject'].append('None') except: if debugLevel >= 2: syslog.syslog('Configuration File parsing error: Mail_From_reject')
要啟動這個新的“Cerberus”選項,請編輯配置文件**/etc/postfix-policyd-spf-python/policyd-spf.conf*並通過“ Cerberus ”更改Mail_From_reject*的值,如下所示:
# Mail_From_reject = Fail Mail_From_reject = Cerberus
通過此修改,您可以輕鬆地從標準配置更改為更激進的配置,該配置拒絕沒有 spf 記錄的域。
這適用於 Debian 10 和 ubuntu 20.04。