設定 - リモート環境
概要
デバイス認証・証明書ベースの認証設定
証明書ベースの認証は、デバイスに固有の電子証明書を発行して、その証明書を持つデバイスのみがVPN接続できるようにする仕組みである。
この方法は、物理的なデバイスを識別する強力な手段となる。
前提条件
設定を開始する前に、以下に示す環境が整っていることを確認する。
証明書の発行には認証局が必要となるため、社内にPKI (公開鍵基盤) がない場合は構築から始める必要がある。
- Windows Server (Active Directory Certificate Services用)
- VPN機器が証明書認証に対応していること。(FortiGate、Cisco ASA、Palo Alto等)
- 管理者権限を持つアカウント
手順1 : 認証局 (CA) の構築
証明書を発行するための認証局を構築する。
既に社内に認証局がある場合は、この手順をスキップすることができる。
まず、Windows Serverに認証局の役割をインストールする。
- サーバーマネージャーを開き、[役割と機能の追加] - [Active Directory Certificate Services]を選択する。
- インストールウィザードでは、[証明機関] と [証明機関Web登録] を選択する。
- 構成ウィザードでは、エンタープライズCAを選択して、ルートCAとして設定する。
CA名は組織名を含む識別しやすい名前を付けること。
手順2 : クライアント認証用証明書テンプレートの作成
VPN接続用の証明書を発行するためのテンプレートを準備する。
この証明書テンプレートは、どのような用途や有効期限を持つ証明書を発行するかを定義するものである。
- 証明機関の管理コンソールを開いて、[証明書テンプレート]を右クリック - [管理]を選択する。
- 既存の[Workstation Authentication]テンプレートを右クリック - [テンプレートの複製]を選択する。
- 新しいテンプレートには、"VPN Client Certificate"等の分かりやすい名前を付ける。
- [セキュリティ]タブで、証明書を発行する対象ユーザ または コンピューターグループに[登録]権限を付与する。
- [サブジェクト名]タブで、[Active Directoryの情報から構築する]を選択して、サブジェクト名の形式は[共通名]を選択する。
- [拡張機能]タブで、[アプリケーションポリシー]に[クライアント認証]が含まれていることを確認する。
- テンプレートの設定が完了した後、証明機関の管理コンソールに戻り、[証明書テンプレート]を右クリック - [新規作成] - [発行する証明書テンプレート]から、先ほど作成したテンプレートを選択して追加する。
手順3 : 会社PCへの証明書インストール
リモート元PCで証明書を取得してインストールする。
この証明書がデバイスの身分証明書となる。
- リモート元PCから certmgr.msc を実行して証明書マネージャーを開く。
- [個人]フォルダを右クリック - [すべてのタスク] - [新しい証明書の要求]を選択する。
- Active Directory登録ポリシーを選択して、前の手順で作成した[VPN Client Certificate]テンプレートにチェックを入力して登録する。
- 証明書が正常にインストールされた後、[個人[ - [証明書]フォルダ内に新しい証明書が表示される。
証明書を確認する場合は、証明書をダブルクリックして詳細を開き、[拡張キー使用法]に[クライアント認証]が含まれていることを確認する。
手順4 : VPN機器での証明書認証設定
VPN機器側で証明書による認証を要求するように設定する。
以下の例では、FortiGateを使用しているが、他のVPN機器でも基本的な考え方は同様となる。
- FortiGate管理画面にログインして、[System] - [Certificates] - [Import] - [CA Certificate]を選択して、社内認証局のルート証明書をインポートする。
- 次に、[VPN] - [SSL-VPN Settings] または [IPsec] 設定画面に移動して、認証方式として[Certificate]を選択する。
- [Peer Options] または [Authentication] セクションで、インポートしたCA証明書を[Peer CA]として指定する。
これにより、その認証局が発行した証明書を持つクライアントのみが接続できるようになる。 - 更にセキュリティを高める場合は、[Require certificate subject match]を有効にして、特定のサブジェクト名パターンのみを許可することもできる。
手順5 : VPNクライアントソフトウェアの設定
リモート元PCのVPNクライアントソフトウェアで証明書を使用するように設定する。
- VPNクライアントの設定画面を開いて、認証方式を[Certificate] または [Two-factor authentication (Certificate + Password)]に変更する。
- 証明書の選択画面が表示されたら、手順3でインストールした証明書を選択する。
- 証明書と併せて、ユーザ名およびパスワードによる認証も求める設定にすると、より高いセキュリティレベルを実現することができる。
- 設定完了後、接続テストを行い、証明書が無いPCからは接続できないことを確認する。
デバイス登録・MDM (モバイルデバイス管理) 設定
Microsoft Intuneを使用したデバイス管理は、デバイスを組織のクラウド管理システムに登録して、セキュリティポリシーを適用する方法である。
これにより、管理されたデバイスのみがリソースにアクセスできるようになる。
前提条件
Intuneの利用には以下に示すライセンスとサービスが必要となる。
- Microsoft 365 Business Premium、Enterprise Mobility + Security E3/E5 または Intune単体ライセンス
- Azure AD Premium P1以上 (条件付きアクセスを使用する場合)
- グローバル管理者またはIntune管理者の権限
手順1 : Microsoft Intune管理センターの初期設定
Intuneの管理ポータルにアクセスして基本的な設定を行う。
https://endpoint.microsoft.com/にアクセスして、グローバル管理者アカウントでサインインする。
- [Tenant administration] - [Tenant status]で、Intune MDM権限が有効になっていることを確認する。
- もし有効になっていない場合は、[Devices] - [Enroll devices] - [MDM authority]から[Intune]を選択して有効化する。
手順2 : リモート元PCのIntune登録
リモート元PCをIntuneに登録する。
この登録により、デバイスが組織の管理下に置かれる。
- Windows 10 / 11のリモート元PCから、[設定] - [アカウント] - [職場または学校にアクセスする]を開いて、[接続]ボタンを押下する。
- 社内のメールアドレスを入力すると、Azure ADへのサインイン画面が表示されるので、会社アカウントでサインインする。
- 多要素認証が設定されている場合は、MS Authenticatorでの承認も求められる。
登録が完了すると、[職場または学校にアクセスする]画面に組織名が表示され、[管理対象]と表示される。
この時、デバイスはIntuneに登録されて、管理ポリシーの適用対象となる。
手順3 : デバイスコンプライアンスポリシーの作成
リモート元PCが満たすべきセキュリティ要件を定義するコンプライアンスポリシーを作成する。
このポリシーに準拠していないデバイスは、後で設定する条件付きアクセスによってブロックされる。
Intune管理センターから、[Devices] - [Compliance policies] - [Create policy]を選択して、プラットフォームとして[Windows 10 and later]を選択する。
ポリシー名は、任意の名前を付ける。
[Device Health]セクションでは、BitLockerの有効化、セキュアブートの要求等、基本的なセキュリティ要件を設定する。
[Device Properties]では、最小OSバージョンを指定できる。
[System Security]では、ファイアウォールの有効化、ウイルス対策の有効化、パスワードの複雑さ等を要求できる。
[Actions for noncompliance]では、ポリシーに準拠していないデバイスに対するアクションを設定する。
即座に非準拠としてマークするか、猶予期間を設けるかを選択できる。
[Assignments]タブで、このポリシーを適用するユーザグループまたはデバイスグループを指定する。
全社員に適用する場合は[All users]を選択する。
手順4 : 会社PCでのコンプライアンス状態確認
作成したポリシーがリモート元PCに適用され、準拠状態になっているか確認する。
- リモート元PCから、[設定] - [アカウント] - [職場または学校にアクセスする] - [組織アカウントを選択] - [情報]ボタンを押下する。
- [デバイスの同期状態]が表示され、最終同期時刻とコンプライアンス状態を確認できる。
- [同期]ボタンを押下して、最新のポリシーを取得する。
Intune管理センターからも確認することが可能である。
- [Devices] - [All devices]からリモート元PCを検索して、[Compliance status]列が[Compliant]になっていることを確認する。
- 非準拠の場合は、デバイスをクリックして詳細を確認し、どのポリシー要件が満たされていないかを特定して修正する。
Azure AD条件付きアクセスの設定
Azure AD条件付きアクセスは、誰が、どのデバイスから、どのアプリケーションにアクセスできるかを制御する強力な機能である。
準拠デバイスのみにアクセスを制限することにより、管理されていないリモート元PCからのアクセスをブロックできる。
前提条件
- Azure AD Premium P1以上のライセンス
- Microsoft Intuneでデバイスが登録・管理されていること
- グローバル管理者または条件付きアクセス管理者の権限
手順1 : 条件付きアクセスポリシーの作成
https://portal.azure.com/にアクセスして、[Azure Active Directory] - [Security] - [Conditional Access] - [New policy]を選択する。
ポリシー名は、目的が明確に分かる名前を付けること。
- [Assignments]セクションで、対象ユーザを選択する。
- [Users] - [Include]から[All users]を選択する、または、特定のグループを指定する。
ただし、管理者アカウントをロックアウトしないように、[Exclude]で緊急アクセス用の管理者アカウントを除外しておくことを推奨する。
手順2 : 保護対象リソースの指定
どのリソースへのアクセスを制限するかを指定する。
[Cloud apps or actions] - [Include]から、保護したいアプリケーションを選択する。
VPN経由でアクセスする社内システムがAzure ADと統合されている場合は、該当するアプリケーションを選択する。
もし、VPNクライアント自体がAzure ADと統合されている場合は、そのVPNアプリを選択する。
Microsoft 365全体を保護する場合は、[Office 365]を選択できる。
より広範囲に適用する場合は[All cloud apps]を選択することもできるが、この場合は慎重にテストしてから本番環境に適用すること。
手順3 : デバイス条件の設定
アクセスを許可するデバイスの条件を定義する。
- [Conditions] - [Device platforms]から、Windows、MacOS、Linux、iOS、Android等、会社で使用するデバイスのプラットフォームを選択する。
例えば、リモート元PCがWindowsの場合は、[Windows]を選択する。
ただし、プラットフォームだけではリモート元PC以外のWindowsデバイスも含まれてしまうため、これだけでは不十分である。
そのため、[Grant]セクションで準拠デバイスを要求することにより、管理されたデバイスのみに制限する。
手順4 : アクセス制御の設定
どのような条件でアクセスを許可するかを設定する。
- [Access controls] - [Grant] - [Grant access]を選択して、以下に示すオプションにチェックを入力する。
- [Require device to be marked as compliant]にチェックを入力する。
これにより、Intuneで設定したコンプライアンスポリシーに準拠しているデバイスのみがアクセスできるようになる。 - さらに、[Require hybrid Azure AD joined device] または [Require Azure AD joined device] にもチェックを入力することにより、組織のAzure ADに参加しているデバイスのみに制限できる。
複数の要件を選択した場合、[Require all the selected controls]を選択すると、全ての条件を満たす必要がある。
[Require one of the selected controls]を選択する場合は、いずれかの条件を満たせばアクセスできる。
また、セキュリティを高めるには[Require all]を選択する。
多要素認証も併せて要求する場合は、[Require multifactor authentication]にもチェックを入力する。
これにより、準拠デバイスからのアクセスであっても、MS Authenticator等による追加認証が求められる。
手順5 : ポリシーの有効化とテスト
設定が完了したら、まず、テストモードで動作を確認する。
- [Enable policy] - [Report-only]を選択して保存する。
これにより、実際にブロックはされないが、ポリシーが適用された場合の影響をレポートで確認することができる。 - 数時間から1日程度、[Azure AD] - [Sign-ins]からサインインログを確認して、意図したとおりに動作しているか検証する。
- 問題がなければ、ポリシーを編集して[Enable policy]を[On]に変更する。
ただし、1度に全ユーザに適用するのではなく、まず少数のテストユーザグループに適用して、問題が発生しないことを確認してから徐々に展開範囲を広げることを推奨する。
手順6 : 動作確認
リモート元PCから接続を試みて、正しくブロックされることを確認する。
リモート元PCからは通常通りVPN接続できることを確認する。
そして、リモート元PC以外から同じユーザアカウントでサインインしようとすると、"デバイスがコンプライアンス要件を満たしていません"というメッセージが表示されてアクセスが拒否されることを確認する。
もし、リモート元PC以外からアクセスできてしまう場合は、以下に示す項目を確認する。
- Intuneに登録されていないか
- コンプライアンスポリシーの設定に問題がないか
- 条件付きアクセスポリシーが正しく適用されているか
統合運用のベストプラクティス
これら3つの方法を組み合わせることにより、強固なセキュリティを実現することができる。
証明書ベース認証でデバイスの物理的な識別を行い、Intuneでデバイスの健全性を継続的に監視して、Azure AD条件付きアクセスで包括的なアクセス制御を実現するという多層防御の考え方である。
導入時は、証明書ベース認証 または Intune + 条件付きアクセスのいずれかから始めて、安定稼働を確認してから他の方法を追加することを推奨する。
全てを同時に導入すると、トラブル発生時の原因特定が困難になるためである。
また、定期的に監査ログを確認し、不正なアクセス試行や新しいデバイスからのアクセス要求が無いかどうかを確認することも重要である。