Postfix

Postfix policyd-spf 拒絕 無

  • March 6, 2021

如何在 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。

引用自:https://serverfault.com/questions/818367