CentOS7下给Postfix启用DKIM身份认证

邮件服务器搭建
https://www.jianshu.com/p/cecb77649f51

反向解析

请联系你的机房,或 云服务商,国内目前仅阿里云可以联系客服进行免费设置,国外一般 VPS 的控制面板就可以。

DKIM 签名

首先,我们需要安装使用下面的命令opendkim和opendkim工具包。

apt-get install opendkim opendkim-tools

修改 opendkim 配置文件
先备份

cp /etc/opendkim.conf /etc/opendkim.conf.org

vim /etc/opendkim.conf (直接将原来的删除修改成下面的内容)

UserID                  opendkim:opendkim
UMask                   022
Mode                    sv
PidFile                 /var/run/opendkim/opendkim.pid
Canonicalization        relaxed/relaxed
TemporaryDirectory      /var/tmp
ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
InternalHosts           refile:/etc/opendkim/TrustedHosts
KeyTable                refile:/etc/opendkim/KeyTable
SigningTable            refile:/etc/opendkim/SigningTable
MinimumKeyBits          1024
Socket                  inet:8891
LogWhy                  Yes
Syslog                  Yes
SyslogSuccess           Yes

创建密钥

mkdir -p /etc/opendkim/keys/YourDomain.com
opendkim-genkey -D /etc/opendkim/keys/YourDomain.com/ -d YourDomain.com -s default

创建完毕后,将其添加到 /etc/opendkim/KeyTable 中
vim /etc/opendkim/KeyTable

default._domainkey.YourDomain.com YourDomain.com:default:/etc/opendkim/keys/YourDomain.com/default.private

然后添加 /etc/opendkim/SigningTable
vim /etc/opendkim/SigningTable

*@YourDomain.com default._domainkey.YourDomain.com

设置允许进行签名的主机 到 /etc/opendkim/TrustedHosts 中,一般情况下都是本机发信,我们将 127.0.0.1 和localhost加入即可。
vim /etc/opendkim/TrustedHosts

127.0.0.1
  • 没有KeyTable,SigningTable,TrustedHosts文件就新建。
    给opendkim指定用户和授权
chown opendkim:opendkim -R /etc/opendkim/
chmod -R 700 /etc/opendkim

此时 DKIM 签名软件已经可以正常工作了,接下来就要让 Postfix 所发的邮件经过其处理,
打开 Postfix 的 main.cf 配置文件,到达底部,添加如下内容

vim /etc/postfix/main.cf

milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:8891
non_smtpd_milters = inet:8891
image.png

然后重新启动postfix和opendkim

serviceopendkim restart
service postfix restart

设置 DNS 记录

到 /etc/opendkim/keys/YourDomain.com/default.txt 可以找到你的 key (如下)。然后在域名服务商解析txt值,记录值就是括号里的内容,注意里面有换行需要自己连接,即去掉括号内双引号连接在一起即可。

default._domainkey  IN  TXT ( "v=DKIM1; h=sha256; k=rsa; "
      "p=MIIBIjANBgkqhkiG9w0FGJIKBFR687HGJAMIIBCgKCAQEAutyRyddK7JmYUgmstrsB1+7p0sbEufk8zVL7wDyPwsgVYT+o0HYFC4+dqxqiT3DG1iH43ef2FGH7J42+X4e60tndZcLCiATwZObtRSYlVWyCeA0/+xjZQTOezlMWjkWWEEU/1qVMb3jTXmhAEWFVCsKNVC1b2taq0eSb3YnfnSSfVUinrvsvUDFRAUeVzHU3xyE65emr1rIbSqZJ"
      "k5I+YbG9ti2lCGNm5Z96Yr7kwHG89K4TVzlYDM2r5F6OmHI1O/yp7qykzapfrCrvbEao0Ec+XJMU4EO2+TlvEhZf0TDSDEGVDAhgK/ga2wg/Sgxjtz4Q1Bc8fJttea6tOGKUBVi7wIDAQAB" )  ; ----- DKIM key default for test.com
image.png

SPF 记录的设置

向你的邮件域名添加一条 TXT 记录

记录名 记录值
@ v=spf1 a mx ip4:xxx.xxx.xxx.xxx ~all
设置DMARCK记录
  1. 登录域名管理后台,找到需要添加DMARCK记录的域名,增加TXT记录;
  2. 设置DMARC记录之前,请务必确保已设置SPF记录;
记录名 记录值
_dmarc v=DMARC1; p=none; fo=1; ruf=mailto:[email protected]; rua=mailto:[email protected]

注意:Dmarc记录里,有两个值可由您来自定义:

  • p:用于告知收件方,当检测到某邮件存在伪造发件人的情况,收件方要做出什么处理,reject为拒绝该邮件;none为不作任何处理;quarantine为将邮件标记为垃圾邮件。
  • ruf:用于当检测到伪造邮件,收件方须将检测结果发送到哪个邮箱地址。
    建议:p值最优设置方式是第一次设置选择none,观察发信情况一个月,再改为quarantine,再观察一个月,最后再设为reject。
  • [email protected][email protected]换成自己能用的邮件。

可以在http://www.appmaildev.com/cn/dkim测试

image.png

发送给谷歌邮箱打开显示原始邮件可以看到


image.png

image.png

网页邮箱测试


image.png

image.png

一个不错的邮箱测试工具

  • http://www.mail-tester.com/

你可能感兴趣的:(CentOS7下给Postfix启用DKIM身份认证)