[アップデート] Client VPN で VPN クライアント間の接続ができるようになりました

オンプレサーバーとも通信させることができちゃいます。
2020.10.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

みなさま Xin chao !

 

AWS Client VPN で、VPN クライアント間の接続ができるようになったとのアップデートがありました。

 

タイトルを最初見た時、「VPN クライアント同士の接続? そんなにたくさんの要望があったのだろうか?」というのが正直な感想でした。

みんながオフィスに出社し顔を合わせながら業務を行う環境では、ローカルストレージに保存されているファイルを近くの人に一時的に共有するような場面はあると思います。 安定した LAN 接続下の PC 間であれば、メールやチャットでやり取りするにはサイズが大きいようなファイルであっても、手軽にやり取りできるメリットがあると思います (適切なアクセス権を付与しないと、思わぬ相手にも共有されてしまうリスクがあるので注意は必要ですし、組織によっては PC 間の共有は禁止されている場合もあります)。

ところが、今回は Client VPN に対するアップデートです。 もちろんテレワーク環境下でも、チャットやオンラインミーティングをしながら、ちょっとファイルを共有したいという場面はあると思いますが、利用者の声に応えて日々サービスを進化させている AWS とはいえ、それほどたくさんの要望があがっていたのだろうか...? と感じました。

しかし、上記アップデートのドキュメントを読んで、なるほど! と思いました。

(原文) For example, a developer who has an active VPN connection is able to interface with on-premises resource(s) that has also has an active VPN connection(s) on the same AWS Client VPN endpoint. This allows for establishing a secure connection without changing network security policies.

(日本語訳) 例えば、アクティブな VPN 接続を持つ開発者は、同じ AWS Client VPN エンドポイント上にアクティブな VPN 接続を持つオンプレミスのリソースとインターフェースを取ることができます。 これにより、ネットワークセキュリティポリシーを変更することなく、安全な接続を確立することができます。

(AWS Client VPN now supports client to client connectivity - AWS What's New より抜粋)

 

つまり、オンプレミス環境のサーバーを Client VPN の VPN クライアントにすることで、ネットワークやセキュリティの変更は必要最小限で、VPN クライアントからオンプレミス環境のサーバーに接続できる、ということです。

例えば、以下のような環境に今回のアップデートが使えるのではないかと思いました。

  • 急遽テレワーク環境に移行しなければならなくなった
  • しかし業務に必要なサーバー群は、オンプレミス環境に設置されている
  • 運用環境では AWS を使ったことがない
  • 必要最小限のサーバーだけでもリモートワーク環境からアクセスできないと、業務が回らなくなってしまう
  • クラウド活用は次のステップにしたい

 

想定環境

以下の構成のように、既存のサーバーはオンプレミス環境に存在し、外部から VPN 装置等を介して接続する入り口もなく、オンプレミス環境 ←→ AWS 間の閉域接続 (Direct Connect や Site to Site VPN など) もない環境に、今回のアップデートを使った Client VPN 環境を構築することで、テレワーク環境からオンプレミス環境のサーバーに接続できるようにします。

 

今回は、上記環境を想定した以下のような AWS 環境を構築し、実際に試してみました。

 

やってみた

EC2 の構築

オンプレミスファイルサーバー想定の EC2、および、テレワーククライアント想定の EC2 を、それぞれ Windows Server 2019 で起動します。 詳細は割愛しますが、以下のようにそれぞれのインスタンスを設定しています。

オンプレミスファイルサーバー想定の EC2

  • 共有フォルダ接続用のローカルユーザーとして、vpnuser を作成
  • "Shared" フォルダーを作成し、vpnuser に対して共有フォルダへの変更権限を付与
  • テレワーククライアント想定の EC2 から Windows ファイル共有 (=SMB) 接続 (ソース : クライアント IPv4 CIDR = 10.255.0.0/22)、また、設定用として弊社環境からリモートデスクトップ (=RDP) 接続できるようにセキュリティグループを設定
  • 設定用として、パブリック IP アドレスを付与

テレワーククライアント想定の EC2

  • 設定用として、弊社環境からリモートデスクトップ (=RDP) 接続できるようにセキュリティグループを設定
  • 設定用として、パブリック IP アドレスを付与

 

Client VPN エンドポイントの構築

今回は、クライアント証明書を使った相互認証を使用します。 具体的な構築方法については、以下のブログをご参照ください。

※※※※※ 注意点 (ここから) ※※※※※

Client VPN エンドポイントは、スプリットトンネルを有効にして構築する必要があります。 スプリットトンネルが無効の場合、後述の手順の VPN 接続した時点で、VPN クライアント以外 (=オンプレミス想定の環境) からオンプレミスファイルサーバー想定の EC2 に接続できなくなってしまいます。

※※※※※ 注意点 (ここまで) ※※※※※

 

VPN クライアント間接続の有効化

今回のアップデートである、VPN クライアント間接続を有効化します。 何かチェックボックス的なものにチェックを入れる、というわけではなく、Client VPN エンドポイントのルートテーブルと認証ルールに VPN クライアント間接続のための設定を追加することで有効化することができます。 詳細は、以下のドキュメントに記載されています (本ブログ執筆時点において日本語ページは用意されていないため、表示言語を英語に切り替えてご参照ください)。

Client-to-client access - AWS VPN 管理者ガイド

 

Client VPN エンドポイント ルートテーブルの追加設定

[ルートの作成] をクリックします。

 

「ルート送信先」に、Client VPN エンドポイントの「クライアント IPv4 CIDR」を指定します (今回の場合は 10.255.0.0/22)。 「クライアント IPv4 CIDR」は [概要] タブで確認することができます。 「ターゲット VPC サブネット ID」に、"ローカル" を指定します (アップデート前にはなかった選択肢です)。 説明を入力し [ルートの作成] をクリックします。

 

しばらく待つと (今回試した際は 1 分ほどでした)、"local" へのルートが追加されました。

 

Client VPN エンドポイント 認証ルールの追加設定

[受信の承認] をクリックします。

 

「アクセスを有効にする送信先ネット」に、Client VPN エンドポイントの「クライアント IPv4 CIDR」を指定し、[認証ルールの追加] をクリックします。

 

しばらく待つと (今回試した際は 30 秒ほどでした)、「クライアント IPv4 CIDR」への認証ルールが追加されました。

 

Client VPN クライアントの設定

オンプレミスファイルサーバー想定の EC2、および、テレワーククライアント想定の EC2 それぞれに対し、OpenVPN クライアントのインストールおよび設定を行います。

具体的な設定方法につては、以下のブログをご参照ください。

 

クライアントからファイルサーバーへの接続テスト

オンプレミスファイルサーバー想定の EC2、および、テレワーククライアント想定の EC2 の両インスタンスから Client VPN 接続します。 接続が完了すると AWS マネジメントコンソールで、Client VPN クライアントに付与された IP アドレスを確認することができます。

 

テレワーククライアント想定の EC2 から、オンプレミスファイルサーバー想定の EC2 の共有フォルダに接続します。 コマンドプロンプトで、以下を実行します。

net use z: \\(オンプレミスファイルサーバー想定の EC2 に付与された Client VPN IP アドレス)\\Shared

 

Windows エクスプローラーで、オンプレミスファイルサーバー想定の共有フォルダー (=Z: ドライブ) の中身を確認することができました!

 

おわりに

AWS Client VPN の VPN クライアント間接続を試してみました。

オンプレミス環境のサーバーでインターネットに対する 443/udp (Client VPN エンドポイントの設定による) を許可し、VPN クライアントをインストール・設定するだけで Client VPN クライアントからアクセスできるようになるため、特に、急ぎでかつ既存環境への変化点をあまり与えたくないような、一時的な環境構築に非常に便利な機能ではないかと思います。

このようなことが実現できる、ということを覚えておくと、イザという時の選択肢が広がりますね!