001_AWS環境へのP2SのVPN接続
0. 目次
コンテンツ
【今回の内容】
第一回目の投稿になります。よろしくお願いいたします!
今回は、タイトルの通り、AWS環境にクライアントVPNポイントを構築して、オンプレミスの検証環境のwin10端末からAWS環境へのP2S(ポイント対サイト)のVPN接続を行いました。
その手順のご紹介になります!
■AWSへの接続に関するサービスは2つあります。
・AWSVPN ※今回の検証で使用
→AWSが提供するVPNを用いた通信サービスになります。
・AWS Direct Connect
→インターネットを介さず、AWSが提供する専用線接続用いた通信サービスになります。
■AWS環境へのVPN接続のパターンは2つになります。
・AWSClientVPN接続 P2S接続(ポイント対サイト) ※今回の検証で使用
→個々の端末とAWS環境を接続する方式
・AWSサイト間VPN接続 S2S接続(サイト対サイト)
→オンプレミスの環境とAWS環境を接続する方式
【前提事項】
・AWS環境でVPC環境が構築されていること
・接続元となるクライアント端末があること
→今回の検証ではwin10端末を使用しています。
検証の基本的な流れはAWSドキュメントの以下を参照しています。
クライアント VPN の開始方法
1. 証明書、キーの作成
今回のVPN接続には証明書認証を使った相互認証接続を行います。
簡単に説明すると、接続元と接続先で「あなた接続しようとしているけど信用しても大丈夫ですか?」という確認をお互いに証明書を元に検証してから接続する方式になります。
※本検証では自己署名での証明書になります。
証明書はAWSドキュメントの通りにOpenVPN easy-rsa ユーティリティを使用して作成します。この証明書がVPNエンドポイントクライアントを作成する際に必要になります。
1-1. OpenVPN easy-rsa ユーティリティのダウンロード
本手順は、クライアントのwin10端末で行います。
[1]まずEasyRSAのZIPファイルをダウンロードを行うために、以下のリンクからGithubのページを表示してください。ページが開いたら「Releases」をクリックしてください。
https://github.com/OpenVPN/easy-rsa
[2]ページの下の方に以下のzipファイルがあるので、お使いの端末に合わせてダウンロードしてください。
今回は「EasyRSA-3.1.1-win64.zip」を使用しています。
[3]ダウンロードが完了したら、zipファイルを右クリックして、「フォルダを開く」を選択します。
[4]エクスプローラーで表示されたら、ダウンロードした「EasyRSA-3.1.1」のzipファイルを右クリックして、「すべて展開」を選択します。
[5]①で任意の展開先を指定してください。展開先が指定できたら②「展開」をクリックします。
[6]展開が完了しました。
以上でEasyRSAのダウンロードは完了しました。
1-2. サーバ証明書、クライアント証明書、キーの作成
本手順は以下のドキュメントに従って進めていきます。
クライアント承認(相互認証)
※注意
ドキュメントでは「EasyRSA-3.1.1」のフォルダをC:\Program Filesの直下へ移動して操作しています。以下手順もドキュメントに合わせてC:\Program Filesへ移動してから行っています。展開先から移動せずに以下手順を行う場合、コマンドの参照するパスが異なりますので注意してください。
[1]cmd(コマンドプロンプト)を管理者で実行します。①「スタート」を選択して、②検索バーで「cmd」と入力してください。コマンドプロンプトが表示されたら、③「管理者として実行」をクリックします。
[2]cmdが開いたら以下コマンドを実行して「EasyRSA-3.1.1」のフォルダへ移動します。
cd C:\Program Files\EasyRSA-3.1.1
※赤字になっている部分に関して
フォルダを展開先から移動せずに行っている場合、「EasyRSA-3.1.1」のフォルダまでのアドレスを変更してください。
以下にフォルダのアドレスの確認方法を記載していますので、もしご不明な場合はご参照ください。
■アドレスの確認・コピー方法
[1]エクスプローラーで①「EasyRSA-3.1.1」で右クリックをして、②「アドレスをテキストとしてコピー」を押すと「EasyRSA-3.1.1」のアドレスがコピーされます。
[2]メモ帳など任意のテキストエディタに「貼り付け」を選択します。
[3]以下のようにアドレスを貼り付けることができます。
¥¥
実行すると以下のように「EasyRSA-3.1.1」のフォルダへ移動します。
[3]「EasyRSA-3.1.1」のフォルダへ移動が確認できたら以下コマンドを実行します。
EasyRSA-Start.bat
実行すると、以下のEasyRSA3シェルが開きます。
[4]EasyRSA3シェルで、以下のコマンドを実行します。
このコマンドは新しい PKI 環境を初期化します。証明書とキーを発行するための準備をしています。
./easyrsa init-pki
以下の画面が表示されます。
[5]認証局(CA)を構築するための以下のコマンドを実行します。
./easyrsa build-ca nopass
以下の画面が表示され、①で作成した認証局に名前を付けることができますが、今回は検証のためブランクのままenterを押します。
これで②が表示されたら、認証局が作成されました。3行目のパスに生成されています。
[6]サーバの証明書とキーを生成するための以下のコマンドを実行します。
./easyrsa build-server-full server nopass
実行すると①が表示されるので「yes」を入力し、enterを押します。これでサーバ証明書とキーが発行されます。
[7]作成されたサーバ証明書とキーを確認してみます。以下の画面のようにそれぞれ証明書とキーが作成されていることがわかります。
それぞれ以下のパスに格納されています。
■証明書
■キー
[8][6]の手順と同様に以下のコマンドを実行して、クライアント証明書とキーを生成します。
./easyrsa build-client-full client1.domain.tld nopass
実行すると①が表示されるので、「yes」と入力して、enterを押します。これでクライアント証明書とキーが発行されます。
[9]作成されたクライアント証明書とキーを確認してみます。以下の画面のようにそれぞれ証明書とキーが作成されていることがわかります。
それぞれ以下のパスに格納されています。
■証明書
■キー
以上で証明書とキーの作成手順を終了します。
1-3. 証明書のACMへのインポート
以下手順はAWSの管理コンソールから行います。
[1]AWSの管理コンソールにログインしてください。
[2]ログインが完了したら管理コンソール画面上部の検索バーで①「acm」と入力します。検索結果に②「Certificate Manager」が表示されるので、こちらをクリックします。
[3]ACM(AWS Certificate Manager)の画面に移動したら、証明書のインポートを行います。以下の画面の①の「証明書をインポート」をクリックします。
[4]以下の画面が表示されます。①、②、③にそれぞれ先ほど作成した証明書とキーのファイル内の全文をコピーして入力します。
入力する①、②、③に関する詳細な情報は以下になります。
①;サーバ証明書情報
→C:\Program Files\EasyRSA-3.1.1\pki\issued 「セキュリティ証明書」をメモ帳で開くと表示されます。Certificate:~~~~から始まります。
②:サーバ証明書のキー情報
→C:\Program Files\EasyRSA-3.1.1\pki\private 「server」をメモ帳で開くと表示されます。—–BEGIN PRIVATE KEY—–から始まります。
③:認証局(CA)の情報
→C:\Program Files\EasyRSA-3.1.1\pki 「ca」をメモ帳で開くと表示されます。—–BEGIN CERTIFICATE—–から始まります。
[5]以下入力後の画面になります。入力が完了したら、「次へ」をクリックします。
[6]タグの追加画面になります。AWSの各リソースを識別するためのものになります。
今回は特に使用しませんので、任意のもので問題ありません。入力が完了したら次へをクリックします。
[7]レビューおよびインポート画面で入力した情報に問題がないか確認し、問題がなければ「インポート」をクリックします。
[8]問題がなければ証明書がインポートされます。
以上がACMへの証明書のインポート手順になります。
2. VPN接続方法
2-1.クライアントVPNエンドポイント作成
[1]VPCの管理コンソールを開き、①「クライアントVPNエンドポイント」を選択します。選択したら、②「クライアントVPNエンドポイントを作成」をクリックします。
[2]以下の画面が表示されるので、①、②、③を入力します。
①名前タグになります。任意のもので大丈夫です。
②説明になります。必要であれば入力してください。
例:「オンプレミス検証環境とのVPN接続検証用」など
③クライアントVPNを接続した際に、クライアント端末に割り当てられるIPアドレスの範囲になります。VPC、オンプレミス環境のIPアドレスと重複しない範囲を設定してください。アドレス範囲については、/22以上、/12未満にしなければいけません。
また作成後にアドレス範囲は変更することができませんので、注意しましょう!
[3]認証情報の入力になります。①では1-2でACMにインポートした証明書を選択してください。②では「相互認証を使用」にチェックを入れます。
③ではクライアント証明書とありますが、①と同じ証明書で問題ありません。
※今回サーバ証明書、クライアント証明書を同じ認証機関で発行しているため、サーバとクライアントの認証情報に同じサーバ証明書を使用することができます。
[4]他の項目はデフォルトのままで問題ありません。「クライアントVPNエンドポイント」を作成をクリックします。
[5]管理コンソール画面に戻るとクライアントVPNエンドポイントが作成されていることが確認できます。
[6]次にターゲットネットワークの関連付けを行います。作成したクライアントVPNエンドポイントを選択して、①「ターゲットネットワークの関連付け」を選択し、②「ターゲットネットワークを関連付ける」をクリックします。
[7]ターゲットネットワークの関連付けを行うために以下の画面で①、②にそれぞれ関連付けをしたいVPC、サブネットを選択します。
選択が完了したら、③「ターゲットネットワークの関連付ける」をクリックします。
[8]ターゲットネットワークの関連付けが完了すると以下の①の状態が「Available」に変わることが確認できます。「Available」となっていない場合は更新を押してみてください。
[9]クライアント設定のダウンロードが必要なので、「クライアント設定をダウンロード」をクリックしてください。
[10]以下の画面が表示されるので「クライアント設定をダウンロード」をクリックしてください。クライアントVPNエンドポイント設定ファイルがダウンロードされます。
[11]ダウンロードした設定ファイルをエクスプローラーで確認して、メモ帳で開きます。
[12]メモ帳で開いた設定ファイル内容の中に以下の内容を加えます。
=======内容======================================
〈cert〉
“クライアントのセキュリティ証明書をメモ帳で開いた内容をここに貼り付けます。※Certificate:から始まる文字列です。
〈/cert〉
〈key〉
“クライアントのキーをメモ帳で開き、その内容をここに貼り付けます。※—–BEGIN PRIVATE KEY—–から始まる文字列です。”
〈/key〉
=============================================
イメージとしては以下のようになります。※説明用に一部内容を省略しているため短くなっています。
以上がクライアントVPNエンドポイント作成の手順になります。
2-2.クライアント端末からVPN接続
VPN接続にはAWSが提供するVPN接続ソフトウェア「AWS VPN client」を使用します。AWSより無料で提供されていて、以下のリンクよりダウンロードできます。必要に応じて端末へダウンロード、インストールを行ってください。
AWS Client VPN download
今回はWindows用を使用しています。
[1]「AWS VPN Client」を開き、①「ファイル」を選択して、②「プロファイルを管理」をクリックしてください。
[2]プロファイルの管理が表示されるので、①「プロファイルを追加」を選択してください。プロファイルを追加する画面表示されるので、②「表示名」を入力してください。任意のもので問題ありません。③には2-1で最後にクライアントVPNエンドポイントでダウンロードした「VPNエンドポイント設定ファイル」を選択してください。完了したら④「プロファイルを追加」を選択します。
[3]プロファイルの接続が完了したら、「接続」をクリックして接続します。
[4]接続が完了すると以下のように表示されます。
以上が接続までの手順となります。
3. VPN接続確認
VPNの接続が完了しましたが、最後にVPN接続に問題がないか確認を行うため、以下3項目を調査します。
①IPアドレスが設定した範囲から割り当てられているか
②AWS側から接続の確認ができるか
③AWS環境内のサーバにプライベートIPを用いてRDP接続できるか
3-1.IPアドレスの確認
こちらではIPアドレスがクライアントVPNエンドポイントで設定したIPアドレスプールの中からクライアント端末へ割り当てられているか確認します。
割り当てた範囲は「172.18.0.0/22」です。
[1]接続しているwin10端末でコマンドプロンプトを開きます。コマンドで「ipconfug/all」を実行します。
[2]割り当てられているIPアドレス「172.18.0.34」となっていることが確認できます。
[3]クライアントVPNエンドポイントで設定した範囲から割り当てられていることが確認できました。
3-2.クライアントVPNエンドポイント画面から接続端末の確認
こちらではAWSのクライアントVPNエンドポイントの画面から接続しているクライアント端末を確認します。
[1]クライアントVPNエンドポイントの設定画面を開き、「接続」を選択してください。
[2]IPアドレス確認と同様のIPアドレスが割り当てられているクライアント端末の「ステータス」が「アクティブ」となっています。
[3]AWSのクライアントVPNエンドポイントの画面から接続しているクライアント端末の確認ができました。
3-3.RDP接続
VPN接続を行っているクライアント端末からVPC内のEC2インスタンスで作成したwindowsServerへプライベートIPを用いてRDP接続を行います。
※クライアントVPNエンドポイントの「ルートテーブル」と「承認ルール」で接続先VPCへのトラフィック及びアクセス許可を設定しておく必要があります。
[1]以下のプライベートIPが「172.16.1.7」のWindowsServerのRDP接続を行います。
[2]クライアント端末からEC2インスタンスへプライベートIPを用いてRDP接続することができました。
以上でRDP接続の確認を終了します。