ニフクラ ブログ

ニフクラ/FJ Cloud-Vやクラウドの技術について、エンジニアが語るブログです。

Windows Serverで「L2TP/IPsec」環境を実装してみる

こんにちは、ニフティクラウドテクニカルアカウントチームです。 今回はニフティクラウド上でリモートアクセスVPN環境を構築してみます。

はじめに

ニフティクラウド上でリモートアクセスVPN環境を構築してみて、性能測定を行った結果をブログに記載いたします。

ニフティクラウドのサービスでVPN環境を構築する場合、現在は拠点間アクセスVPNで実装する必要があります。サービスとしては拠点間VPNゲートウェイや、インターネットVPN(H/W)があります。 しかし、商談の支援を行う中で、「外出先の端末からセキュアにアクセスする方法が欲しい」などの要望をいただくことが多くあります。本要望を実現する選択肢として、拠点間VPNではなくリモートアクセスのVPN環境を構築する方法があります。そのため、今回はリモートからVPNでクラウド環境にアクセスする方法のご紹介となります。
※ニフティの責任範囲外になるため、実施する場合にはお客様の判断にて実施をお願いします。

本ブログ執筆後、リモートアクセスVPNゲートウェイがリリースされています。
こちらをご利用いただくことでリモートからVPNでクラウド環境にアクセスすることが可能になっています。
ご利用方法に関しては、ニフクラの新サービス、リモートアクセスVPNゲートウェイ機能を使ってみたもご参照ください。

対象 OS サーバータイプ グローバルIP プライベートIP 備考
Windows Server(L2TP/IPsec) Windows Server 2012 R2 large8 ○○○.○○○.○○○.○○○ 192.168.1.11 VPNサーバーとしてWindowsの機能で構築
Netperf クライアント(Windows Server) Windows Server 2012 R2 large8 ×××.×××.×××.××× 記載不要 VPNクライアントとしてWindows Serverで構築
Netperf クライアント(Windows7) Windows7 △△△.△△△.△△△.△△△ 記載不要 VPNクライアントとしてWindows7の端末で構築
Netperf サーバー(Windows) Windows Server 2012 R2 large8 192.168.1.33 クライアントからVPN接続後疎通確認と性能測定用に構築

前提条件

本ブログの構成実現は、以下の前提知識がある方を想定しています。

  • ニフティクラウドの基本的なコントロールパネルの操作ができる方 (サーバー作成、ネットワーク構築など)
  • 基本的なWindows Server OSの設定が出来る方 (IPアドレスの設定、ファイアウォール設定など)

L2TP/IPsec環境の構築

実際にL2TP/IPsec環境を構築します。 上記図の構成でネットワークの構成、サーバーの作成などは完了している前提で記載します。 また、ニフティクラウドのファイアウォールは適切に設定しています。

Windows Server L2TP/IPsec サーバーの構築

まず、VPNのサーバー側の構築を行います。

  • サーバーマネージャーの「役割と機能の追加」から「リモートアクセス」の役割を追加します。基本的には画面に従って進んでいけばOKです。

リモートアクセスのインストールまで完了したので、実際にVPNサーバーとしての設定を実施します。

  • サーバーマネージャーを起動すると右上に表示される「!マーク」をクリックし、ポップアップにある「作業の開始ウィザードを表示する」をクリックします。

  • 「リモートアクセスの構築」画面で「VPNのみを展開します(V)」をクリックします。

  • 「ルーティングとリモートアクセス」の画面で対象のサーバーを右クリックし、「ルーティングとリモートアクセスの構築と有効化(C)」を選択します。
  • 「ルーティングとリモートアクセスサーバーのセットアップウィザード」の画面が表示されるので、「次へ(N)」をクリックします。

  • 「構成」の画面で、今回は「カスタム構成(C)」を選択し、「次へ(N)」をクリックします。
  • 「カスタム構成」画面が出力されるので、「VPNアクセス(V)」にチェックを入れて「次へ(N)」をクリックします。
  • 「ルーティングとリモートアクセスサーバーのセットアップウィザードの完了」と表示されるので、「完了」をクリックします。

その後、ルーティングとリモートアクセスのサービスを開始するポップアップが表示されるため「サービスの開始」をクリックします。

次にVPN接続で使用するユーザーの設定を行います。

  • ローカルユーザーとグループから対象のユーザーのプロパティを開きます。
  • 「ダイヤルイン」タブの「リモートアクセス許可」の設定で「アクセスを許可(W)」を選択し、「OK」をクリックします。

再度、「ルーティングとリモートアクセス」の画面を開いて設定の続きを行います。

  • 対象のサーバーを右クリックし「プロパティ(R)」を選択します。
  • 「セキュリティ」タブの「カスタム IPsecポリシーをL2TP/IKEv2接続で許可する(L)」にチェックを入れ、事前共有キー(K)を設定し「OK」をクリックします。

  • 「...ルーティングとリモートアクセスを再起動する必要があります」とポップアップが出力されるので、「OK」をクリックします。
  • 設定を反映させるため、対象のサーバーを右クリックし、「すべてのタスク(K)」内の「再起動(E)」をクリックしてサービスを再起動します。

次にVPNトンネルの設定を行います。 ルーティングとリモートアクセスの画面を開き、対象のサーバーを右クリックし、「プロパティ」を選択します。

  • 「IPv4」タブの「IPv4 アドレスの割り当て」で「静的ホスト構成プロトコル」を選択し、「追加」をクリックします。出力される画面上でIPアドレスの範囲を設定し、「OK」をクリックします。 ※ここでニフティクラウド側で作成したプライベートLANで設定したCIDR内のIPアドレスで範囲を指定します。VPN接続したクライアントはここで指定した範囲のIPアドレスを利用することになります。

  • 設定を反映させるため、対象のサーバーを右クリックし、「すべてのタスク(K)」内の「再起動(E)」をクリックします。

ここまででVPNサーバーの基本的な構築が完了しました。 それなりに長いですが、比較的容易に設定が可能かと思います。

Windows Server L2TP/IPsec クライアントの構築

次にVPNクライアントの構築を行います。 まずはクライアントにWindows Serverを利用した場合の構築です。

※ここからはクライアント用のWindows Serverで実施する作業になります。

  • コントロールパネルから「ネットワークと共有センター」を選択します。
  • 「新しい接続またはネットワークのセットアップ」を選択します。
  • 「職場に接続します」を選択し、「次へ(N)」をクリックします。

  • 「インターネット接続(VPN)を使用します(I)」をクリックします。
  • 「インターネットアドレス(I)」と「接続先の名前(E)」を入力し、「作成(C)」をクリックします。インターネットアドレスは接続先VPNサーバーのグローバルIPアドレスを指定し、接続先の名前は任意で設定します。
  • 作成されたネットワークを右クリックし、「プロパティ(R)」を選択します。

  • 「セキュリティ」タブの「VPNの種類(T)」を「自動」から「IPsecを利用したレイヤー 2トンネリング プロトコル(L2TP/IPSec)」へ変更し、「詳細設定(S)」をクリックします。
  • 「詳細プロパティ」の画面でVPNサーバー構築で設定した「事前共有キー」を入力し、「OK」をクリックします(今回は「L2TPWindows」)。
  • 「ネットワーク」タブの「インターネット プロトコル バージョン4 (TCP/IPx4)」を選択し、「プロパティ(R)」をクリックします。

  • 「詳細設定(V)」をクリックします。
  • 「IP設定」タブの「リモートネットワークでデフォルトゲートウェイを使う(U)」のチェックを外します。

これでクライアントにWindows Serverを利用した場合の構築が完了です。

Windows7 L2TP/IPsec クライアントの構築

次にWindows7端末をクライアントとして利用した場合の構築についても記載します。 基本的な設定は前述したサーバーOSの設定方法と変わりなく構築が可能となります。 リモートアクセスという観点からサーバーOSをクライアントにするより、こちらのほうが利用する機会は多いかもしれません。

  • コントロールパネルの「ネットワークと共有センター」から「新しい接続またはネットワークのセットアップ」をクリックします。
  • 「接続またはインターネットのセットアップ」ウィザードが起動するので、「職場に接続します」を選択し、「次へ(N)」をクリックします。

  • 「既存の接続を使用しますか?」の画面が表示されるので、「いいえ、新しい環境を作成します(C)」を選択し、「次へ(N)」をクリックします。
  • 「インターネット接続(VPN)を使用します(I)」をクリックします。
  • 「インターネット アドレス(I)」と「接続先の名前(E)」を入力し、「今は接続しない。自分が後で接続できるようにセットアップのみを行う(D)」にチェックを入れ、「次へ(N)」をクリックします。接続先の名前は任意でOKです。

  • 「ユーザー名(U)」と「パスワード(P)」を入力し、「作成(C)」をクリックします。
  • 作成したネットワークを右クリックし、「プロパティ(R)」をクリックします。
  • 「セキュリティ」タブを開き、「VPNの種類(T)」を「自動」から「IPsecを利用したレイヤー2トンネリング プロトコル(L2TP/IPsec)」に変更し、「詳細設定(S)」をクリックします。

  • 事前認証キー(K)を入力し、「OK」をクリックします。VPNサーバー構築時に設定した事前共有キーを記入します(今回は「L2TPWindows」)。
  • 「インターネット プロトコル バージョン4(TCP/IPv4)」を選択し、「プロパティ(R)」をクリックします。
  • 「詳細設定(V)」をクリックします。
  • 「リモートネットワークでデフォルト ゲートウェイを使う(U)」のチェックを外し、「OK」をクリックします。

ここまででクライアントにWindows7端末を利用した場合の構築が完了です。

Windows Server L2TP/IPsec クライアント 接続確認~疎通テスト

ここから、Windows Server L2TP/IPsec クライアントから実際にVPN接続を行いNetparfサーバー(Windows)への疎通確認まで実施します。

  • Netperfクライアント(Windows Server)にログインし、コントロールパネル-ネットワークとインターネット-ネットワーク接続を開き、「VPN-L2TP」を右クリックし、「接続/切断(O)」をクリックします。
  • 「VPN-L2TP」を選択し、「接続(C)」をクリックします。
  • 「VPN-L2TP」が「接続済み」になったことを確認します。

  • コマンドプロンプトを起動し、「ipconfig /all」を入力します。VPN-L2TPのIPv4のアドレスが、サーバー構築時に設定した「192.168.1.101~105」の間である192.168.1.102となっていることがわかります。
  • コマンドプロンプトを起動し、NetperfServer(Windows Server)(192.168.1.33)に疎通できることをpingを使って確認します。

Windows Server(L2TP/IPsec)の画面からも192.168.1.102がNetperfクライアント(Windows Server)に付与していることを確認します。

  • ルーティングとリモートアクセスを開き「リモートアクセスクライアント」をクリックします。中央ペインの対象のクライアント名を右クリックし、「状態(S)」をクリックします。
  • ネットワーク登録のIPアドレスがNetperfクライアント(Windows Server)で確認したIPv4の内容と一致していることがわかります。

以上でWindows Server L2TP/IPsec クライアント 接続確認~疎通テストは完了です。

Windows7 L2TP/IPsec クライアント 接続確認~疎通テスト

Windows7 L2TP/IPsec クライアントからも実際にVPN接続を行いNetparfサーバー(Windows)への疎通確認まで実施します。

  • 端末のネットワークの接続を開き、「VPN-接続検証」を右クリックし、「接続(O)」をクリックします。
  • 「VPN-接続検証へ接続」の画面が出力されるので、「ユーザー名(U)」と「パスワード(P)」を入力し、「接続(C)」をクリックします。
  • 「VPN-接続検証」が「接続済み」になったことを確認します。

  • コマンドプロンプトを開き、「ipconfig /all」を入力しすると、端末で作成した「VPN-接続検証」のIPv4アドレスがサーバー構築時に設定した「192.168.1.101~105」の間の192.168.1.103で振られていることがわかります。
  • 端末でコマンドプロンプトを開き、Netperfサーバー(Windows Server)(192.168.1.33)に疎通できることをpingを使って確認します。

Windows Server(L2TP/IPsec)の画面からも192.168.1.103がNetperfクライアント(Windows7)に付与していることを確認します。

  • ルーティングとリモートアクセスを開き「リモートアクセスクライアント」をクリックします。中央ペインの対象のクライアント名を右クリックし、「状態(S)」をクリックします。
  • ネットワーク登録のIPアドレスがNetperfクライアント(Windows Server)で確認したIPv4の内容と一致していることがわかります。

以上でWindows7 L2TP/IPsec クライアント 接続確認~疎通テストまで完了です。

これでリモートアクセスでのVPN環境の構築が完了しました。 次に実際に性能の測定を行います。

性能測定

ここから、実際にVPNクライアントからVPN接続を行った際にどの程度性能が出るか測定を行います。 ※Windows7端末からは端末側の通信環境の影響が大きいと考え、今回は掲載していません。

実際のベンチマーク試験は「Netperfクライアント(Windows Server)」と「Netperfサーバー(Windows Server)」間で測定しています。 「Netperf」を利用し、TCPでの転送性能と、UDPでの 64, 128, 256, 512, 1024, 1280, 1518 バイトでの転送性能を測定しています。

VPNゲートウェイに比べると若干性能は落ちますが、TCP性能で平均400Mbps程度なので十分実用可能な性能が出ているのではないでしょうか。 拠点間VPN接続のVPNゲートウェイの性能については、以下が参考になるかと思います。 > VPNゲートウェイの性能評価

※多重セッション時の性能測定などは今回行っておりません。 ※性能については、ベストエフォートでのサービス提供となるため、保証するわけではありません。

まとめ

今回は「Windows ServerでリモートアクセスVPN環境を実装してみる」をお送りしました。 通常のWindows Serverの機能だけでリモートアクセスVPNの環境を実装することができました。 リモートからアクセスする際にセキュアに接続できる環境を作りたい場合の選択肢の一つになるのではないでしょうか。

注意事項 ・OS以上の動作となるためお客様にて、責任をもって実装をお願いします。 ・ニフクラの禁止事項に抵触しないよう気をつけて実装をお願いします。

[2021年2月19日追記:リモートアクセスVPNゲートウェイでも目的を達成できる旨を追記]