关于 implementing-dmarc-dkim-spf-email-security
这项技能指导域名管理员配置 SPF、DKIM 和 DMARC,以验证发件来源与邮件完整性,并处理未通过认证的邮件。内容包括 DNS 记录设置、DMARC 报告分析和验证步骤。
主要功能
- 01检查现有 SPF、DKIM 和 DMARC 记录
- 02设置 SPF 授权发件服务器
- 03生成 DKIM 密钥并发布公钥
- 04配置 DMARC 策略与报告
- 05解析 DMARC 汇总报告
适用场景
- 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(发件人策略框架)
发布一条 DNS TXT 记录,列出获准代表你的域名发送电子邮件的 IP 地址和邮件服务器。接收服务器会将信封发件人的 IP 地址与此列表进行核对。
DKIM(域名密钥识别邮件)
使用私钥为发出的电子邮件添加加密签名,并将对应的公钥发布到 DNS 中。接收方会验证签名,以确保邮件在传输过程中未被篡改。
DMARC(基于域名的邮件身份验证、报告和一致性)
DMARC 基于 SPF 和 DKIM,通过指定策略(none/quarantine/reject)来处理身份验证失败的邮件,并提供报告机制,以监控伪造尝试。
工作流
步骤 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 标头中通过全部三项检查
评论
支持 Markdown