メールを送信しないドメインにSPF/DKIM/DMARCを設定して迷惑メール被害を避ける

Share
メールを送信しないドメインにSPF/DKIM/DMARCを設定して迷惑メール被害を避ける
GoogleのDNS設定を見てみる

独自ドメインを持っているが、メールには使っていないという状況はよくあるはずです。

しかし、メールに使っていないドメインでも、メールの仕組み上、そのドメインを騙ってメールを送信されるリスクが存在します。

悪意ある第三者がドメインを詐称して迷惑メールやフィッシングメールを送信することで、ドメイン所有者が加害者であるかのように見せかけることが可能です。

結果として、ドメインの評判が傷つき、将来メールを使いたくなったときに正常に送信できなくなったり、最悪の場合ブラックリストに登録されたりする可能性があります。

被害を防ぐには、メールを送信しないドメインでも適切なセキュリティ設定が必要です。

本記事では、メール送信に使わないドメインでも設定しておくべき迷惑メール対策について解説します。

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 などのサービスを使えば、ドメイン名を入力するだけで一括チェックできます。

Mandated NL-Block - dmarcian
dmarcian

まとめ

メールを送信しないドメインであっても、なりすましのリスクは存在します。

以下の3つのDNSレコードを設定することで、ドメインを適切に保護できます。

  1. SPFv=spf1 -all を設定し、すべてのサーバからの送信を拒否
  2. DKIMv=DKIM1; p= を設定し、有効な署名が存在しないことを明示
  3. DMARCv=DMARC1; p=reject; ... を設定し、なりすましメールの拒否を指示

設定は数分で完了します。独自ドメインをお持ちの方は、早めに確認されることをお勧めします。

参考資料

Email sender guidelines - Google Workspace Admin Help
The guidelines in this article can help you successfully send and deliver email to personal Gmail accounts. Starting in 2024, email senders must meet the requirements described here to send email to G

メール送信者のガイドライン

メールを送信しないドメインを保護する方法|Cloudflare

Read more

1Passwordを閉じるボタンが……ねえ!

1Passwordを使っていたら、いつの間にかウィンドウの 閉じる/最小化/最大化ボタンが消えていた。Ctrl+Wでウィンドウ自体は閉じられるので長らく放置していたけれど、調べてみたら原因がしょうもなかったので共有しておく。 💡結論 F11を押してみよう 症状 * ウィンドウ右上の最小化・最大化・閉じるボタンが表示されない * タイトルバーも消えている * Ctrl+W では普通に閉じられる * PC再起動、1Passwordの終了・再起動、アンインストール → 再インストール、いずれも変化なし 原因 ただフルスクリーンモードに入っていただけ。 1Passwordコミュニティの投稿「Lost window minimize buttons top rhc.」で全く同じ症状が報告されていて、コミュニティマネージャーの回答が「F11でフルスクリーンを切り替えてみて」だった。 解決手順 1. 1Passwordのウィンドウをクリックしてフォーカスを当てる 2. F11 を押す これでタイトルバーとボタン類が戻ってくる。ダメな場合は Win + ↓(ウィン

By Sakashita Yasunobu

外字と訓点を compile-time hash で解く

aozora は青空文庫の外字参照 (※[#「魚+師」、第3水準1-94-37] のような形) を約 14,000 件のテーブルで解決する。このテーブルを runtime の HashMap ではなく phf (perfect hash function) で持ち、コンパイル時に static 配列に焼き込んでいる。この記事はその選択の根拠と、JIS X 0213 → Unicode フォールバックの設計をまとめたもの。 handbook の対応章: Shift_JIS + 外字 resolver。 外字テーブルの形 外字エントリには 3 種類の解決結果があり、それぞれに対応する variant を GaijiEntry に持たせている。 static GAIJI_TABLE: phf::Map<

By Sakashita Yasunobu

青空文庫の .txt を HTML に変換する最短手順

青空文庫 で配布されている .txt ファイルを HTML に変換したい、という用途向けの手順。Rust の知識は要らない。コマンド 1 行で済む。 1. CLI バイナリを取ってくる aozora の Releases ページ から自分の OS 向けのアーカイブを落とす。 OS アーカイブ名 Linux x86_64 aozora-vX.Y.Z-x86_64-unknown-linux-gnu.tar.gz macOS arm64 aozora-vX.Y.Z-aarch64-apple-darwin.tar.gz Windows x86_64 aozora-vX.Y.Z-x86_64-pc-windows-msvc.zip SHA256SUMS も同梱されているので、

By Sakashita Yasunobu