メールを送信しないドメインにSPF/DKIM/DMARCを設定して迷惑メール被害を避ける
独自ドメインを持っているが、メールには使っていないという状況はよくあるはずです。
しかし、メールに使っていないドメインでも、メールの仕組み上、そのドメインを騙ってメールを送信されるリスクが存在します。
悪意ある第三者がドメインを詐称して迷惑メールやフィッシングメールを送信することで、ドメイン所有者が加害者であるかのように見せかけることが可能です。
結果として、ドメインの評判が傷つき、将来メールを使いたくなったときに正常に送信できなくなったり、最悪の場合ブラックリストに登録されたりする可能性があります。
被害を防ぐには、メールを送信しないドメインでも適切なセキュリティ設定が必要です。
本記事では、メール送信に使わないドメインでも設定しておくべき迷惑メール対策について解説します。
TL;DR
メール送受信に使わないドメインには、以下の3つのDNS TXTレコードを設定しましょう。
| レコード名 | タイプ | 値 |
|---|---|---|
| (空) | TXT | v=spf1 -all |
| _dmarc | TXT | v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s; |
| *._domainkey | TXT | v=DKIM1; p= |
また、不要なMXレコードがあれば削除しておくのがベターです。
なりすましメールの仕組み
2種類の「送信者アドレス」
電子メールには、エンベロープFromとヘッダーFromという2つの送信者アドレスが存在します。
- エンベロープFromは、SMTP通信時に「MAIL FROM」コマンドで指定される送信元アドレスです。メールサーバ間の配送時に使われ、エラー通知の返送先となりますが、通常のメールクライアントには表示されません。技術的には「Return-Path」ヘッダとして記録されます。
- ヘッダーFromは、メールのヘッダ部分に含まれる「From:」フィールドのアドレスです。メールクライアントが「差出人」として表示するのはヘッダーFromであり、受信者が実際に目にする送信者情報です。エンベロープFromとは独立して設定できるため、両者が異なることもあります。
なりすましメールは、エンベロープFromとヘッダーFromの両方を不正に詐称することで成立します。
どうやって防ぐのか?
なりすましメールを防ぐには、「このドメインからメールが送られることはない」とインターネット上で宣言する必要があります。
この宣言に使われるのが、SPF、DKIM、DMARCという3つの技術です。
複雑に見えますが、目的はシンプルです。
「あなたのドメインを騙ったメールが届いたら、偽物だと受信側に判断させる」
それだけです。
具体的には、DNSレコードに「このドメインからは一切メールを送りません」と登録することで、受信サーバがなりすましメールを自動的に拒否できるようになります。
以下、各技術を見ていきましょう。
3つの対策技術
SPF(送信サーバを制限する)
SPFは、ドメインのDNSにTXTレコードを追加して「許可する送信サーバ」を宣言します。
メールを送信しないドメインの場合、「どのサーバからも送信しない」と宣言します。
v=spf1 -all
-all は「すべて拒否」を意味し、対象ドメインからの正当なメールは存在しないことを示します。
DKIM(電子署名で真正性を担保する)
DKIM(DomainKeys Identified Mail) は、メールに電子署名を付与し、DNSに登録した公開鍵で検証する仕組みです。
メールを送信しないドメインでは、「有効な公開鍵は存在しない」ことを示すために空の公開鍵を登録します。
v=DKIM1; p=
p= の値が空であることで、「対象ドメインの署名付きメールは存在しない」と宣言できます。
すべてのサブドメインに適用するため、ワイルドカード *._domainkey を使います。
DMARC(なりすましメールの処理を指示する)
DMARC(Domain-based Message Authentication, Reporting and Conformance) は、SPFやDKIMの検証に失敗したメールをどう扱うか、ドメイン所有者が指示できる仕組みです。
メールを送信しないドメインでは、すべて拒否(reject)を指定します。
v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;
| タグ | 意味 |
|---|---|
p=reject |
ドメインルートのポリシーを拒否に設定 |
sp=reject |
サブドメインのポリシーを拒否に設定 |
adkim=s |
DKIM検証をstrict(厳格)モードに設定 |
aspf=s |
SPF検証をstrictモードに設定 |
オプションで rua=[<mailto:your@email.com>](<mailto:your@email.com>); を追加すると、なりすましが検出された際にレポートを受け取れます。
Cloudflare DNSを使っている場合
Cloudflare DNSを使っている場合、MXレコードが未設定のドメインでは管理画面に「Email Security」の通知が表示されます。
通知画面からワンクリックで必要なレコードを追加できるので、手動で設定する必要がありません。
設定の確認方法
設定が正しく反映されているかは、以下の方法で確認できます。
コマンドラインで確認
# SPFの確認
dig TXT [example.com](<http://example.com>)
# DKIMの確認
dig TXT *._[domainkey.example.com](<http://domainkey.example.com>)
# DMARCの確認
dig TXT _[dmarc.example.com](<http://dmarc.example.com>)
オンラインツールで確認
dmarcian.com などのサービスを使えば、ドメイン名を入力するだけで一括チェックできます。
まとめ
メールを送信しないドメインであっても、なりすましのリスクは存在します。
以下の3つのDNSレコードを設定することで、ドメインを適切に保護できます。
- SPF:
v=spf1 -allを設定し、すべてのサーバからの送信を拒否 - DKIM:
v=DKIM1; p=を設定し、有効な署名が存在しないことを明示 - DMARC:
v=DMARC1; p=reject; ...を設定し、なりすましメールの拒否を指示
設定は数分で完了します。独自ドメインをお持ちの方は、早めに確認されることをお勧めします。
参考資料
メール送信者のガイドライン

