인터페이스는 현지화되어 있으며, Skill 소개와 설명 문서는 선택한 언어로 AI가 자동 번역합니다. 코드·명령어·경로·전문 용어는 원문을 유지하며 원작자 문서가 우선합니다.
Skills 둘러보기
생산성 및 협업 · SKILL.md

implementing-dmarc-dkim-spf-email-security

implementing-dmarc-dkim-spf-email-security

SPF、DKIM 和 DMARC 是邮件认证的三大支柱,共同防止域名伪造、验证消息完整性并定义处理未认证邮件的策略。正确实施可显著减少冒充组织域名的钓鱼攻击。

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill 문서

GitHub

name: implementing-dmarc-dkim-spf-email-security description: SPF、DKIM 和 DMARC 是邮件认证的三大支柱,共同防止域名伪造、验证消息完整性并定义处理未认证邮件的策略。正确实施可显著减少冒充组织域名的钓鱼攻击。 domain: cybersecurity subdomain: phishing-defense tags: [phishing, email-security, social-engineering, dmarc, awareness, dkim, spf, dns] version: "1.0" author: mahipal license: Apache-2.0

实施 DMARC、DKIM 和 SPF 邮件安全

概述

SPF、DKIM 和 DMARC 是邮件认证的三大支柱。三者共同防止域名伪造、验证消息完整性并定义处理未认证邮件的策略。正确实施可显著减少冒充组织域名的钓鱼攻击。

前置条件

  • 域名的 DNS 管理访问权限
  • 邮件服务器/MTA 配置访问权限(Postfix、Exchange、Google Workspace、Microsoft 365)
  • 对 DNS TXT 记录的基本了解
  • Python 3.8+ 用于验证脚本

核心概念

SPF(发件人策略框架)

发布 DNS TXT 记录,列出被授权代表您的域名发送邮件的 IP 地址和邮件服务器。接收服务器根据此列表检查信封发件人的 IP。

DKIM(域名密钥识别邮件)

使用私钥向外发邮件添加加密签名。相应的公钥在 DNS 中发布。接收方验证签名以确保消息在传输过程中未被篡改。

DMARC(基于域名的消息认证、报告和一致性)

基于 SPF 和 DKIM 构建,为认证失败的消息指定策略(none/quarantine/reject),并提供监控伪造尝试的报告机制。

实施步骤

步骤一:审计当前状态

# 检查现有 SPF 记录
dig TXT example.com | grep spf

# 检查现有 DKIM 选择器
dig TXT selector1._domainkey.example.com

# 检查现有 DMARC 记录
dig TXT _dmarc.example.com

步骤二:实施 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 — 软拒绝(监控阶段)

步骤三:实施 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...

步骤四:实施 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

步骤五:监控和分析 DMARC 报告

使用 scripts/process.py 解析 DMARC 聚合 XML 报告,识别认证失败、未授权发件人和伪造尝试。

工具与资源

验证

  • SPF 记录在 mxtoolbox.com 上通过验证
  • DKIM 签名在测试邮件上得到验证
  • DMARC 记录格式正确且已启用报告
  • 测试邮件在收件人的 Authentication-Results 标头中通过所有三项检查
저장한 Skills