Postfix配置spf认证和dkim认证

ps.配置完成后,可以用 mail-tester.com检查一下配置是否成功

1. 为Postfix添加spf认证

在DNS服务商的网站上增加一条TXT记录

v=spf1 include:example.com -all


2. 为Postfix添加DKIM认证

① 配置openDKIM

1.安装openDKIM

yum search opendkim
yum install opendkim.x86_64 -y

2.在/etc/opendkim.conf中,添加以下内容

AutoRestart             Yes
AutoRestartRate         10/1h
LogWhy                  Yes
Syslog                  Yes
SyslogSuccess           Yes
Mode                    sv
Canonicalization        relaxed/simple
ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
InternalHosts           refile:/etc/opendkim/TrustedHosts
KeyTable                refile:/etc/opendkim/KeyTable
SigningTable            refile:/etc/opendkim/SigningTable
SignatureAlgorithm      rsa-sha256
Socket                  inet:8891@localhost
PidFile                 /var/run/opendkim/opendkim.pid
UMask                   022
UserID                  opendkim:opendkim
TemporaryDirectory      /var/tmp

3.执行以下命令,注意:将以下步骤的 example.com 替换成自己的域名

mkdir /etc/opendkim/keys/example.com #创建密钥目录
opendkim-genkey -D /etc/opendkim/keys/example.com/ -d example.com -s default #生成密钥
chown -R opendkim: /etc/opendkim/keys/example.com  #更改所有者

在目录/etc/opendkim/keys/example.com下会生成两个文件,default.privatedefault.txt

4.在/etc/opendkim/KeyTable里添加如下内容

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

5.在/etc/opendkim/SigningTable里添加如下内容

*@example.com default._domainkey.example.com

6.在/etc/opendkim/TrustedHosts里添加如下内容

127.0.0.1
test.com


② 配置TXT记录

在DNS服务商中,加入文件/etc/opendkim/keys/example.com/default.txt内容。

是一个名为default._domainkeyTXT记录。

<br/>

③ 配置POSTFIX

修改postfix的main.cf文件,在/etc/postfix/main.cf中添加如下内容

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

<br/>

④ 启动openDKIM

systemctl restart opendkim
systemctl restart postfix
systemctl enable opendkim

<br/>

3. 添加 dmarc 记录

在DNS服务商里加入一条名为_dmarc的TXT记录,类似于 v=DMARC1; p=none;

详细语法请见 RFC7489

示例

v=DMARC1; p=none; ri=3600; rua=mailto:DMARC@example.com; ruf=mailto:DMARC@example.com; sp=none; adkim=s; aspf=s; fo=0:1:d:s;
选项解释
vDMARC 协议版本。它的值必须是 DMARC1
p策略,该策略将被应用到验证失败的邮件上。可以设置成: none 用来收集 DMARC 报告, quarantine 用来隔离可疑邮件 ,reject 用来拒收可疑邮件
ri是以秒为单位的报告发送间隔
rua一系列用来接受聚合报告的电邮
ruf一系列用来接受失败报告的电邮
sp子域名策略
adkim制定 DKIM 的对齐策略
aspf制定 SPF 的对齐策略
fo法庭选项
rf制定失败报告的格式
pct对失败邮件应用策略的百分比