利用单个Postfix服务器设置多个域名设置的 DKIM 验证

Postfix DKIM Business Email Server Ubuntu

分类: 企业级电子邮件系统

安装环境: Ubuntu 18, Postfix, AWS云服务器,具备root权限

1:有root权限

2: 安装OpenDKIM

apt-get install opendkim opendkim-tools
3: 打开opendkim的配置文件 /etc/opendkim.conf

把以下的三行注释掉

#Domain example.com
#KeyFile /etc/opendkim/201205.private
#Selector 201205
4: 创建一些必要的目录和文件

mkdir /etc/opendkimnano /etc/opendkim/TrustedHosts
5: 在 TrustedHosts中, 根据需要加入如下的信息

127.0.0.1
localhost
111.111.111.111 # 替换成你自己的服务器IP地址
firstdomain.com
seconddomain.com
6: 编辑 /etc/default/opendkim 文件。 这个文件用来告诉OpenDKIM需要监听的端口,以便进行鉴权. 把下面的内容添加到文件尾部

SOCKET="inet:8891@localhost”
7: 打开Postfix的主配置文件 /etc/postfix/main.cf

下面的内容,是告诉Postfix程序,发送邮件是需要先签字以及如何签字

milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
8: 现在不要重启Postfix,因为还有文件没有创建,可能会导致 Postfix 报错

9: 让你所有的域名都可以使用DKIM。 假定你同时有两个域名

firstdomain.com, seconddomain.com

mkdir -p /etc/opendkim/keys/firstdomain.com
cd /etc/opendkim/keys/firstdomain.com
opendkim-genkey -r -d firstdomain.com # 生成密钥
chown opendkim:opendkim default.private # 配置密钥文件的正确权限
10: 让OpenDkim知道如何使用密钥

vim /etc/opendkim/KeyTable #
打开文件并添加如下内容

default._domainkey.firstdomain.com
firstdomain.com:default:/etc/opendkim/keys/firstdomain.com/default.private
vim /etc/opendkim/SigningTable # 这个文件列出了所有要进行签字的域名,打开此文件并添加如下内容
firstdomain.com default._domainkey.firstdomain.com
11:按照同样的命名规则,为域名 seconddomain.com 创建全套的内容

12:重启 opendkim 和 postfix 程序即可

/etc/init.d/opendkim restart
/etc/init.d/postfix reload
/etc/init.d/postfix restart
13:到DNS上为域名 seconddomain.com 添加正确的记录

找到公钥,它就是 /etc/opendkim/keys/seconddomain.com/default.txt, 里面的双引号中就是需要设置到TXT记录的值

TXT记录的名字是: default._domainkey值就是: v=DKIM1;k=rsa; p=WIGfM ……… ; (注意一定要以分号结尾, 别忘了)

补充: 其他必要的TXT记录别忘了同时添加

SPFv=spf1 +mx +a ip4:你的IP地址 -all以及DMARC记录_dmarc 值: v=DMARC1; p=reject; fo=1; ruf=mailto:你的邮件地址 rua=mailto:你的邮件地址

********************************************************************************

如有问题随时联系我吧

维墨科技 全职高手

一枪穿云@维墨科技

系统架构师/专业网站应用程序开发工程师; Master of PHP/AWS/网络服务, 20年IT行业经验; 精通各种前后端开发技术, Linux/Laravel/WordPress/VueJS/ElementUI 作为主要武器; SmartBro电子商务平台的主要开发者

职务: 全栈工程师 银武: 枪火 碎霜