simon

simon

github

域名部署紀錄:從收到DMARC報告說起

最近,我在管理一個舊有域名example.life(隱去真實域名) 時,發生了一件小事件:我收到了來自 Google 的一封郵件,內容是關於example.life域名的DMARC 報告

這些報告通常是說:有一些郵件聲稱是從你的域名發送的,然而實際的發送伺服器 IP,設定,SPF/DKIM 等證明或者未通過。


什麼是 DMARC?#

DMARC (Domain-based Message Authentication, Reporting, and Conformance),是郵件驗證的一種標準,主要功能有三個:

  1. 驗證:跟蹤 SPF/DKIM 驗證結果,確定郵件是否真的來自指定域名;
  2. 報告:每天把檢測結果到證郵件發送給你指定的郵箱;
  3. 處理策略:在郵件未通過驗證時,指示收件方怎樣處理(不管,隔離,或拒收)。

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 記錄,是最好的選擇


解決方案#

  1. 確定保持 DNS 托管於 Cloudflare,不切換回 Namecheap BasicDNS。
  2. 刪除所有 MX 記錄,不再支持任何郵件功能。
  3. 保留 SPF TXT:
    v=spf1 -all
    
    說明我的域名不允許發送任何郵件。
  4. 保留 DMARC TXT:
    v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;
    
    確保嚴格攔截任何未通過驗證的郵件。
  5. 刪除空值 DKIM TXT 記錄,保證 DNS 清潔。
  6. 刪除不再需要的_acme-challenge記錄(如果不再自動維護證書)。
  7. 使用 Cloudflare 自帶的 DNS 管理控制面,簡單高效地操作。

總結#

通過此次清理,example.life域名達到了極簡簡潔,安全性最大化:

  • 不提供任何郵件服務;
  • 完全禁止假寫,促使域名信賴度最大化;
  • 充分使用 Cloudflare 的防護、加速和簡單管理能力。

記錄這次實際操作,如有類似問題的,期望這些經驗對你有所幫助。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。