DirectAccessはもう古い!? Windows 10/11の安全なリモートアクセスは“Always on VPN”推奨検証! Microsoft&Windowsセキュリティ(3)

「DirectAccess」は、Windows 7およびWindows Server 2008 R2から利用できる企業ネットワークへの安全なリモートアクセス手段の一つです。しかし、現在のWindows 10とWindows 11では、DirectAccessは非推奨になりました。その代替として、「Always on VPN」が推奨されています。その導入手順を検証してみました。

» 2023年08月09日 05時00分 公開
[山市良テクニカルライター]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「検証! Microsoft&Windowsセキュリティ」のインデックス

検証! Microsoft&Windowsセキュリティ

Windows 10/11のリモートアクセスは「DirectAccess非推奨」「Always on VPN推奨」に

 「DirectAccess」は、デバイスのネットワーク状態に応じてIPv4/IPv6移行テクノロジー(IPv6ネイティブ、6to4、Teredoなど)を利用して、IPsec(Security Architecture for Internet Protocol)またはHTTPSトンネルを自動接続し、企業ネットワーク内の企業リソースへの安全なアクセスと、企業ネットワーク側からのクライアントデバイスのリモート管理を可能にするテクノロジーです。DirectAccessは、「Windows Server 2008 R2」と「Windows 7 Enterprise/Ultimate」で初めて導入されました。

 しかし、以下の公式ドキュメントに記載されているように、DirectAccessが大きく依存するIPv4/v6移行テクノロジーの多くは「Windows 10」で段階的に“既定で無効”にされており、利用は推奨されなくなっています。

 また、以下の公式ドキュメントでは、“Windows 10以降の場合は、Always On VPNを使って接続することをお勧めします。DirectAccessは、Windows 10より前のクライアントにのみ使う必要があります。”と書いてあります。Windows 10/11は現状、DirectAccessクライアントとして機能するようですが、将来的には削除される可能性があるため、もし導入済みであるとしたら、「Always On VPN」や他のソリューションに移行を進める必要があります。

Always on VPNには、DirectAccessのような簡単セットアップウィザードの提供なし

 DirectAccessは複雑な機能ですが、ネットワークトポロジーの選択から始まるセットアップウィザードを使用して、比較的簡単に導入できます。「Windows Server 2012」以降は、証明書ベースの認証に使用するエンタープライズPKI(公開キー基盤)の導入や、2つの連続したパブリックなIPv4アドレス要件がなくなり、NAT(ネットワークアドレス変換)デバイスの背後への設置も可能になったため、小規模な環境でも簡単にセットアップできました。

画面1 画面1 DirectAccessはIPv4/v6移行テクノロジーを利用した複雑な機能ながら、セットアップウィザードで簡単に導入できる

 一方、Always on VPNには、DirectAccessのような構成の全体をカバーするセットアップウィザードはありません。「Windows Server 2016」以降で「サーバーの役割」を適切に構成し、VPNプロトコル「IKEv2」を使用したRADIUS認証ベースのVPNサーバ環境を構築して、Windows 10以降のVPNクライアントを適切にセットアップする必要があります(図1)。

図1 図1 Always on VPNのシステム構成。ドメイン参加デバイスは、企業内ネットワークに接続されているときは通常通り企業内リソースにアクセスできるが、社外にあってもAlways on VPN接続のVPNトンネルを介して企業内リソースにアクセスできる

 インフラストラクチャとしては、RADIUSサーバ機能を提供する「ネットワークポリシーサーバー」(画面2)と、VPNサーバ機能を提供する「リモートアクセス」(「RRAS」とも呼ばれます、画面3)の「サーバーの役割」の他、「Active Directoryドメインサービス」のActive Directoryドメインと「Active Directory証明書サービス」のエンタープライズ公開キー基盤(PKI)環境が必要です。

画面2 画面2 ドメインメンバーのWindows Serverの1台に「ネットワークポリシーサーバー(NPS)」の役割を追加し、RADIUSサーバとしてセットアップして、VPNサーバをRADIUSクライアントとして登録する
画面3 画面3 ドメインメンバーのWindows Serverの1台をネットワークの境界に設置し、VPNサーバとしてセットアップして、RADIUSサーバ認証を構成する

 Always on VPNの必要最小限のインフラストラクチャを導入する手順について、ここで細かく説明はしません。その手順は複雑で、証明書テンプレートの設定など細かい構成が必要ですが、以下のチュートリアルから始まる3つのステップに従って操作すれば完了します。

 ただし、日本語のドキュメントやWindowsの日本語UIには翻訳が誤っている部分が幾つかあるため(グループ名やグループ作成先のコンテナの間違い、「設定」アプリでIKEv2「モビリティ」がIKEv2「運動」と日本語化されているなど)、英語のオリジナルドキュメントも参考にしながら、慎重に作業してください。筆者の場合、チュートリアル通りに操作しても、VPNサーバやRADIUSサーバ用の証明書の登録がエラーになりました。このエラーは、証明書テンプレートの「セキュリティ」タブで「Authenticated Users」に「登録」を許可することで回避できました。

Always on VPNクライアントのセットアップとエクスペリエンス

 チュートリアルで説明されているWindowsのVPNクライアント設定は、Windows 10とWindows 11ではUIが異なるため、少し苦労するかもしれません。Windows 11の場合は、「設定」アプリの「ネットワークとインターネット」からVPN接続を作成した後、コントロールパネルの「ネットワーク共有センター」を開いて、作成されたVPN接続のプロパティを開き、認証プロトコルなどを詳細に設定する必要があります(画面4画面5)。

画面4 画面4 「設定」アプリを使用して新しいVPN接続を作成する
画面5 画面5 「ネットワーク共有センター」からVPN接続のプロパティを開いて、Always on VPNの詳細を設定する

 これらの設定は、Active Directoryドメインに参加したデバイスで、企業内ネットワークで行います。このデバイスを社外のパブリックなネットワークに接続し、VPN接続の「接続」をクリックすれば、証明書ベースなので認証や通知のプロンプトが表示されることなく、素早く企業内ネットワークへの接続が確立します(画面6)。

画面6 画面6 パブリックなネットワークでVPN接続の「接続」をクリックし、企業内ネットワークに接続できることを確認する

 Always on VPNといっても、ここまでの設定とエクスペリエンスは、どこをどう見ても「Always on(常にオン)」なVPN接続ではありません。認証を求められることはありませんが、手動での接続であり、「ネットワークとインターネット|VPN」からはワンクリックの操作、タスクバーからは数クリックの操作が必要です。

 実は、Always on VPNのクライアントの設定は、「Microsoft Intune」や「Microsoft Configuration Manager」のVPNプロファイルを使用することで、詳細に構成することができます(画面7)。

画面7 画面7 Microsoft IntuneでAlways on VPNのプロファイルを構成する

 これらのツールを使用してVPNプロファイルを作成すると、ユーザーまたはデバイス(デバイストンネル)の証明書で認証されたアプリやドメイン名、常にオン(Always on)の自動トリガー、条件付きアクセスなどの詳細設定を、ウィザードで比較的簡単に実装することができるのです。

 つまり、Always on VPNとは、Windows ServerのVPNおよびRADIUSサーバをはじめとするインフラストラクチャと、Microsoft IntuneまたはMicrosoft Configuration ManagerのVPNプロファイルとの組み合わせで実現されるのです。または、Always on VPN対応のVPNプロファイルの詳細設定をPowerShellで展開する方法もあります(チュートリアルで説明されています)。

 「Windows 8.1」では「自動トリガーVPN(Auto-triggerd VPN)」が標準機能として組み込まれており、Always on VPNのVPNプロファイルが実現する機能の一部はそれを利用しているものと思われます(画面8)。

画面8 画面8 Windows 8.1以降で利用できる自動トリガーVPNを、Always on VPN用として作成したVPN接続に対して構成

 PowerShellを使用して構成できる自動トリガーVPNを手動で構成すれば、VPNプロファイルで実現できる機能の一部(特定のアプリの起動やネットワークの状態変化による自動接続、既定では存在しない「自動的に接続」オプションの表示)を機能させることができました(画面9)。ただし、公式ドキュメントで説明されている方法ではないため、詳細は省略します。

画面9 画面9 アプリ(mstsc.exe)の起動やネットワークの状態変化で、VPN接続の接続試行を自動的に開始し、すばやく接続が完了した

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP 2008 to 2024(Cloud and Datacenter Management)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。