implementing-dmarc-dkim-spf-email-security
SPF、DKIM、DMARCはメール認証の3つの重要な要素です。これらを組み合わせることで、ドメイン詐称を防止し、メッセージの完全性を検証し、認証されていないメールの処理ポリシーを定義できます。これらを正しく導入することで、組織のドメイン名を装ったフィッシング攻撃を大幅に削減できます。
description の原文を見る
SPF、DKIM 和 DMARC 是邮件认证的三大支柱,共同防止域名伪造、验证消息完整性并定义处理未认证邮件的策略。正确实施可显著减少冒充组织域名的钓鱼攻击。
SKILL.md 本文
DMARC、DKIM、SPF メールセキュリティの実装
概要
SPF、DKIM、DMARC はメール認証の三大要素です。これら三つは協力して、ドメイン詐称を防止し、メッセージの完全性を検証し、未認証メールの処理ポリシーを定義します。正しく実装することで、組織のドメインになりすまそうとするフィッシング攻撃を大幅に削減できます。
前提条件
- ドメインの DNS 管理アクセス権限
- メールサーバー/MTA 設定アクセス権限(Postfix、Exchange、Google Workspace、Microsoft 365)
- DNS TXT レコードの基本的な理解
- 検証スクリプト用の Python 3.8 以上
コア概念
SPF(Sender Policy Framework)
DNS TXT レコードを公開し、あなたのドメインの代わりにメール送信を認可された IP アドレスとメールサーバーをリストアップします。受信サーバーはこのリストに基づいてエンベロープ送信者の IP を確認します。
DKIM(DomainKeys Identified Mail)
秘密鍵を使用して送信メールに暗号署名を追加します。対応する公開鍵は DNS で公開されます。受信者は署名を検証して、転送中にメッセージが改ざんされていないことを確認します。
DMARC(Domain-based Message Authentication, Reporting and Conformance)
SPF と DKIM に基づいており、認証に失敗したメッセージのポリシー(none/quarantine/reject)を指定し、詐称の試みを監視するためのレポート機構を提供します。
実装手順
ステップ 1:現在の状態を監査
# 既存の SPF レコードを確認
dig TXT example.com | grep spf
# 既存の DKIM セレクターを確認
dig TXT selector1._domainkey.example.com
# 既存の DMARC レコードを確認
dig TXT _dmarc.example.com
ステップ 2:SPF を実装
# example.com の DNS TXT レコード
v=spf1 ip4:203.0.113.0/24 include:_spf.google.com include:spf.protection.outlook.com -all
SPF の重要なメカニズム:
ip4:/ip6:— 特定の IP 範囲を認可include:— 別のドメインの SPF レコードを含めるa— ドメインの A レコード IP を認可mx— ドメインの MX レコード IP を認可-all— その他すべてをハード拒否(推奨)~all— ソフト拒否(監視段階)
ステップ 3:DKIM を実装
# DKIM キーペアを生成(2048 ビット RSA)
openssl genrsa -out dkim_private.pem 2048
openssl rsa -in dkim_private.pem -pubout -out dkim_public.pem
# DNS 用に公開鍵をフォーマット(ヘッダー削除、行を統合)
grep -v "PUBLIC KEY" dkim_public.pem | tr -d '\n'
selector1._domainkey.example.com の DNS TXT レコード:
v=DKIM1; k=rsa; p=MIIBIjANBgkqhki...
ステップ 4:DMARC を実装
# _dmarc.example.com の DNS TXT レコード
# フェーズ 1(監視):
v=DMARC1; p=none; rua=mailto:dmarc-aggregate@example.com; ruf=mailto:dmarc-forensic@example.com; pct=100
# フェーズ 2(隔離):
v=DMARC1; p=quarantine; rua=mailto:dmarc-aggregate@example.com; pct=25
# フェーズ 3(拒否):
v=DMARC1; p=reject; rua=mailto:dmarc-aggregate@example.com; pct=100
ステップ 5:DMARC レポートを監視・分析
scripts/process.py を使用して DMARC 集計 XML レポートを解析し、認証失敗、未認可の送信者、および詐称の試みを特定します。
ツールとリソース
- MXToolbox: https://mxtoolbox.com/SuperTool.aspx
- DMARC Analyzer(dmarcian): https://dmarcian.com/
- Google Postmaster Tools: https://postmaster.google.com/
- Valimail DMARC Monitor: https://www.valimail.com/
- DMARC Report Analyzer: https://dmarc.postmarkapp.com/
検証
- SPF レコードが mxtoolbox.com で検証に合格
- DKIM 署名がテストメールで検証される
- DMARC レコードが正しくフォーマットされ、レポート機能が有効
- テストメールが受信者の Authentication-Results ヘッダーで3つすべての検査に合格
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- killvxk
- ライセンス
- Apache-2.0
- 最終更新
- 2026/4/28
Source: https://github.com/killvxk/cybersecurity-skills-zh / ライセンス: Apache-2.0