社畜の所業

社畜の所業

Microsoft365の機能について解説をしていきたいと思います。このブログの情報をご活用いただければ幸いです。たまに他の情報も取り入れていきたいと思います。

※このサイトはPR記事を含みます。

【Microsoft365参考書】SPF/DKIM/DMARC の登録はしたほうがいいのか?登録しておかないとメールの送信ができなくなるのか?

DKIMDMARC

 

最近、GoogleでもDKIMの認証が強化された情報がありますが、現時点では、SPF/DKIM/DMARC の登録が必須であるというわけではなく、登録していなくてもメールの送信は可能です。

 

 

なお、2023 年9 月下旬に [EX675941] でアドバイザリとして、Exchange Online から送信されている認証されていないメッセージや Bulk メッセージに対して Gmail などの他のサービス プロバイダーからの NDR 応答が増えたことを受けて、正しくメッセージが宛先に届くためのガイダンスを見直して、SPF / DKIM / DMARC を登録するよう発表されていました。

 

今後、SPF / DKIM / DMARCの認証を強化する受信側サーバーが増えてくると登録していない場合は、メールを送信した際にスパムと判定され、正常に受信できない可能性が高くなります。

なお、DKIM 署名をスタンプすることで問題が発生した事例は確認されていないので、登録しておいても特に支障はないと思います。

メール送信時に正常に相手先で受信するためにも登録しておくことをお勧めします。

 

以下にそれぞれの概要や登録方法についてご紹介したいと思います。

 

 SPF 認証について

メールの送信元が送信者の意図したサーバーであることを証明し、送信元メールアドレスのなりすましを防ぐことを目的とした機能です。

DNS ホスティングプロバイダー (ドメイン レジストラー) にて、該当のドメインの TXT レコードに SPF の TXT レコードを登録することで設定が可能です。

 

TXTレコードに登録する値

v=spf1 include:spf.protection.outlook.com -all

 

 

learn.microsoft.com

 

 

 

DKIM 機能の有効化手順

秘密鍵によって生成した署名情報を送信メールのヘッダーに記述し、メール受信時に DNS サーバー上に公開されている公開鍵によって署名を照合し、詐称送信されたメールであるか判定を行う機能です。

DKIM 認証のメリットとして、送信元 IP アドレスを利用した SPF 認証と比較し、メールの転送や別のサーバーを中継して送信した場合でも、影響を受けずに判定をおこなうことができます。

DKIM は送信するサーバーの署名を付与して送信する機能のため、有効化作業によるメールの送信自体に影響はありません。

 

DKIM 認証機能の利用には、独自ドメインを購入したドメインレジストラへの CNAME レコードの登録と、Exchange Online 側での DKIM 認証機能の有効化が必要です。

なお、メールの送受信をする際にユーザー側で必要な設定や操作はなく、送受信時の動作などにも影響はありません。

 

onmicrosoft.com ドメインDKIM 機能は既定で有効ですが、独自ドメインは個別に有効化する必要があります。

Microsoft Defender (https://security.microsoft.com) の [ポリシーとルール] > [脅威ポリシー] > [メール認証の設定] > [dkim] にて、対象ドメインの [状態] が [このドメインDKIM キーが保存されていません] と表示されている場合は、DKIM のポリシーが構成されていない状況となります。

また、[このドメインDKIM 署名をしません] と表示されている場合は、DKIM キーが有効化されていない状況を表します。

 

learn.microsoft.com

 

1. CNAME レコードを確認するコマンドレット 

初めに、テナントの DKIM の CNAME レコードを確認し、独自ドメインレジストラーへ登録します。 

 

 

以下の記事を参考にExchange Online に接続してから実行してください。

 

it-bibouroku.hateblo.jp

 

 

<構文> 

Get-DkimSigningconfig <ドメイン> | select selector1CNAME,selector2CNAME | fl 

 

<実行例>  

Get-DkimSigningconfig contoso.com | select selector1CNAME,selector2CNAME | fl 

 

<出力例> 

Selector1CNAME : selector1-contoso-com._domainkey.contoso.onmicrosoft.com 

Selector2CNAME : selector2-contoso-com._domainkey.contoso.onmicrosoft.com 

 

※ [contoso-com]、[contoso.onmicrosoft.com] の部分はドメイン名ごとに自動生成された文字列となり、本来ドメイン名には含まれない文字列が付与される場合もあります。  

 

 

 2. DNS に CNAME レコードを登録します。 

Selector1CNAME 

ホスト名 : selector1._domainkey  

値 : selector1-contoso-com._domainkey.contoso.onmicrosoft.com 

TTL : 3600 

 

Selector2CNAME 

ホスト名 : selector2._domainkey 

値 : selector2-contoso-com._domainkey.contoso.onmicrosoft.com 

TTL : 3600 

 

 

上記の値を該当のドメインDNS ホスティングプロバイダー (ドメイン レジストラー) に登録後、反映するまでは DKIM を有効にすることができませ。 

 

3. DKIM の有効化 (GUI

  1. 管理者権限を付与されたアカウントで Microsoft Defender (https://security.microsoft.com) にアクセスします。
  2. 左側のメニューより [ポリシーとルール]、中央メニューより [脅威ポリシー] > [メール認証の設定] > [DKIM] をクリックします。
  3. 有効化したい承認済みドメインを一覧からクリックします。
  4. [このドメインのメッセージに DKIM 署名を追加します] のトグルボタンを有効にします。

 

画面が変わらない場合は画面リロードなどで反映することがありますのでお試しください。 

ここまでの手順で、対象ドメインの [状態] が [このドメインDKIM 署名をします。] となれば完了です。 

[このドメインDKIM キーが保存されていません] または [このドメインDKIM 署名をしません] と表示されている場合はコマンドレットでの CNAME レコードの生成、あるいは有効化が必要となるため、次項 4 のコマンドレットを実行ください。 

 

4. DKIM の有効化 (Windows PowerShell コマンドレット) 

Microsoft 365 Defender で対象ドメインDKIM の 状態が [このドメインDKIM キーが保存されていません] の場合は 4-1. を実施します。 

状態が [このドメインDKIM 署名をしません] の場合は 4-2. を実施してください。

※ Exchange Online に接続してから実行してください。

 

4-1. 対象ドメインDKIM を構成します。 

<構文> 

New-DkimSigningConfig -DomainName "承認済みドメイン" -Enabled $true

 

<実行例> 

New-DkimSigningConfig -DomainName "contoso.com" -Enabled $true 

 

なお、レコード反映後に [警告: 構成は作成されますが、CNAME レコードが公開されていないため、有効にできません。CNAME レコードを公開したら、Set-DkimSigningConfig を使用してこのポリシーを有効にしてください。] のメッセージが表示された場合には、時間をおいてから下記のコマンドレットをお試しください。 

 

4-2. : 対象ドメインに対して、DKIM を有効化します。 

<構文> 

Set-DkimSigningConfig -Identity "有効化する承認済みドメイン" -Enabled $true

 

<実行例> 

Set-DkimSigningConfig -Identity "contoso.com" -Enabled $true

 

 

 

DMARC 機能の有効化手順

送信ドメイン認証技術である SPFDKIM の認証結果を用いて、受信サーバーにてメールの送信者を認証を行い、メッセージの信頼性を確認する機能です。

受信サーバーにて SPF 認証と DKIM 認証の双方に失敗した際に、検疫 (quarantine) や拒否 (reject) など、どのような処理が推奨されるかを送信側がポリシーとして提示することができます。

ただし、上記ポリシーを指定した場合でも、受信サーバーが実際にどのような処理を選択するかは、受信サーバーの設定に依存します。

 

Exchange Online から送信するメールについては、ドメイン レジストラにて該当のドメインの TXT レコードに DMARC 認証用の TXT レコードを登録することで設定が可能です。

なお、DMARC 認証の有効化には、該当独自ドメインに対し事前に SPF レコードの登録と DKIM 認証の有効化が必要となります

 

learn.microsoft.com

 

ドメイン用の DMARC TXT レコードは、次に示す形式で作成します。

 

_dmarc.domain TTL IN TXT "v=DMARC1; pct=100; p=policy

 

各パラメータの意味

  • domain : 保護対象にするドメインです。既定では、このレコードは、ドメインとすべてのサブドメインからのメールを保護します。たとえば、_dmarc.contoso.com を指定すると、DMARC は、このドメインとすべてのサブドメイン (housewares.contoso.com や plumbing.contoso.com など) からのメールを保護します。

 

  • TTL : 常に 1 時間に相当する必要があります。TTL に使用される単位は、ドメインレジストラーに応じて hours (1 時間)、minutes (60 分)、または seconds (3,600 秒) のいずれかになります。

 

  • pct=100 は、このルールがメールの 100% に使用される必要があることを示します。

 

  • policy : DMARC に失敗した場合に受信側サーバーが従う必要のあるポリシーを指定します。ポリシーは、なし (none)、検疫 (quarantine)、または拒否 (reject) に設定できます。

 

DMARC 認証用レコードの記載例

・ポリシーをなし (none) に設定する

_dmarc.contoso.com 3600 IN  TXT  "v=DMARC1; p=none"

 

・ポリシーを検疫 (quarantine) に設定する

_dmarc.contoso.com 3600 IN  TXT  "v=DMARC1; p=quarantine"

 

・ポリシーを拒否 (reject) に設定する

_dmarc.contoso.com  3600 IN  TXT  "v=DMARC1; p=reject"

 

なお、ポリシーを設定していた場合においても、配信されたメッセージの DMARC の処理が失敗した際の動作については、最終的には受信側のサーバーに依存します。

 

 

DKIMとDMARCについては以下の記事でご紹介しておりますので参考としてくださいね。

 

it-bibouroku.hateblo.jp

 

 

it-bibouroku.hateblo.jp