设置 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
评论