DKIM始めました

去年の7月に書いたDMARCレポートの件。

メールアドレス偽装による「なりすましメール」と高をくくっていたのだが、たまにチェックしてたらSPFをPASSしているものが目につくようになってきた。問題のメールそのものは確認できないので微妙だが、踏み台リレーにされているような形跡も確認できない事から送信元IPアドレスが詐称されている可能性が考えられる。

名前やメールアドレスよりは難易度は高いものの、その筋の知識があればIPアドレス詐称は容易にできてしまい、いずれも完全に防ぐ事が難しいので、電子署名によるDKIMを導入することに。

というわけで、OpenDKIMをインストール。参考までOpenDMARCはチェックする側の方だ。

ドメインは複数あるものの、メール送受信で使っているのはほぼほぼbravotouring.comだけなので、シングルドメインの設定。

root@vps:~# apt install opendkim opendkim-tools
root@vps:~# mkdir /etc/opendkim
root@vps:~# mkdir /etc/opendkim/key
root@vps:~# mkdir /etc/opendkim/key/bravotouring.com
root@vps:~# opendkim-genkey -D /etc/opendkim/key/bravotouring.com/ -d bravotouring.com -s default
root@vps:~# chown -R opendkim:opendkim /etc/opendkim/key
root@vps:~# cat << '_EOF_' >> /etc/opendkim.conf
Domain                bravotouring.com
KeyFile               /etc/opendkim/key/bravotouring.com/default.private
Selector              default
Canonicalization      simple
Mode                  sv
SubDomains            no
ADSPAction            continue
_EOF_
root@vps:~# cat << '_EOF_' >> /etc/default/opendkim
SOCKET="inet:8891@localhost"
_EOF_
root@vps:~# service opendkim restart
root@vps:~# vi /etc/postfix/main.cf
root@vps:~# cat << '_EOF_' >> /etc/postfix/main.cf
milter_default_action = accept
non_smtpd_milters = $smtpd_milters
smtpd_milters = inet:localhost:8891
_EOF_
root@vps:~# postfix check
root@vps:~# service postfix reload
root@vps:~# postconf | egrep 'milter_default_action|non_smtpd_milters|smtpd_milters'
root@vps:~# vi /etc/opendkim/key/bravotouring.com/default.txt /etc/nsd/zones/bravotouring.com.zone
~~ zoneファイルに_domainkey公開鍵のTXTレコードを追加 ~~
root@vps:~# nsd-control reload
root@vps:~#

最終的にgmailのアドレス宛に送信して

Authentication-Results: mx.google.com;
       dkim=pass header.i=@bravotouring.com header.s=default header.b=qYH6ReqD;
       spf=pass (google.com: domain of XXXX@bravotouring.com designates 2403:3a00:202:1112:***:***:***:*** as permitted sender) smtp.mailfrom=XXXX@bravotouring.com;
       dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=bravotouring.com

となればOK。

あとはDMARCのポリシーを"none"から変更すれば完了だが、“quarantine"でいいんだっけかな?

参照

Qiita https://qiita.com/

なりすまし対策ポータル ナリタイ https://www.naritai.jp/

IIJ Engineers Blog https://eng-blog.iij.ad.jp/

SendGridブログ https://sendgrid.kke.co.jp/

JPNIC https://www.nic.ad.jp/

MxToolbox https://mxtoolbox.com/

ArchWiki https://wiki.archlinux.jp/

Wikipedia http://ja.wikipedia.org/wiki/