Agent Skills by ALSEL
汎用セキュリティ⭐ リポ 11品質スコア 70/100

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 レポートを解析し、認証失敗、未認可の送信者、および詐称の試みを特定します。

ツールとリソース

検証

  • SPF レコードが mxtoolbox.com で検証に合格
  • DKIM 署名がテストメールで検証される
  • DMARC レコードが正しくフォーマットされ、レポート機能が有効
  • テストメールが受信者の Authentication-Results ヘッダーで3つすべての検査に合格

ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
killvxk
リポジトリ
killvxk/cybersecurity-skills-zh
ライセンス
Apache-2.0
最終更新
2026/4/28

Source: https://github.com/killvxk/cybersecurity-skills-zh / ライセンス: Apache-2.0

本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: killvxk · killvxk/cybersecurity-skills-zh · ライセンス: Apache-2.0