送信ドメイン認証

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のアドレス宛に送信して

DMRC

noreply@dmarc.yahoo.comから

Report Domain: bravotouring.com Submitter: yahoo.com Report-ID: <1562374749.248416>

というメール着弾。

JPNICの解説~DMARCとは~によると、

SPFおよびDKIMを用いて送信元ドメインを認証する際、 認証に失敗したメールをどのように取り扱うかは、受信者の判断に任せられています。 また、認証に失敗したことやそのメールがどのように処理されたかは、 送信者には把握することができません。 そういったSPFおよびDKIMの挙動を補強するために、DMARCが提案されました。 DMARCでは、認証失敗時にどのようにメールを処理すればよいかを、 送信者が受信者に対してポリシーと呼ばれるレコードをDNS上で公開することで表明する仕組みになっています。 受信者は認証に失敗した場合に送信者のポリシーを参照し、 それに基づいてメールをどのように取り扱うかを決定します。 さらにDMARCでは、受信者から送信者に対して認証に失敗した旨を通知するレポートを送ることができます。 送信者は受信者から送られてきたレポートの内容を調べることで、 自身のメールシステムが正しく運用されているかどうかの判断や、 迷惑メール対策などに役立てることができます。

という事らしい。

ちなみにSPFには対応しているものの、電子署名が必要なDKIMには非対応。

DMARCのポリシーも"none"のままだが、yahoo.com宛にメールを送信した事はないと思うので、どこかの誰かが「なりすまし」して送信しているという事だろう。

参照

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

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

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