Altermime 免责声明修改标题和 DKIM 失败 / Postfix

问题描述

我对 DKIM 和 Altermime/免责声明有疑问。 在 DKIM 创建 DKIM-Siganture 后,Altermime 修改标头,因此 DKIM 失败。 我修复了它,更改了配置中的一些内容

/etc/postfix/main.cf

non_smtpd_milters = inet:localhost:8891
#[REMOVE] smtpd_milters = inet:localhost:8891

并过滤修改标题

/etc/postfix/master.cf

smtp inet n - n - - smtpd
  -o content_filter=dfilt:

然后就可以了,因为 DKIM 在 Altermime 修改标头后签名。 在这种情况下,SpamAssassin 会检查 DKIM 签名(已删除 smtpd_milters)

但是当我安装 opendmarc 时,此配置将不起作用。 因为如果失败或通过,opendmarc 将需要有关 DKIM 的信息。 而且 DKIM 在 opendmarc 之后被 spamassassin 检查,所以在这种情况下它没有意义。

如何解决这个问题?也许使用 amavis ?

解决方法

好的,我解决了这个问题。所以我们需要像这样的 amavisd-milter 和适当的配置:

main.cf:

# PORTS -> amavisd-millter: 10029,opendmarc: 54321,dkim: 8891
smtpd_milters = inet:localhost:10029 inet:localhost:54321
non_smtpd_milter = inet:localhost:8891

master.cf:

# name of our filter: dflit
submission inet n - y - - smtpd
 -o content_filter=dfilt:

/etc/amavis/conf.d/50-user

enable_dkim_verification = 1;

重要提示:请记住,如果您在 master.cf 中禁用提交过滤器,则不会创建 dkim 签名!!!

,

第二个简单选项:

main.cf

### 8891 (opendkim) 54321 (opendmarc)
smtpd_milters = inet:localhost:8891 inet:localhost:54321

master.cf

submission inet n - y - - smtpd
     -o content_filter=dfilt:
     -o smtpd_milters=
     -o non_smtpd_milters=inet:localhost:8891

content_filter 使用 sendmail 命令行将过滤后的邮件注入 postfix,然后激活 non_smtpd_milters 并且邮件已由 dkim 签名。 结论:在 main.cf 中,dkim 的 milters 设置将检查 dkim 签名,签名将在 587 提交端口上进行。 记住不要在 master.cf 中使用 no_milters 来取货:

pickup fifo n - y 60 1 pickup
 -o content_filter=
 -o receive_override_options=no_header_body_checks,[if you have remove: no_milters option !]