SSL-VPNを使用してクライアントPCからECSへ接続してみた
はじめに
本記事では、SSL-VPNを使用してクライアントPCからECSへの接続をする方法をご紹介します。
SSL-VPNとは
VPN(Virtual Private Network)とは、インターネット上に仮想的なプライベートネットワークを構築することで、よりセキュアな通信を行うための技術です。
Alibaba Cloudでは、以下の2つの接続方法をサポートしています。
IPsec-VPN
IPsec-VPNはIPsec(IP Security Architecture)技術を使用したVPNソリューションです。
プロトコル階層はネットワーク層であり、組織間を接続するプライベートネットワークとして開発されました。
メリット
・ ネットワーク層で実装されるため、アプリケーションに依存しない
・ SSL-VPNに比べて高速
デメリット
・ SSL-VPNに比べてコストが高い
・ クライアントPCには専用のVPNクライアントソフトウェアの導入が必要
SSL-VPN
SSL-VPNはSSL(Secure Sockets Layer)技術を使用したVPNソリューションです。
プロトコル階層はセッション層であり、ウェブブラウザからサーバへのSSL通信を可能とするために開発されました。
メリット
・ IPsec-VPNに比べてコストが低い
・ アクセス制御等、各種設定が容易
デメリット
・アプリケーションに依存するため、アプリケーションごとにSSL対応が必要
・SSL-VPNに比べて低速
SSL-VPN / IPsec-VPN の特徴については、こちらもご参照ください。
今回検証用に構築する環境
今回は下図の構成でSSL-VPN接続を行ってみたいと思います。
Alibaba Cloudで作成するコンポーネントは以下です。
・ VPC
・ VSwitch
・ セキュリティグループ
・ ECSインスタンス
・ VPNGateway
検証準備
それではさっそく、検証の準備を始めましょう。
検証準備は以下の流れで行います。
コンポーネントの作成はすべてAlibaba Cloudのコンソールで行います。
- VPC・VSwitchの作成
- セキュリティグループの作成
- ECSインスタンスの作成
- SSL-VPN接続用の設定
VPC・VSwitchを作成する
VPC・VSwitchを作成します。
Alibaba Cloudのコンソール画面へログインし、Virtual Private Cloud
画面を開きます。
VPCの作成
をクリックします。
VPCおよびVSwitchの各項目を設定します。
①:任意のVPC名を入力します。
②:VPCのIPv4 CIDR ブロックを入力します。デフォルトは192.168.0.0/16
です。
③:任意のVSwitch名を入力します。
④:VSwitchのゾーンをプルダウンから選択します。
⑤:VSwitchのIPv4 CIDR ブロックを入力します。デフォルトは192.168.0.0/24
です。
①~⑤の項目を設定し、⑥OK
をクリックします。
※ここではVPCおよびVSwitchのIPv4 CIDRブロックはデフォルトにしておりますが、必要に応じて入力しなおしてください。
※説明は任意です。
VPCおよびVSwitchが作成されたことを確認します。
セキュリティグループを作成する
接続先ECSにアタッチするセキュリティグループを作成します。
Elastic Compute Service
画面を開きます。
Elastic Compute Service
画面左に表示されるメニューからセキュリティグループ
を選択します。
セキュリティグループの作成
をクリックします。
セキュリティグループの各項目を設定します。
①:テンプレートはカスタマイズ
を選択します。
②:任意のセキュリティグループ名を入力します。
③:先ほど作成したVPCを選択します。
①~③の項目を設定し、④OK
をクリックします。
セキュリティグループが作成されたことを確認します。
セキュリティグループのルール設定
セキュリティグループのルールを設定します。
pingコマンドで通信が可能か確認した後にリモートデスクトップ接続を実施するため、2つのルールを設定します。
セキュリティグループ作成時と同様にセキュリティグループ
画面を開きます。
先ほど作成したセキュリティグループのアクション
列のルール設定
をクリックします。
セキュリティグループルールを追加
をクリックします。
まずはpingコマンド用のルールを設定します。
①:プロトコルタイプはすべてのICMP(IPv4)
を選択します。
②:権限付与オブジェクトにはクライアントがECSインスタンスに接続するために使用する任意のIPv4 CIDRブロックを入力します。
※権限付与オブジェクトに設定するIPv4 CIDRブロックは作成したVPC内のVSWitchと競合しないように設定してください。
今回、VPCのIPv4 CIDRブロックは192.168.0.0/16
、VSwitchのIPv4 CIDRブロックは192.168.0.0/24
としているため、競合しないよう192.168.0.10/24
とします。
①、②の項目を設定し、③OK
をクリックします。
再度セキュリティグループルールを追加
をクリックし、リモートデスクトップ接続用のルールを設定します。
①:プロトコルタイプはRDP(3389)
を選択します。
②:権限付与オブジェクトにはpingコマンド用のルールと同様のIPv4 CIDRブロックを設定します。
①、②の項目を設定し、③OK
をクリックします。
ECSインスタンスを作成する
接続先となるECSインスタンスを作成します。
Elastic Compute Service
画面を開きます。
Elastic Compute Service
画面左に表示されるメニューからインスタンス
を選択します。
インスタンスを作成
をクリックします。
ECSインスタンスの基本構成を設定します。
①:検証後はすぐに削除するため、価格モデルは従量課金を選択します。
②:リージョンおよびゾーンはVPC・VSwich作成時の設定と同一にします。
③:任意のインスタンスタイプを選択します。今回は比較的料金の安いインスタンスタイプを選択します。
④:任意のイメージを選択します。今回はWindowsServer 2019 64-bitの英語版とします。
⑤:任意のシステムディスクを選択します。今回は最も料金が安くなるよう、サイズ40GBのUltraクラウドディスクとします。
①~⑤の項目を設定し、⑥次のステップ:ネットワーク
をクリックします。
ECSインスタンスのネットワーク構成を設定します。
①:先ほど作成したVPCを選択します。
②:先ほど作成したVSwitchを選択します。
③:先ほど作成したセキュリティグループを選択します。
①~③の項目を設定し、④次のステップ:システム構成
をクリックします。
ECSインスタンスのシステム構成を設定します。
①:任意のadministratorユーザ用パスワードを入力します。
②:任意のインスタンス名を入力します。
①、②の項目を設定し、③次のステップ:グループ化
をクリックします。
今回はECSインスタンスのグループ化は特に何も設定せず、次のステップ:プレビュー
をクリックします。
ECSインスタンスの設定を確認します。
すべての設定値が誤っていないことを確認し、①ECS SLA と 利用規約に同意する
にチェックを入れ、②インスタンスの作成
をクリックします。
ECSインスタンスが作成されたことを確認します。
★後ほどpingコマンドを使用して、クライアントPCからECSインスタンスへの疎通確認を行うため、ECSインスタンスのプライベートIPアドレスを控えておきます。
SSL-VPN接続用の設定を行う
接続先のECSインスタンスが完成したので、次からはSSL-VPN接続を実現するための作業になります。
SSL-VPN接続を開始するまでの流れは以下です。
VPNGatewayを作成する
SSLサーバを作成する
クライアント証明書を作成する
クライアントPCの設定を行う
VPNGatewayを作成する
VPNGatewayを作成します。
Virtual Private Cloud
画面を開きます。
Virtual Private Cloud
画面左に表示されるメニューからVPN Gateways
を選択します。
VPNGateway の作成
をクリックします。
VPNGatewayの各項目を設定します。
①:任意のインスタンス名を入力します。
②:先ほど作成したVPCを選択します。
③:今回はSSL-VPN接続を行うため、IPsec-VPNを無効化します。
④:SSL-VPNを有効化します。
①~④の項目を設定し、ピーク帯域幅およびSSL接続は最小のものが選択されていることを確認します。
その後⑤今すぐ購入
をクリックします。
VPNGatewayの設定を確認します。
すべての設定値が誤っていないことを確認し、①利用規約とSLAに同意する
にチェックを入れ、②有効化
をクリックします。
VPNGatewayが作成されたことを確認します。
SSLサーバを作成する
SSLサーバを作成します。
Virtual Private Cloud
画面左に表示されるメニューからSSL Servers
を選択します。
SSL サーバーの作成
をクリックします。
SSLサーバの各項目を設定します。
①:任意のSSLサーバ名を入力します。
②:先ほど作成したVPNGatewayを選択します。
③:先ほど作成したVSwitchのIPv4 CIDRブロックを入力します。
④:セキュリティグループルールの権限付与オブジェクトに設定したIPv4 CIDRブロックを入力します。
①~④の項目を設定し、⑤OK
をクリックします。
SSLサーバが作成されたことを確認します。
SSLクライアント証明書を作成する
SSLクライアント証明書を作成します。
Virtual Private Cloud
画面左に表示されるメニューからSSL Clients
を選択します。
クライアント証明書の作成
をクリックします。
クライアント証明書の各項目を設定します。
①:任意のクライアント証明書名を入力します。
②:先ほど作成したSSLサーバを選択します。
①、②の項目を設定し、③OK
をクリックします。
SSLクライアント証明書が作成されたことを確認します。
以上でAlibaba Cloud(接続先)側の作業が完了となります。
クライアントPCの設定
それでは接続元となるクライアントPC側の作業を行います。
今回はMacをクライアントPCとして接続確認を行いたいと思います。
SSLクライアント証明書のダウンロード
先ほど作成したSSLクライアント証明書をダウンロードします。
SSLクライアント証明書作成時と同様にSSL Clients
画面を開きます。
先ほど作成したSSLクライアント証明書のアクション
列のダウンロード
をクリックします。
OpenVPN クライアントのインストール・設定
ターミナルから以下のコマンドを実行し、OpenVPNクライアントのインストールおよび設定を行います。
※以下はクライアントPCがMacの場合のインストール・設定方法になります。
OpenVPN クライアントをインストールします。
brew install openvpn
デフォルトの設定を削除します。
rm /usr/local/etc/openvpn/*
先ほどダウンロードしたクライアント証明書を/usr/local/etc/openvpn/配下へ解凍します。
※$CERT_LOCATION はダウンロードしたクライアント証明書のパスです。 例) /Users/example/Downloads/certs.zip
unzip $CERT_LOCATION -d /usr/local/etc/openvpn/
接続を開始します。
cd /usr/local/etc/openvpnsudo /usr/local/opt/openvpn/sbin/openvpn --config /usr/local/etc/openvpn/config.ovpn
非常に少ない手順ですが、接続元の設定は以上になります。
※接続開始時に/usr/local/etc/openvpnに移動しているのは、configファイル(/usr/local/etc/openvpn/config.ovpn)内で指定されているファイルが/usr/local/etc/openvpnに配置されているためです。 configファイル内で指定されているファイルが絶対パスで記載されていれば、移動の必要はありません。※ターミナルを閉じてしまうと接続が切断されるため、接続中はターミナルは開いたままにしておいてください。
SSL-VPN接続確認
それではいよいよ接続確認を行ってみましょう。 pingコマンドで通信可能なことを確認し、リモートデスクトップ接続を実施します。
pingコマンドによる疎通確認
まずはpingコマンドによる疎通確認を行います。
以下のコマンドを実行してみます。
※$PRIVATE_IP_ADDRESS はECSインスタンス作成時に控えたプライベートIPアドレスです。
ping $PRIVATE_IP_ADDRESS
通信可能なことが確認できました。
リモートデスクトップ接続確認
次にリモートデスクトップ接続を行ってみましょう。
任意のRDPクライアントを起動してください。
今回はMicrosoft Remote Desktopアプリを使用します。
アプリを起動し、画面左上の+
をクリックします。
接続を作成します。
Connection nameに接続名となる任意の値を入力し、PC nameにECSインスタンスのプライベートIPアドレスを入力します。
User nameはadministrator
を入力し、PasswordはECSインスタンス作成時に指定したパスワードを入力します。
入力が完了し、左上の×
をクリックし、画面を閉じます。
作成した接続を選択し、↗
をクリックします。
証明書に関する警告が表示された場合は、Continue
をクリックします。
リモートデスクトップ接続が成功しました。
最後に
今回はSSL-VPNを使用してクライアントPCからECSに接続する方法をご紹介させていただきました。
Alibaba Cloudにほとんど触れたことのない方でも非常に簡単に設定ができることをお伝え出来たかと思います。
SSL-VPNはIPsec-VPNと比較すると安価であり設定も簡単なので、ぜひご活用ください。