Postfix配置spf认证和dkim认证

Postfix配置spf认证和dkim认证

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

1. 为Postfix添加spf认证

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

v=spf1 include:example.com -all


2. 为Postfix添加DKIM认证

① 配置openDKIM

1.安装openDKIM

Bash
yum search opendkim
yum install opendkim.x86_64 -y

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

GDScript
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 替换成自己的域名

Bash
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里添加如下内容

Transact-SQL
*@example.com default._domainkey.example.com

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

CBM BASIC V2
127.0.0.1
test.com


② 配置TXT记录

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

是一个名为default._domainkeyTXT记录。


③ 配置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


④ 启动openDKIM

Bash
systemctl restart opendkim
systemctl restart postfix
systemctl enable opendkim


3. 添加 dmarc 记录

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

详细语法请见 RFC7489

示例

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

创建时间:2021-04-28 08:15:00

最后修改:2023-02-13 06:00:44