implementing-dmarc-dkim-spf-email-security について
SPF、DKIM、DMARC を設定し、送信元の認証やメールの完全性を確認する手順を説明するスキルです。ドメイン管理者向けに、DNS レコード、DMARC レポートの分析、設定の検証を扱います。
主な機能
- 01既存の SPF、DKIM、DMARC レコードを確認
- 02SPF で送信サーバーを認可
- 03DKIM 鍵を生成し公開鍵を DNS に登録
- 04DMARC ポリシーとレポートを設定
- 05DMARC 集計レポートを解析
活用シーン
- 01組織ドメインを偽装するフィッシングの抑制
- 02監視から隔離または拒否ポリシーへの段階的な移行
- 03未許可の送信元や認証失敗の特定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill implementing-dmarc-dkim-spf-email-securityインストール後、Claude Code で/implementing-dmarc-dkim-spf-email-securityを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEassets/template.mdreferences/api-reference.mdstandards.mdworkflows.mdscripts/agent.pyprocess.py詳細
DMARC、DKIM、SPF を実装したメールセキュリティ
概要
SPF、DKIM、DMARC は、メール認証の三本柱です。これらを組み合わせることで、ドメインのなりすましを防止し、メッセージの完全性を検証し、認証されていないメールの処理ポリシーを定めます。適切に実装すれば、組織のドメインになりすましたフィッシング攻撃を大幅に減らせます。
使用する場面
- 環境に DMARC、DKIM、SPF のメールセキュリティ機能を導入または設定する場合
- コンプライアンス要件に沿ったセキュリティ制御を確立する場合
- このドメインのセキュリティアーキテクチャを構築または改善する場合
- この実装を必要とするセキュリティ評価を実施する場合
前提条件
- ドメインの DNS 管理アクセス
- メールサーバー/MTA の設定へのアクセス(Postfix、Exchange、Google Workspace、Microsoft 365)
- DNS TXT レコードの基本的な理解
- 検証スクリプト用の Python 3.8+
主な概念
SPF(Sender Policy Framework)
ドメインに代わってメールを送信できる、許可された IP アドレスとメールサーバーを列挙した DNS TXT レコードを公開します。受信側サーバーは、エンベロープ送信者の IP アドレスをこのリストと照合します。
DKIM(DomainKeys Identified Mail)
秘密鍵を使用して、送信メールに暗号署名を追加します。対応する公開鍵は DNS で公開されます。受信側は署名を検証し、転送中にメッセージが改ざんされていないことを確認します。
DMARC(Domain-based Message Authentication, Reporting and Conformance)
認証に失敗したメッセージに対するポリシー(none/quarantine/reject)を指定することで SPF と DKIM を補完し、なりすましの試みを監視するためのレポート機能を提供します。
ワークフロー
ステップ 1:現在の状態を監査する
# Check existing SPF record
dig TXT example.com | grep spf
# Check existing DKIM selector
dig TXT selector1._domainkey.example.com
# Check existing DMARC record
dig TXT _dmarc.example.com
ステップ 2:SPF を実装する
# DNS TXT record for example.com
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 を実装する
# Generate DKIM key pair (2048-bit RSA)
openssl genrsa -out dkim_private.pem 2048
openssl rsa -in dkim_private.pem -pubout -out dkim_public.pem
# Format public key for DNS (remove headers, join lines)
grep -v "PUBLIC KEY" dkim_public.pem | tr -d '\n'
selector1._domainkey.example.com に設定する DNS TXT レコード:
v=DKIM1; k=rsa; p=MIIBIjANBgkqhki...
ステップ 4:DMARC を実装する
# DNS TXT record at _dmarc.example.com
# Phase 1 (Monitor):
v=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected]; pct=100
# Phase 2 (Quarantine):
v=DMARC1; p=quarantine; rua=mailto:[email protected]; pct=25
# Phase 3 (Reject):
v=DMARC1; p=reject; rua=mailto:[email protected]; 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 ヘッダーですべての認証チェックに合格する