Pavin Joseph Asked: 2016-12-03 06:38:12 +0800 CST2016-12-03 06:38:12 +0800 CST 2016-12-03 06:38:12 +0800 CST Postfix policyd-spf 拒绝 无 772 如何在 Postfix 中配置 policyd-spf 以拒绝没有 SPF 记录的域? 该文档未指定此条件,并且需要在出站中继上拒绝欺骗/未经授权的电子邮件。 Stackoverflow 上的类似问答建议将 DMARC 与 SPF 一起使用。但这对于 Postfix 来说不是一个理想的情况,因为 OpenDMARC 仍处于测试阶段,而且我不熟悉它的 Postfix 实现,或者它是否可以配置为在没有 DMARC 记录的情况下拒绝电子邮件。 postfix spf dmarc policyd 2 个回答 Voted Best Answer Pavin Joseph 2016-12-09T02:08:37+08:002016-12-09T02:08:37+08:00 像 policyd-spf 这样的 SPF 策略服务器没有拒绝没有 SPF 记录的域的选项。解决方案是使用自定义策略服务器。 Selenith 2017-03-10T04:01:47+08:002017-03-10T04:01:47+08:00 如果您使用 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。
像 policyd-spf 这样的 SPF 策略服务器没有拒绝没有 SPF 记录的域的选项。解决方案是使用自定义策略服务器。
如果您使用 python policyd-spf,您可以编辑可执行文件(debian 中的 /usr/bin/policyd-spf):
在此代码块下的第 159 行:
添加 :
要激活这个新的“Cerberus”选项,请编辑配置文件/etc/postfix-policyd-spf-python/policyd-spf.conf并通过“ Cerberus ”更改Mail_From_reject的值,如下所示:
通过此修改,您可以轻松地从标准配置更改为更积极的配置,该配置拒绝没有 spf 记录的域。
这适用于 Debian 10 和 ubuntu 20.04。