SaaS

mxHERO環境でDKIMとDMARCを利用する

はじめに

こんにちわ、セキュリティチームのむろです。

今回はmxHEROのDKIMやDMARCについてのお話です。

この記事では具体的なDKIMやDMARCがどんな仕組みか、DNSレコードの設定方法は触れませんが、mxHERO環境でのDKIMやDMARCを設定する際の流れや注意点をご紹介します。

最初にまとめ

  • mxHEROを構成する環境ではmxHEROと元のメールシステムの両方のDKIM設定が必要
  • DMARCはmxHERO向けの特別な設定は必要無し
  • 確認テスト時は2種類のテストメール、メール受信環境はmxHEROが未構成の環境を利用する

DKIMの前にSPFの設定は?

以下のブログ内の手順で示しているように最初にmxHERO用のSPFは設定済みのはずです。

設定してなかった!という方は自社メールドメインのDNSへ設定しましょう。

mxHEROのDKIMを設定する方法

この記事を見られてる方はすでにお気づきかもしれませんが、mxHEROの管理コンソール内にはDKIMを有効化するような設定メニューは現時点ではありません。

機能追加により、mxHEROの管理コンソールからDKIM有効化が可能となりました!

なお、過去に申請ベースでmxHEROのDKIMを有効化していた場合は設置値が移行されているので対応は不要です。

設定作業の前提

  • 対象ドメインのDNSレコードが編集可能なこと
  • 新ダッシュボード(新プラットフォーム)mxHERO環境であること
    • 旧ダッシュボード環境の場合は従来通り、申請が必要となりますので購入元のサポート窓口にお問い合わせください。

設定手順

  • mxHERO管理コンソールにログインし、「組織とドメイン」を開き、「DKIM」タブから「Setup DKIM」を選択します
  • 対象ドメインを選択し、「Continue」を選択します
    • mxHEROに設定している管理ドメイン内からの選択となります。そのため、mxHEROに複数ドメインを設定していない場合は選択肢は1つのみになります。
  • DKIMのセレクター(設定対象のサブドメイン)とDKIM向けのDNSレコードが発行されるます
  • 対象ドメインのDNSへ前述のDKIM用レコードをTXTレコードとして設定します。
    • 例)ドメインが「example.com」の場合
      • 「mxhero._domainkey.example.com」にTXTレコードで「”v=DKIM1; k=rsa; p=MIGfXXX値はダミーですXXXAB”」として設定する
    • DNSレコードの設定方法は利用されているプラットフォームによって異なるため、割愛させていただきます
    • はじめは設定ミスに備えて、TTLは60〜300などの短めの値にしておくと良いでしょう
  • DNSが反映されたらmxHEROの管理コンソールに戻り「Verify」を選択し、Enable状態になったことを確認します
  • 後述の「注意:設定後のテスト時に気をつけること」に記載のように添付ファイル有り、無しの2パターンでテストし、受信メール側でDKIMがPASSしているか確認します
  • テストメールでDKIMのPASSを確認できたら作業は完了となります
    • 作業中にDNSレコードのTTLを短めに設定していた場合は自社内のルールに沿って、TTLを修正してください

Vefifyが失敗した場合

  • 以下のように「Not Vefiied」になります
  • 以下のような原因が考えられます、nslookupやdigコマンドなどで再確認してみましょう
    • DNS上でまだレコードが反映し切っていない
    • 設定したレコードが誤っている
  • DNSが正しい状態になったら、再度Vefifyを選択します

留意点

  • mxHEROのDKIM設定は削除することが可能ですが、「Remove」後に再作成するとDKIMレコードの値は変更になります
  • もしも、誤ってDKIM設定を削除してしまった場合はDNS側も再設定が必要となるので注意してください

注意:メールサービス側のDKIMも有効化・設定が必要

mxHEROを利用するメールサービスであるGoogle WorkspaceのGmail、Microsoft365のExchange Online側でもDKIMの設定の有効およびDNSレコードの設定も行ってください。

メールサービス側のDKIMが有効であってもmxHEROへの動作に悪影響を及ぼすことはありません。

メールサービス側とmxHEROはDNS上ではDKIMのセレクタが異なるので設定はそれぞれ独立してDKIMを有効化・設定する形となります。

メールサービス側の具体的な設定方法はこの記事では触れませんが公式ドキュメントをご参考ください。

片方しか設定しない場合は以下の挙動となりますのでmxHERO、メールサービス側の両方でDKIMの設定を行ってください。

NGパターン1)メールサービスのみDKIMを設定、mxHEROのDKIMは未設定

以下の結果になります。

  • 添付ファイル無しのメールはDKIM=pass
  • 添付ファイル有りのメールはDKIM=fail (body hash did not verify)

添付ファイルの有無によってDKIMの結果が変わるのは不思議に思えますが、DKIMの検証に利用されるハッシュ値の計算にはメールのヘッダ、ボディ(件名やメール本文)も利用されているからです。

mxHEROで添付ファイル付きのメールが共有リンクへ置き換わった際には共有リンクが挿入されて本文が書き変わりますのでメールサービス側のDKIMのみではハッシュ値が一致しなくなるため、前述の状態になります。

厳密な表現だとmxHEROによってメールのヘッダ、ボディ(件名やメール本文)の書き換えが発生するケースが当てはまります。

現時点では添付ファイルの共有リンク置き換えするルールのみが該当しますが、今後の機能拡充で該当する処理が追加となる可能性はあります。

NGパターン2)mxHEROのみDKIMを設定、メールサービスのDKIMは未設定

以下の結果になります。

  • DKIMのアライメント不一致が発生する

DMARCレポート上でDKIMのアライメント不一致を多数検出します。

実はお客様の環境での事例となるため、細かな原因など検証はできていないのですがmxHEROのみDKIM設定していた状態の場合はDKIMのアライメント不一致をDMARCレポートで多数検出する事象が確認できています。

メールサービス側もDKIMを追加設定したところ、DKIMのアライメント不一致の検出する事象が収まったことを確認しています。

前述のようにmxHERO、メールサービス側の両方でDKIMの設定を行ってもデメリットはないので両方設定しましょう。

DMARCはmxHERO向けに特別な設定は不要

DMARCに関してはDKIMと異なりmxHERO特有の設定は必要ありません。

DNS上でDMARCのレコードを設定してください。

ただし、DMARCの仕組みとしてSPFやDKIMの結果が間接的に影響を与えることになる点は認識しておきましょう。

注意:設定後のテスト時に気をつけること

前述のNGパターン1のようのケースもあるため、以下の2種類のテストメールで確認します。

  • 添付ファイル無しのメール
  • 添付ファイル有りのメール

例えば、Gmailであればメールのソースを表示をするとヘッダーを直接みなくても簡易的に結果が確認できます。

なお、SPF、DKIM、DMARCの結果はメール受信側で確認が必要となりますが、

  • 結果を確認するための受信メール側はmxHEROが構成されていない環境を利用してください

理由はmxHEROのために設定しているメールサービス側の設定が影響を与えるケースがあるためです。

興味があれば、逆に本番環境と検証環境同士でmxHEROを構成している同士のメール環境の場合はどうなるかも確認してみるのも良いかと思います。

SPF、DKIM、DMARCに限らず、メールを受信する側に影響が与える設定の場合はテストケースとして通常の運用で想定される「mxHEROを設定していないメール環境」に対してテストメールを送信して受信側の状態を確認することをお奨めします。

具体例としてはGoogle Workspace内の受信ゲートウェイに登録されたIPアドレスからのメールはSPFやDMARCはチェックされない仕様となります。

[受信ゲートウェイ] の設定で、受信メールのゲートウェイ IP アドレスまたは IP アドレスの範囲を指定します。この設定で指定した IP アドレスから受信したメールに対しては、Gmail による SPF または DMARC のチェックが行われません。

おわりに

少し前にGoogleでメール送信者のガイドラインが発表された影響もあってか、年末から年始にかけてDKIMやDMARCの問い合わせが多くいただきました。その中で得られた情報も含めて小ネタとしてまとめてみました。

はじめに設定すると運用後はなかなか意識しないDKIMやDMARC設定ですが、mxHERO環境でこれから設定しようとする方のご参考になると嬉しいです!

むろ

おいしいおつまみとお酒が好きです。
最近ハマっているのは芋焼酎のソーダ割り。

履き物の基本は下駄の人です。
好きな漫画はワールドトリガーです。