最近,我在管理一個舊有域名example.life
(隱去真實域名) 時,發生了一件小事件:我收到了來自 Google 的一封郵件,內容是關於example.life
域名的DMARC 報告。
這些報告通常是說:有一些郵件聲稱是從你的域名發送的,然而實際的發送伺服器 IP,設定,SPF/DKIM 等證明或者未通過。
什麼是 DMARC?#
DMARC (Domain-based Message Authentication, Reporting, and Conformance),是郵件驗證的一種標準,主要功能有三個:
- 驗證:跟蹤 SPF/DKIM 驗證結果,確定郵件是否真的來自指定域名;
- 報告:每天把檢測結果到證郵件發送給你指定的郵箱;
- 處理策略:在郵件未通過驗證時,指示收件方怎樣處理(不管,隔離,或拒收)。
DMARC 未配置就有什麼風險?#
- 別人可以假寫你域名發送郵件,有可能被用作騙子、垃圾郵件。
- 有些深層騙子郵件,不驗證就很難被分辨,導致業務或信用損失。
問題分析#
收到 DMARC 報告後,我檢查了example.life
的現有配置,發現:
- DNS 托管於 Cloudflare,而非 Namecheap。
- MX 記錄指向 Namecheap 的郵件轉發服務,但我已不需要郵件功能;
- SPF 記錄是 “禁止任何發件”,但同時存在了先前的轉發 SPF 設定;
- DMARC 記錄重複,有一條 p=none,一條 p=reject,需要統一;
- DKIM TXT 記錄為空,沒有公鑰,無意義。
關於空值的*_domainkey
TXT 記錄:
在 Cloudflare 通過 Email Record Creator 生成 DMARC 配置時,默認也會生成一條空值的*_domainkey
TXT 記錄,但這條記錄實際上沒有公鑰,也不負責 DKIM 驗證,存在沒有意義。
如果我不提供郵件發送服務,那麼這條記錄最好直接刪除:
- 防止郵件檢查工具報錯(軟性警報);
- 使域名 DNS 配置更加清潔。
如果有自己的郵件服務,那就應該從郵件服務提供商生成正確的 DKIM 公鑰,補全記錄。
總結:目前 example.life 不需要郵件功能,因此直接刪除空 DKIM TXT 記錄,是最好的選擇。
解決方案#
- 確定保持 DNS 托管於 Cloudflare,不切換回 Namecheap BasicDNS。
- 刪除所有 MX 記錄,不再支持任何郵件功能。
- 保留 SPF TXT:
說明我的域名不允許發送任何郵件。
v=spf1 -all
- 保留 DMARC TXT:
確保嚴格攔截任何未通過驗證的郵件。
v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;
- 刪除空值 DKIM TXT 記錄,保證 DNS 清潔。
- 刪除不再需要的
_acme-challenge
記錄(如果不再自動維護證書)。 - 使用 Cloudflare 自帶的 DNS 管理控制面,簡單高效地操作。
總結#
通過此次清理,example.life
域名達到了極簡簡潔,安全性最大化:
- 不提供任何郵件服務;
- 完全禁止假寫,促使域名信賴度最大化;
- 充分使用 Cloudflare 的防護、加速和簡單管理能力。
記錄這次實際操作,如有類似問題的,期望這些經驗對你有所幫助。