メール認証(SPF/DKIM/DMARC)の基本|偽装メール対策を整理

セキュリティ

自分のドメインから送ったメールが迷惑メールに入ったり、届かなかったりする背景には、メール認証(SPF/DKIM/DMARC)の設定不足があることが多いです。

一方で、認証が弱いままだと第三者にドメインを悪用され、なりすましメールを送られるリスクも高まります。
この記事では、SPF・DKIM・DMARCの役割を整理し、「まず何を設定すべきか」を判断できる状態を目指します。

SPF/DKIM/DMARCの役割と違いを一気に整理

SPF/DKIM/DMARCは、それぞれ別の観点から「このメールは信用できるか」を判断します。
単体では不十分ですが、組み合わせることで偽装メール対策として機能します。

SPF|送信元IPが正しいかを確認する仕組み

SPFは「このドメインからメールを送ってよいサーバーか」を確認する仕組みです。
DNSにSPFレコードを設定し、許可した送信元IP以外からの送信を判定します。

ただし、SPFは送信元IPのみを見ているため、転送や一部の配信経路では失敗しやすい点があります。

DKIM|メール内容が改ざんされていないことを証明

DKIMは、メール本文とヘッダーに電子署名を付けることで、送信後に内容が改ざんされていないことを証明します。
受信側はDNSに公開された公開鍵で署名を検証します。

IPに依存しないため、転送に強いのが特徴です。

DMARC|SPFとDKIMの結果をどう扱うかのポリシー

DMARCは、SPFとDKIMの認証結果を踏まえて「失敗したメールをどう扱うか」を決めるルールです。
none/quarantine/reject のポリシーを指定し、さらにレポートで状況を把握できます。

DMARCがあることで、受信側は明確な判断基準を持てるようになります。

メール偽装対策として最低限やるべき設定

結論から言うと、SPFだけでは不十分で、DKIMとDMARCを組み合わせて初めて偽装対策として成立します。
送信できているから安全、という判断は危険です。

SPFだけでは不十分な理由

SPFは送信元IPを確認する仕組みのため、最低限の設定としては必須です。
ただし、メール転送やメーリングリストを経由すると失敗するケースがあり、なりすましを完全には防げません。

まずは自ドメインのSPFが正しく設定されているかを確認し、不要な送信元が含まれていないかを整理することが重要です。

DMARCを「none」で終わらせない注意点

DMARCを p=none に設定すると、レポート収集はできますが、実際のブロックは行われません。
これは「様子見」の段階としては正しいものの、長期間そのままにすると偽装対策として効果が弱い状態が続きます。

運用の基本は以下の流れです。

最初は none でレポートを確認し、正規送信の洗い出しを行います。
問題がなければ quarantine に進み、最終的に reject を検討します。

段階的に強化することで、正規メールの誤判定を避けつつ安全性を高められます。

まとめ:まずは「見える化」と段階的な強化から

メール認証(SPF/DKIM/DMARC)は、どれか一つを設定すれば安心というものではありません。
SPFで送信元を限定し、DKIMで改ざんを防ぎ、DMARCでその結果をどう扱うかを決める。この3点がそろって、初めて偽装メール対策として機能します。

重要なのは、いきなり厳しい設定にしないことです。
まずはDMARCレポートで現状を把握し、正規メールの送信経路を洗い出す「見える化」から始めましょう。

自分のドメインが今どう評価されているのかを確認したら、次はDMARCレポートを読み解き、段階的にポリシーを強化していくことが次の一歩になります。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする