如何在 ubuntu 14.04 邮件服务器上配置 opendkim (Postfix – dovecot)

如何在 ubuntu 14.04 邮件服务器上配置 opendkim (Postfix – dovecot)

我无法在我的服务器(Ubuntu 14.04)上配置 DKIM。 有没有相关教程?(我的邮件服务器已根据此手册进行了配置:http://www.krizna.com/ubuntu/setup-mail-server-ubuntu-14-04/

答案1

首先安装必要的软件包:

sudo apt-get install opendkim opendkim-tools

添加以下内容/etc/opendkim.conf

Domain    example.com
KeyFile    /etc/postfix/dkim.key
Selector    dkim
SOCKET    inet:8891@localhost

添加以下内容/etc/default/opendkim

SOCKET="inet:8891@localhost"

将合适的 DKIM 配置附加到/etc/postfix/main.cf

# DKIM
# --------------------------------------
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

您必须将其附加no_miltersreceive_override_options中的行/etc/postfix/master.cf。这可以防止在同一封外发邮件上放置多个签名

-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters

现在您可以生成用于签署外发邮件的私钥。请注意,在下面的命令中,dkim是 中赋予 Selector 的值/etc/opendkim.conf

opendkim-genkey -t -s dkim -d example.com

将密钥移到位,但不要忘记复制一份并将该副本备份到安全的地方:

mv dkim.private /etc/postfix/dkim.key

您需要重新启动 Postfix 和 OpenDKIM 服务以应用配置更改,以便使用 DKIM 签名外发邮件:

service opendkim start
service postfix restart

接下来是 DNS 记录设置。如何执行此操作同样完全取决于您如何管理 DNS 或 DNS 如何为您管理 - 每个人的工具都不同。

该文件dkim.txt包含以下内容,即必须创建的完整 TXT 记录。它具有子域dkim._domainkey和一长组编码内容作为值。再次,“dkim”是 中提供给 Selector 的值/etc/opendkim.conf

dkim._domainkey IN  TXT ( "v=DKIM1; k=rsa; t=y; "
"p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9rulKo58JIb5h+3MMEnYhlnbuVgRoA4w68R/X7qA2Lfv3RpdrrUb+r7KxemIo6PUIOm6uZ5OymhBgpJ0LAWBHBSJjnFmDXNajSgxMOcvkpgmVCW1/k1kxK864WVVSyFVQPyUImqklY+ws4u+mog3PSbuq2J8NFAnvSwzMg3vT1QIDAQAB" ; ----- DKIM key mail for example.com

设置此项时,应省略k=rsa; t=y;值的部分。第一项指的是密钥格式,默认为 RSA。第二项表示这是一个测试条目,不应包括在内。因此,值如下所示:

"v=DKIM1; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9rulKo58JIb5h+3MMEnYhlnbuVgRoA4w68R/X7qA2Lfv3RpdrrUb+r7KxemIo6PUIOm6uZ5OymhBgpJ0LAWBHBSJjnFmDXNajSgxMOcvkpgmVCW1/k1kxK864WVVSyFVQPyUImqklY+ws4u+mog3PSbuq2J8NFAnvSwzMg3vT1QIDAQAB"

为了进行比较,查看实际示例会很有帮助,这样您就可以了解如何将值输入到记录中。您可以使用DKIM 密钥检查器或其他工具,例如 dig。请注意,dkim._domainkey以下命令中的 是子域:

dig dkim._domainkey.twitter.com txt

编辑1

/etc/postfix/main.cf形态改变

# DKIM
# --------------------------------------
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

smtpd_milters           = inet:127.0.0.1:8891
non_smtpd_milters       = $smtpd_milters
milter_default_action   = accept
milter_protocol         = 2

重新启动postfix。检查服务状态opendkimpostfix再次检查邮件发送。

相关内容