目次
ポイント対サイトVPN接続(Point to site VPN)とは?
ポイント対サイトVPN接続(Point to site VPN)とはVPN接続の一種で、コンピューター(PC)とAzureの仮想ネットワーク間で接続するVPNの事です。
ポイント対サイトVPN接続を利用する事で、PCから仮想ネットワークへの通信をセキュアにする事が可能となります。
PCなどのコンピューターを”ポイント”、Azureの仮想ネットワークを”サイト”と表現します。
ユースケース
利用ケースは以下の様になります。
- Azureの仮想ネットワークへ遠隔からセキュアにアクセスしたい場合
- 例:リモートワークなどで自宅から仮想ネットワークにアクセスしたいケース
メリット/デメリット
メリット
- 自宅などの遠隔から仮想ネットワークへ接続する通信をセキュアにする事が可能
デメリット
- 多数のユーザーが想定される場合、サイト間VPN接続を利用した方が効率的な場合がある
ハンズオン概要
“test-vm”という仮想サーバーとVPNゲートウェイを作成します。
仮想サーバーはプライベートIPアドレスのみを保持し、VPNゲートウェイを経由する事でプライベートIPアドレスへのアクセスが可能な状態を目指します。
尚、VPN接続を利用する事でインターネットを経由した上でセキュアな通信が可能なわけですが、こちらを実現する為に、VPNゲートウェイにルート証明書、PCにクライアント証明書を作成する必要があります。
ハンズオンのフローは以下の様になります。
- ログイン
- 仮想ネットワークの作成
- VPNゲートウェイの作成
- 証明書の作成
- VPNゲートウェイの設定
- 仮想マシンの作成
- クライアントPCの設定及び接続
手順
※当ページでは2023年2月現在の仮想ネットワークについて解説しています。クラウドサービスは頻繁にアップデートが施されるため、仕様が若干異なる可能性があります。
ログイン
まずは、Azure公式ページからAzureにログインしましょう。
Azureアカウントを保持している方はSign inを、保持していない方はFree accountよりアカウントを作成しましょう。
仮想ネットワークの作成
検索バーに”仮想ネットワーク”と入力し、”仮想ネットワーク”を選択します。
作成ボタンを押下し、以下の条件で”test-vpn”という仮想ネットワークを作成します。
基本タブは以下の様に設定します。
IPアドレスタブは以下のように設定します。
基本タブとIPアドレスタブの設定が完了したら、セキュリティタブ、タグタブの設定はスキップして仮想ネットワークを作成します。
※仮想ネットワークの作成方法詳細については、【Azure】仮想ネットワークとは?使い方徹底解説!を参照してください。
VPN Gatewayの作成
検索バーに”仮想ネットワークゲートウェイ”と入力し、”仮想ネットワークゲートウェイ”を選択します。
VPNゲートウェイを作成する際は仮想ネットワークゲートウェイから作成します。
仮想ネットワークの設定を行っていきます。
基本タブにて以下の様に設定を行います。
- サブスクリプション:任意のサブスクリプションを指定します。
- 名前:任意の名前を付与します。今回は”test-vpn-gw”と命名します。
- 地域:“Japan East”を選択します。
- ゲートウェイの種類:“VPN”を選択します。
- VPNの種類:“ルートベース”を選択します。ポリシーベースも選択肢として存在しますが、ポイント対サイトVPNではルートベースを選択します。
- SKU:作成するVPNゲートウェイのSKUを指定します。今回はスタンダードである”VpnGw2AZ”を選択します。SKUに応じて可能な接続数やスループットなどが異なります。詳細についてはAzure公式ドキュメントを参照下さい。
- 世代:“Generation2″を選択します。Generation1, Generation2どちらも同じ価格となりますが、Generation2の方がより高いパフォーマンスを発揮します。※世代毎の詳細についてはAzure公式ドキュメントを参照下さい。
- 仮想ネットワーク:配置する仮想ネットワークを指定します。先程作成した”test-vpn”を選択します。
- パブリックIPアドレス:“新規作成”を選択します。外部からアクセス可能な様にするためにパブリックIPアドレスを新規作成します。
- パブリックIPアドレス名:任意の名前を付与します。今回は”test-vpn-ip”と命名します。
- 可用性ゾーン:配置する可用性ゾーンを選択します。冗長化が必要な場合は”ゾーン冗長”を選択します。今回は可用性ゾーン1に配置するので”1″を選択します。
- アクティブ/アクティブモードの有効化:複数のVPNゲートウェイをデプロイして可用性を向上させる場合に利用します。今回は”無効”を選択します。
- BGPの構成:BGPを利用する際に有効化します。今回は”無効”を選択します。
証明書の作成
前述の通り、証明書なければ誰でも接続できる状態となってしまいます。
セキュアな通信を担保する為に、VPNゲートウェイ及びクライアントPCに証明書を付与する必要があります。VPNゲートウェイにはルート証明書を、クライアントPCにはクライアント証明書を付与します。
今回は自己署名証明書を利用します。まずはルート証明書を作成します。
ローカルPCでPowerShellを管理者として開きます。
開いたら以下のコマンドを実行します。
$cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature `
-Subject “CN=P2SRootCert” -KeyExportPolicy Exportable `
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation “Cert:\CurrentUser\My” -KeyUsageProperty Sign -KeyUsage CertSign
コマンドが実行されたら、Windows PCの検索機能より”certmgr.msc”と検索し、certmgrを開きます。開いたら、個人>証明書と辿ると作成された証明書が確認出来ます。
“P2SRootCert”を右クリック>全てのタスク>エクスポートを押下します。
エクスポ―トウィザードが開いたら”次へ”を押下します。
次の画面でも”次へ”を押下します。
次の画面では”Base 64 encoded X.509″を選択し”次へ”を押下します。
完了を押してウィザードを終了します。
次にクライアント証明書を作成します。
PowerShellにて以下のコマンドを実行します。
New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature `
-Subject “CN=P2SChildCert” -KeyExportPolicy Exportable `
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation “Cert:\CurrentUser\My” `
-Signer $cert -TextExtension @(“2.5.29.37={text}1.3.6.1.5.5.7.3.2”)
certmgrにて”P2SChildCert”が発行されているので先程の手順でエクスポートウィザードを開きます。
秘密鍵としてエクスポートする為に以下を選択します。
次の画面はデフォルトのまま”次へ”を押下します。
次の画面ではパスワードを設定します。
エクスポート先を指定します。
VPNゲートウェイの設定
追加でVPNゲートウェイの設定を行います。
先程作成したVPNゲートウェイのリソース画面に遷移し、ポイント対サイトの構成タブを開きます。
以下の様に設定します。
- アドレスプール:今回は”192.168.1.0/24″を指定します。こちらのアドレスプールの中の1つのIPアドレスが接続される1つのPCに付与されます。※VPN Gatewayの最大同時接続数が128の為192.168.1.0/24のアドレス数で問題ありません。また、128個のIPアドレスの用意という観点で、クラスCのIPアドレス(192.168.xx.xx)を利用します。
- トンネルの種類:VPNのプロトコルを指定します。今回はWindows OS用の”SSTP”を利用します。
- 証明の種類:Azure certificateを選択します。
- ルート証明書:先程作成したルート証明書を配置します。”名前”には任意の名前を付与します。”公開証明書データ”には作成したルート証明書の中身のデータをコピー&ペーストします。先程の”Azure.cer”をメモ帳で開き、”—–BEGIN CERTIFICATE—–“と”—–END CERTIFICATE—–“以外の部分をコピーします。
仮想マシンの作成
仮想マシンを作成します。Azure Portalのトップページの検索バーに”Virtual Machine”と入力し、”Virtual Machines”を選択します。
仮想マシンの管理画面に遷移したら、右上の作成より、”Azure仮想マシン”を選択します。
基本タブにて以下の様な設定を行います。
パブリック受信ポートは”なし”を選択し、プライベートIPアドレスのみを保持する状態を作ります。他のタブは変更せず仮想マシンを作成します。
※仮想マシン作成の詳細については、【Azure】Virtual Machines(VM)とは?使い方徹底解説!を参照下さい。
クライアントPCの設定及び接続
クライアント証明書をPCにインポートします。先程保存した”clientcert.pfx”をダブルクリックし、インポートを開始します。
最初の画面では現在のユーザーを選択します。
次にインポートする証明書ファイルのディレクトリを指定します。
次にクライアント証明書を作成した際に付与したパスワードを入力します。
次の画面はデフォルトのままで”次へ”を押下します。
こちらで設定完了です。次の画面で”完了”を押下します。ポップアップが表示されますが、”はい”を選択してインポートを完了させます。
次にVPNクライアントをAzureからダウンロードします。
Azure PortalのVPNゲートウェイの”ポイント対サイトの構成”タブから”VPNクライアントのダウンロード”を押下します。
ZIPファイルがダウンロードされるので展開します。展開したら、3つのフォルダから自分のPCのビット数(32 or 64)に合ったフォルダを開き、ダブルクリックしてexeファイルを実行します。
PCの右下ツールバー上のWifiマークを右クリックし、”ネットワーク設定とインターネット設定”を開きます。
VPNタブから”test-vpn”に接続します。
Windowsの検索バーより、”リモートデスクトップ接続”を検索し、開きます。
仮想マシンのプライベートIPアドレスを利用しRDP接続します。
ユーザー名、パスワードを入力して接続できれば成功です。
関連記事