怎么给邮件设置DKIM?

邮局服务器基础  ·  2025-04-18

设置 SPF 和 DKIM

设置SPF

TXT  @   "v=spf1 mx ~all"

检查SPF

dig your-domain.com txt

配置 SPF 策略代理 (可选)

告诉 Postfix SMTP 服务器检查传入电子邮件的 SPF 记录。对于发邮件来说没啥用,但是对于接收邮件可以用来检测伪造的邮件。

安装包

sudo apt install postfix-policyd-spf-python

编辑master配置文件

sudo vi /etc/postfix/master.cf

在文件末尾添加下面两行

policyd-spf  unix  -       n       n       -       0       spawn
    user=policyd-spf argv=/usr/bin/policyd-spf

保存并关闭,然后编辑main.cf文件

policyd-spf_time_limit = 3600
smtpd_recipient_restrictions =
   permit_mynetworks,
   permit_sasl_authenticated,
   reject_unauth_destination,
   check_policy_service unix:private/policyd-spf

保存并关闭。然后重新启动postifx

sudo systemctl restart postfix

这样你完成了接收邮件SPF的检查设置。

设置DKIM

安装OpenDKIM开源包

sudo apt install opendkim opendkim-tools

然后添加postfix用户到opendkim组中

sudo gpasswd -a postfix opendkim

编辑opendkim 配置文件

sudo vi /etc/opendkim.conf

找到下面这行

Syslog               yes

添加更详细的日志输出

Syslog               yes
Logwhy               yes

找到下面这些行,取消注释,将simple改为relaxed/simple

#Canonicalization   simple
#Mode               sv
#SubDomains         no

找到SubDomains no.,并添加下面这些内容

AutoRestart         yes
AutoRestartRate     10/1M
Background          yes
DNSTimeout          5
SignatureAlgorithm  rsa-sha256

最后,在文件末尾添加下面部分

KeyTable           refile:/etc/opendkim/key.table
SigningTable       refile:/etc/opendkim/signing.table
ExternalIgnoreList  /etc/opendkim/trusted.hosts
InternalHosts       /etc/opendkim/trusted.hosts

创建 signing.table, key.table 和 trusted.hosts 文件

给OpenDKIM创建目录结构

sudo mkdir /etc/opendkim
sudo mkdir /etc/opendkim/keys

更改权限

sudo chown -R opendkim:opendkim /etc/opendkim
sudo chmod go-rw /etc/opendkim/keys

创建signing.table

sudo vi /etc/opendkim/signing.table

添加下面两行,告诉opendkim 哪些地址将会由default._domainkey进行签名

*@your-domain.com    default._domainkey.your-domain.com
*@*.your-domain.com    default._domainkey.your-domain.com

保存并关闭。然后创建key.table

sudo vi  /etc/opendkim/key.table

添加下面内容,告诉私钥在哪

default._domainkey.your-domain.com     your-domain.com:default:/etc/opendkim/keys/your-domain.com/default.private

保存并关闭。然后创建trusted.hosts

127.0.0.1
localhost

.your-domain.com

生成公钥和私钥

创建文件夹

sudo mkdir /etc/opendkim/keys/your-domain.com

使用opendkim-genkey生成密钥

sudo opendkim-genkey -b 2048 -d your-domain.com -D /etc/opendkim/keys/your-domain.com -s default -v

将opendkim设为私钥的所有者。

sudo chown opendkim:opendkim /etc/opendkim/keys/your-domain.com/default.private

更改权限,以便只有opendkim用户对该文件具有读写访问权限

sudo chmod 600 /etc/opendkim/keys/your-domain.com/default.private

在DNS中设置你的公钥

查看你的公钥

sudo cat /etc/opendkim/keys/your-domain.com/default.txt

复制括号内容(将双引号,空格,换行符去掉),然后在dns中进行添加

TXT  default._domainkey   复制括号内容(将双引号,空格,换行符去掉)

将 Postfix 连接到 OpenDKIM

创建一个目录来存放 OpenDKIM 套接字文件,并仅允许opendkim用户和postfix组访问它。

sudo mkdir /var/spool/postfix/opendkim
sudo chown opendkim:postfix /var/spool/postfix/opendkim

编辑 OpenDKIM 配置文件

sudo vi /etc/opendkim.conf

找到下面这行

Socket    local:/run/opendkim/opendkim.sock

替换为下面内容

Socket    local:/var/spool/postfix/opendkim/opendkim.sock

保存并关闭。

如果在 /etc/default/opendkim 中找到下面这行

SOCKET="local:/var/run/opendkim/opendkim.sock"
#or
#SOCKET=local:$RUNDIR/opendkim.sock

替换为

SOCKET="local:/var/spool/postfix/opendkim/opendkim.sock"

保存并关闭。然后编辑 postfix main文件

sudo vi /etc/postfix/main.cf

在文件的末尾添加以下几行,以便 Postfix 能够通过 milter 协议调用 OpenDKIM。

# Milter configuration
milter_default_action = accept
milter_protocol = 6
smtpd_milters = local:opendkim/opendkim.sock
non_smtpd_milters = $smtpd_milters

保存并关闭。然后重启postfix 和 opendkim 服务

sudo systemctl restart opendkim postfix
 邮局
下一篇:没有了
评论
火箭邮社 - RS. All Rights Reserved. 📧 [email protected]
沪ICP备16033364号-4