OpenDKIM を使う
DKIM (DomainKeys Identified Mail) で電子署名を付与し、送信元のなりすましを防ぎます。
apt install opendkim opendkim-tools
# user:postfix to group opendkim
adduser postfix opendkim
opendkim.conf
# change socket location
vi /etc/opendkim.conf
# change permission
UMask 002
# change socket
Socket = local:/var/spool/postfix/opendkim/opendkim.sock
# Add tail
Mode sv
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
make directory
mkdir -p /etc/opendkim/keys
mkdir -p /var/spool/postfix/opendkim
chown -R opendkim.opendkim /var/spool/postfix/opendkim
SigningTable
vi /etc/opendkim/SigningTable
*@mydomain.com default._domainkey.mydomain.com
*@mydomain2.com default._domainkey.mydomain2.com
KeyTable
vi /etc/opendkim/KeyTable
default._domainkey.mydomain.com mydomain.com:default:/etc/opendkim/keys/mydomain.com/default.private
default._domainkey.mydomain2.com mydomain2.com:default:/etc/opendkim/keys/mydomain2.com/default.private
TrustedHosts
vi /etc/opendkim/TrustedHosts
# The localhost IP (127.0.0.1) should always be the first entry in this file.
127.0.0.1
::1
#host.example.com
192.168.0.0/16
電子証明書の作成
mkdir -p /etc/opendkim/keys/mydomain.com
opendkim-genkey -b 2048 -d mydomain.com -D /etc/opendkim/keys/mydomain.com -s default -v
mkdir -p /etc/opendkim/keys/mydomain2.com
opendkim-genkey -b 2048 -d mydomain2.com -D /etc/opendkim/keys/mydomain2.com -s default -v
chown -R opendkim.opendkim /etc/opendkim/keys
生成した公開鍵(default.txt) をDNS にTXT レコードを追加。
# add DKIM
default._domainkey TXT Active 300 "v=DKIM1;h=sha256;k=rsa;p=MIIBIj....DAQAB"
# add ADSP
_adsp._domainkey TXT Active 300 dkim=unknown
# dkim=unknown: DKIM署名していないメールも送信する。
# dkim=all: 送信するメールはすべてDKIM署名をおこなっている。
# dkim=discardable: DKIM署名がされていなかったり不正な署名のメールは削除
Postfix milter として設定。(OpenDMARC と一緒に)
vi /etc/postfix/main.cf
# OpenDMARC
milter_default_action = accept
smtpd_milters=unix:/opendkim/opendkim.sock, unix:/opendmarc/opendmarc.sock
non_smtpd_milters=$smtpd_milters