今回は、Windows Server 2022の標準機能を使用して、L2TP/IPsecを使用したVPNサーバを構築する手順を記事にしました。
期待する目標
本手順で期待する目標は以下の通りです。
- Windows Server 2022でVPNサーバを構築できる
- クライアントからVPN接続できる
前提条件
今回VPNサーバを構築するサーバは以下の通りです。
- CPU : 2vCPU
- MEM : 4GB
- DISK : 60GB
- IP : 192.168.100.177
- Hostname : dev-vpn01
- ドメイン : 参加済み
VPNサーバインストール

[サーバマネージャ]-[管理]より、[役割と機能の追加]を選択します。

[開始する前に]より、[次へ]を選択します。

[インストールの種類]より、[役割ベースまたは機能ベースのインストール]が選択されていることを確認し、[次へ]を選択します。

[サーバの選択]より、[サーバプール]からサーバを選択にチェックが入っていることを確認し、[サーバプール]より、インストールするサーバが選択されていることを確認し、[次へ]を選択します。

[サーバの役割]より、[リモートアクセス]を選択します。

[リモートアクセス]にチェックが入っていることを確認し、[次へ]を選択します。

[機能]では今回機能を追加しないため、何も選択せず[次へ]を選択します。

[リモートアクセス]より、[次へ]を選択します。

[役割サービス]より、[DirectAccessおよびVPN (RAS)]を選択します。

[DirectAccessおよびVPN (RAS)に必要な機能を追加しますか?]より、[管理ツールを含める]にチェックが入っていることを確認し、[機能の追加]を選択します。

[役割サービス]より、[ルーティング]にもチェックを入れます。
[DirectAccessおよびVPN (RAS)]と[ルーティング]の両方にチェックが入っていることを確認し、[次へ]を選択します。

[Webサーバの役割(IIS)]より、[次へ]を選択します。

[役割サービス]より、[次へ]を選択します。

[インストールオプションの確認]より、インストール内容を確認し、[インストール]を選択します。

[インストールの進行状況]より、インストールが正常に完了したら、[閉じる]を選択します。
以上でVPNサーバのインストールは完了です。
VPNサーバのセットアップ
VPNサーバのインストールが完了したら、セットアップを行っていきます。
なお、Windows Server 2022でL2TP/IPsecを使用するには、500/tcp、4500/tcpが必要らしいです。
Windows Server 2022でのL2TPで必要なポート要件については、各自調べてください。

[サーバマネージャ]より、右上のフラグを選択し、[作業の展開ウィザードを表示する]を選択します。

[リモートアクセスの構成]より、[VPNのみを展開します]を選択します。

[ルーティングとリモートアクセス]が表示されていることを確認します。

[ルーティングとリモートアクセス]より、[サーバ]を右クリックし、[ルーティングとリモートアクセスの構成と有効化]を選択します。

[ルーティングとリモートアクセスサーバのセットアップウィザードの開始]より、[次へ]を選択します。

[構成]より、[カスタム構成]を選択し、[次へ]を押下します。

[カスタム構成]より、以下のサービスにチェックを入れ、[次へ]を選択します。
- VPNアクセス
- NAT

[ルーティングとリモートアクセスサーバのセットアップウィザードの完了]より、[完了]を選択します。

[サービスの開始]より、[サービスの開始]を選択します。

[ルーティングとリモートアクセス]より、サーバがオンラインになっていることを確認します。

[ルーティングとリモートアクセス]より、サーバを右クリックし、[プロパティ]を選択します。

[全般]タブより、以下の設定が入っていることを確認します。
- IPv4ルータ : ■
- LANおよびデマンドダイヤルのルーティング : ●
- IPv6ルータ : □(IPv6でのVPNを想定していないため、チェックを外しています。)
- IPv4リモートアクセスサーバ : ■

[セキュリティ]タブより、以下の設定を行います。
- 認証プロバイダー : Windows認証
- アカウンティングプロバイダー : Windowsアカウンティング
- カスタムIPsecポリシーをL2TP/IKEv2接続で許可する : ■
- 事前共有キー : 任意の事前共有キー
事前共有キーについては、共有鍵暗号で暗号化通信を開始する際に必要になるため、必要以外に漏らさないようにしましょう。

[IPv4]タブより、以下の設定を行います。
- IPv4転送を有効にする : ■
- 静的アドレスプールを使う : ●
設定完了後、[追加]を選択します。

[新しいIPv4アドレスの範囲]より、VPNで使用するIPアドレスのレンジを選択します。

[ルーティングとリモートアクセス]-[IPv4]より、[NAT]の設定を行います。

[ルーティングとリモートアクセス]-[IPv4]より、[NAT]を右クリックし、[新しいインターフェース]を選択します。

[Network Address Translation (NAT)の新しいインターフェース]より、[イーサネット]を選択し、[OK]を押下します。

[ネットワークアドレス変換のプロパティ]-[NAT]タブより、以下の設定を行い、[OK]を押下します。
- インターネットに接続されるパブリックインターフェィス : ●
- このインターフェイスでNATを有効にする : ■

[ルーティングとリモートアクセス]-[IPv4]-[NAT]より、NATのインターフェイスが追加されていることを確認します。

最後に、リモートアクセスを許可するユーザのプロパティを選択し、ダイヤルインより[リモートアクセス許可]-[アクセスを許可]を選択しておきます。
ドメイン環境の場合は、ドメインコントローラより、Active Directoryユーザとコンピュータより設定が可能です。
以上でVPNサーバの設定は完了です。
必要に応じて、VPNサーバのセキュリティが強化されたファイアウォールより、500/tpcと4500/tcpの着信を許可しておきます。
クライアント接続
VPNサーバの設定が完了したらクライアントからVPNの設定を行っていきます。
今回は検証環境のため、外部からアクセスは行わず、内部からのVPN接続を行います。
クライアントで接続するOSはWindows10となります。

[Windowsスタートメニュー]より、[設定]-[ネットワークとインターネット]-[VPN]より、[VPN接続追加する]を選択します。

[VPN接続を追加]より、以下の設定を行います。
- VPNプロバイダー : Windows (ビルトイン)
- 接続名 : 任意の接続名
- サーバ名またはアドレス : VPNサーバのアドレス
- VPNの種類 : 事前共有キーを使ったL2TP/IPsec
- 事前共有キー : 事前に設定した事前共有キーを入力
- サインイン情報の種類 : ユーザ名とパスワード
- ユーザ名 : 必要に応じて入力
- パスワード : 必要に応じて入力
- サインイン情報を保存する : ■ (任意)
ユーザ名とパスワードについては、この後にWindowsの資格情報を使用して接続するため、今回は空白にしています。
設定が完了したら、[保存]を選択します。

コントロールパネルより、[ネットワークとインターネット]-[ネットワーク接続]を選択します。
作成したVPN接続を右クリックし、[プロパティ]を選択します。

[プロパティ]-[セキュリティ]タブを開きます。

必要に応じて、以下の設定を行います。
- 次のプロトコルを許可する : ●
- Microsoft CHAP Version2 (MS-CHAP v2) : ■
- Windows のログオン名とパスワードを自動的に使う : ■
ドメインに参加しており、ログインしているドメインユーザを使用する場合は、[Windowsのログオン名とパスワードを自動的に使う]にチェックを入れることで、VPN接続時にユーザ名とパスワードを入力する必要がなくなり、便利です。

[Windowsスタートメニュー]-[設定]-[ネットワークとインターネット]-[VPN]より、作成したVPNを選択し、[接続]を選択します。

作成したVPNに[接続済み]となっていることを確認します。

最後に、コマンドプロンプトを起動し、VPNサーバから設定したIPアドレスがリースされているかを核にします。
今回は、192.168.90.0/25でアドレスを割り当てているので、正常に割り当てが完了しています。
以上で、VPNサーバへの接続確認は完了です。
まとめ
今回は、Windows Server 2022の標準機能を使用して、L2TP/IPsecのVPNサーバを構築する手順を記載しました。
他のブログ等を参考に構築しましたが、VPNの機能だけだと正しくVPN接続ができず、詰まっていました。
VPNの機能と同時にNATを行わないと正しく接続ができないという落とし穴があるため、その点に留意したほうが良いと思います。
VPNといえば、OpenVPNやSoftEtherVPN等が有名ですが、Widnwos Server単体でもVPNサーバは構築することができます。
また、Windows Serverを使用していることから、Windowsクライアントとの親和性が高く、別途RADIUS等を触らなくてもドメインユーザでVPNを張れることから、ユーザ目線で考えると非常に楽だと思います。
おまけ
本ブログではVMwareやWindows、Linuxのインストール手順等も公開しております。
インフラエンジニアとして有益な記事や無益なコンテンツも作成しておりますので、通勤時間や休憩時間、休日のスキマ時間等に合わせて読んでいただけると幸いです。
また、Youtubeで解説動画も鋭意作成中です。本ブログで記事にしているものも動画にしようと思っておりますので、よろしくお願いいたします。
willserverのnoteも開設したのでフォローお願いします。
コメント