最近、私は古いドメインexample.life
(実際のドメイン名は伏せています)を管理している際に、小さな出来事がありました:Google からのメールを受け取り、その内容はexample.life
ドメインのDMARC レポートに関するものでした。
これらのレポートは通常、次のような内容です:あなたのドメインから送信されたと主張するメールがいくつかありますが、実際の送信サーバーの IP、設定、SPF/DKIM などの証明が通過していないか、未設定です。
DMARC とは?#
DMARC(Domain-based Message Authentication, Reporting, and Conformance)は、メール認証の標準の一つで、主な機能は 3 つあります:
- 認証:SPF/DKIM の認証結果を追跡し、メールが本当に指定されたドメインから送信されたかを確認します;
- 報告:毎日、検出結果を証明するメールを指定されたメールアドレスに送信します;
- 処理ポリシー:メールが認証に失敗した場合、受信者にどのように処理するかを指示します(無視、隔離、または拒否)。
DMARC が未設定だとどんなリスクがある?#
- 他の人があなたのドメインを偽ってメールを送信することができ、詐欺やスパムに利用される可能性があります。
- 一部の深層詐欺メールは、認証なしでは識別が難しく、ビジネスや信用の損失を引き起こす可能性があります。
問題分析#
DMARC レポートを受け取った後、私はexample.life
の既存の設定を確認し、次のことがわかりました:
- DNS は Cloudflare にホスティングされており、Namecheap ではありません。
- MX レコードは Namecheap のメール転送サービスを指していますが、私はメール機能を必要としていません;
- SPF レコードは「すべての送信を禁止」となっていますが、以前の転送 SPF 設定も存在しています;
- DMARC レコードが重複しており、p=none と p=reject の 2 つがあり、統一が必要です;
- 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 の保護、加速、簡単な管理機能を十分に活用。
この実際の操作を記録し、同様の問題がある方にとって、これらの経験が役立つことを期待しています。