CAポリシーを使用してMicrosoft 365で特定のIPアドレスへのSMTP認証アクセスを制限する方法
Microsoft 365 で特定の IP アドレスから特定のメールボックスのみに SMTP 認証を安全に動作させるのは、少し面倒な場合があります。特に、このシステムは柔軟性を重視して設計されていますが、必ずしも分かりやすいとは限らないためです。私と同じように、メールが送信されない、クライアントが認証されていないなどのエラーが発生する、あるいは、セキュリティを強化せずにアクセスを制限する方法が分からないといった問題に遭遇したことがあるかもしれません。ここでの目標は、他のセキュリティ上の抜け穴を残さずに、特定のメールボックスで信頼できる IP アドレスからのみ SMTP 認証を許可することです。コツは、いくつかの設定を組み合わせることです。メールボックスで SMTP を有効にし、IP アドレスで名前付きロケーションを作成し、条件付きアクセス ポリシーでアクセスを制限します。ここでは、私が試行錯誤を繰り返しながら試した細かい手順を紹介します。大抵はこれでうまくいきます。
Microsoft 365でSMTP認証の制限を単一のIPアドレスとメールボックスに限定する方法
前提条件:
- Microsoft 365およびEntra管理センターにおける管理者権限
- メール送信を行うデバイス/アプリの正確な静的パブリックIPアドレス(IPアドレス範囲を指定するために必要になります)
- 特定のメールボックスに対してSMTP認証を有効にする必要があります。
- そのメールボックスのユーザー名とパスワード(多要素認証が関係する場合は、アプリパスワードが望ましい)
メールボックスのSMTP認証を有効にする
これは非常に簡単なことですが、これを省略すると他のすべてが機能しなくなります。設定によっては、他のすべてが正しく見えても、この設定が有効になっていないとSMTPが送信されない場合があります。
- Microsoft 365 管理センターにアクセスしてください。[ユーザー] > [アクティブなユーザー] の順に選択し、対象のユーザーまたはメールボックスをクリックしてください。
- 「メール」タブに切り替えて、「メールアプリの管理」を選択します。
- 「認証済みSMTP」のチェックボックスをオンにして、「保存」をクリックします。この手順を忘れてしまったり、設定によっては変更が反映されるまでに時間がかかる場合があります。メールボックスを再起動したり、変更が反映されるまで数分待つ必要がある場合もあります。
静的IPアドレスを使用して名前付きロケーションを設定する
ここからが重要なポイントです。場所に基づいてアクセスを制限できるように、信頼できる特定のIPアドレスを定義する必要があります。複雑に聞こえるかもしれませんが、これは単に自分のIPアドレスの例外リストを作成するだけです。
- Entra管理センターにアクセスし、[条件付きアクセス] > [名前付きロケーション]に移動します。
- 「+ IP範囲の場所」をクリックします。「SMTP許可IPアドレス」など、分かりやすい名前を付けてください。
- パブリックIPアドレスを「IPアドレス/32」の形式で入力してください。たとえば、IPアドレスが165.74.201.110の場合は、 と入力します
165.74.201.110 /32。この/32マスクにより、特定のIPアドレスのみが使用されることが保証されます。 - 「追加」をクリックしてから「作成」をクリックしてください。これで、信頼できるIPアドレスを直接指す名前付きの場所が作成されました。
SMTP認証を自分のIPアドレスに制限するための条件付きアクセスポリシーを作成する
これが核心部分です。Microsoft 365に対し、特定のIPアドレスから接続するユーザーに対してのみSMTP認証を許可するように指示します。ある設定ではすぐにうまくいきましたが、別の設定では数分、あるいはログアウト/ログインを繰り返す必要がありました。その点にご注意ください。
- Entra管理センターに戻り、[ポリシー] > [新しいポリシー]に進みます。
- 「SMTP認証制限」のような名前を付けてください。
- 「*含める*」で「ユーザーとグループを選択」を選択し、以前に有効にしたユーザー/メールボックスを選択します。
- 「リソース」では、「Office 365 Exchange Online」を選択してください。
- 「条件」で「場所」を設定します。
- 「設定」を「はい」に設定してください。
- 「含める」で「任意の場所」を選択します。
- 「除外」欄に、名前付きの場所(例:「SMTP 許可 IP アドレス」)を追加して、そこからの接続がブロックされないようにしてください。
- クライアントアプリの場合は、「構成」が「はい」になっていることを確認し、次に「その他のクライアント」のみを含めるように設定してください。これにより、古いメールプロトコルも捕捉できます。これは必要な場合があります。
- 「許可」で「アクセスをブロック」を選択してください。これにより、あなたのIPアドレス以外からのすべてのアクセス試行が遮断されます。
メールボックスのアプリパスワードを設定する
SMTP認証では通常アプリパスワードが必要となるため(特に多要素認証が有効になっている場合)、そのパスワードを生成する必要があります。面倒な作業ですが、必要なことです。
- Microsoftアカウントのセキュリティページをご覧ください。
- SMTPを有効にしたメールボックスの認証情報を使用してサインインしてください。
- セキュリティ情報に移動し、「サインイン方法を追加」を選択して、「アプリパスワード」を選択します。パスワードを生成し、安全な場所に保存してください。
クライアントまたはデバイスを設定する
設定を入力する時間です。ポートや暗号化モードが一致していないとトラブルの原因となるため、すべてが一致していることを確認してください。
- サーバー名: smtp.office365.com
- ポート: 587
- 暗号化: STARTTLSまたはTLS
- 認証:はい
- ユーザー名:あなたのメールアドレス全体
- パスワード:生成したアプリパスワード
試してみる
そのデバイスまたはアプリからテストメールを送信してみてください。送信が成功すればOKです。失敗した場合は、Entraのサインインログを確認してください。エラー「530 5.7.57」は、手順を飛ばしてしまったか、ポリシーが反映されるまで少し待つ必要があることを示している場合があります。必要に応じて設定を変更したり、再度ログインしたりしてみてください。
まとめ
つまり、SMTP認証を単一のIPアドレスとメールボックスに限定するには、メールボックスでSMTPを有効にし、名前付きロケーションで信頼できるIPアドレスを定義し、そのIPアドレスからのSMTPアクセスのみをそのユーザーに対して制限する条件付きアクセスポリシーを作成する必要があります。少々手間はかかりますが、一度設定が完了すれば、SMTP認証に依存する従来のクライアントやデバイスを完全にブロックすることなく、優れた防御層を構築できます。
まとめ
これで少しは状況が明確になったでしょうか。というのも、マイクロソフトは実に多くのオプションを様々なポータルに詰め込むのが好きだからです。一度設定してしまえば、あとはほとんど気にしなくて済みます。重要なのは忍耐です。これらのポリシーは必ずしもすぐに反映されるわけではありません。しかし、うまくいけば、メールシステムは信頼できるIPアドレスとメールボックスからのSMTPのみで厳重に保護されます。私の場合はうまくいきました。あなたにもうまくいくことを願っています。
チェックリスト
- 正しいメールボックスでSMTP認証を有効にしました
- 静的IPアドレスを使用して名前付きロケーションを作成しました
- そのIPアドレスとユーザーへのSMTPアクセスを制限する条件付きアクセスポリシーを作成しました。
- メールボックス用のアプリパスワードを生成しました(MFAが有効になっている場合)。
- クライアント/デバイスで、サーバー、ポート、暗号化方式、ユーザー名、アプリパスワードを含むSMTP設定を構成してください。
- 送信テストを実施しました。必要に応じてサインインログを確認しました。