Postfix policyd-spf 拒绝无

Postfix policyd-spf 拒绝无

如何在 Postfix 中配置 policyd-spf 以拒绝没有 SPF 记录的域?

文档没有指定此条件并且需要拒绝出站中继上的欺骗/未经授权的电子邮件。

相似的问答Stackoverflow 建议将 DMARC 与 SPF 一起使用。但对于 Postfix 来说,这并不是一个理想的情况,因为 OpenDMARC 仍处于测试阶段,而且说实话,我并不熟悉它的 Postfix 实现,也不知道是否可以将其配置为在没有 DMARC 记录的情况下拒绝电子邮件。

答案1

SPF 策略服务器(如 policyd-spf)没有拒绝没有 SPF 记录的域的选项。解决方案是使用自定义策略服务器。

答案2

如果您使用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并改变发件人拒绝邮件经过 ”塞伯鲁斯“ 像这样 :

# Mail_From_reject = Fail
Mail_From_reject = Cerberus

通过此修改,您可以轻松地从标准配置更改为更积极的配置,从而拒绝没有 spf 记录的域。

这适用于 Debian 10 和 ubuntu 20.04。

相关内容