Jack of all trades

master of none. 多芸は無芸を地で行く、自作自演何でも屋。

Azure上の仮想マシンに対してVPN(ポイント対サイト)接続する

仕事の関係でAzure上に作成した仮想マシンに対してクライアントPCからVPN接続できる環境を準備する必要があり、その際の作業記録というか備忘録も兼ねてブログにまとめておきます。

基本的には下記サイトの通りに進めることで環境を構築することができたのですが。幾つかハマりどころがあったのでそのあたり補足しながら手順をまとめます。

docs.microsoft.com

1. 実現したい環境

実現したい環境の構成は以下の通りです。

といった構成でポイント対サイトのVPN接続を確立したクライアントからのみリモートデスクトップ接続やWebサイトへのアクセスできる環境の構築を目指します。
アドレス空間やサブネット、VPNゲートウェイのアドレスプールの設定は一例です。アドレスの切り方は、

だけ注意すればなんでも良いかと思います。

上述の公式ドキュメントでは、まず仮想ネットワークを作成し、その後で仮想マシンを作成するという手順になっていますが、大概の場合はまず仮想マシンを作成してから設定していく(と思う)ので、そのような手順で進めていきます。

2. 具体的な手順と注意事項

2.1. 仮想マシンの作成

仮想マシン作成の細かい手順については割愛します。公式ドキュメント等、他所をご参照ください。

押さえるべきポイントは以下の通り。

2.2. 仮想ネットワークの設定

仮想マシン作成時に作成されたリソースグループに含まれるVnetに対して以下の設定を行います。

アドレス空間の設定
f:id:sadynitro:20170201224405p:plain

※※※何故かここで仮想マシンを囲うアドレス空間(デフォルト)とゲートウェイ用のアドレス空間をそれぞれ作成しないと最終的にうまいこと接続できませんでした。この辺り誰かに詳しく教えてほしい…。

サブネットの設定
f:id:sadynitro:20170201224450p:plain

2.3. 自己証明書とクライアント証明書

ここで一旦Azureのポータルから離れてクライアントVPN接続用の証明書の作成を行います。

docs.microsoft.com

Windows10用のWindows ソフトウェア開発キット(SDK)をインストールする必要があるのでその点は注意。
(開発キットなどインストールしたくない!という方は別の手段で証明書を取得してください)
作成自体は手順に従って進めれば問題ないかと思います。

2.4. 仮想ネットワークゲートウェイの作成

クライアントからVPN接続するための口として仮想ネットワークゲートウェイを作成します。
新規作成メニューの検索から「gateway」などのキーワードで検索するとすぐ見つかります。

f:id:sadynitro:20170201224533p:plain

設定は以下の通り。 もちろんゲートウェイの種類はVPNで。VPNの種類はルートベース、SKUは実験目的であればBasicで良いと思います。仮想ネットワークは上述で設定済みのVnetを選択します。

f:id:sadynitro:20170201224553p:plain

作成された仮想ネットワークゲートウェイの設定画面で「ポイント対サイトの構成」画面を開き、アドレスプールを設定します。
ここでは「172.31.0.0/24」とします。
次に作成済みのルート証明書情報を登録します。
ルート証明書の.cerファイルをテキストエディタで開き、下の画像の通りにBASE64コードをコピーして、設定画面の公開証明書データのテキストボックスにペーストします。

f:id:sadynitro:20170201224634p:plain

f:id:sadynitro:20170201224725p:plain

※※※証明書のBASE64コードのコピー時の注意点として、開いたテキストエディタによってはそのままコピーすると改行コードが含まれてしまい、ポイント対サイトの構成を保存しようとした時点でエラーになる可能性があるので、その場合は改行を除去して(コードを1行にして)再度コピー、保存してみてください。

2.5. クライアントVPNの設定

ポイント対サイトの構成を保存したら「VPNクライアントのダウンロード」ボタンが有効になるので、64bitOSの場合は「AMD64」32bitOSの場合は「x86」を選択してダウンロードしてください。

f:id:sadynitro:20170201224737p:plain

ダウンロードしたVPNクライアントのインストールすると、タスクトレイのネットワーク接続メニューの一番上にVPN接続が表示されるようになります。 クリックすると設定メニューのVPN設定画面が開くのであとは接続するだけです。

f:id:sadynitro:20170211161825p:plain

f:id:sadynitro:20170211162027p:plain

2.6. 接続確認

クライアントブラウザから仮想マシンのローカルIP宛でIISのDefault Web Siteにアクセスできることを確認します。
ネットワークセキュリティグループの受信セキュリティ規則にhttpの許可を追加していないので、VPN接続を確立していない場合はアクセスできないはずです。

f:id:sadynitro:20170211162637p:plain

2.7. ネットワークセキュリティグループの設定

ここでさらにネットワークセキュリティグループの受信セキュリティ規則からRDPの許可を削除します。
これにより、仮想マシングローバルIP宛でもリモートデスクトップができなくなり、完全にVPN接続を確立したクライアントからのみアクセスできる環境になります。

f:id:sadynitro:20170211163235p:plain

グローバルIP宛の接続ができないことを確認します。

f:id:sadynitro:20170211163600p:plain

VPN接続を確立した状態であればローカルIP宛で接続できます。

f:id:sadynitro:20170211163548p:plain

3. まとめ

以上、Azure仮想マシン(WindwosServer2012R2)とクライアントPC(Windows10)のポイント対サイト接続環境を構築する手順でした。
最終的にVPN接続を確立したクライアントのみ、Webサイト接続、リモートデスクトップ接続できることを確認しました。
冒頭に書いた通り、基本的には公式ドキュメントに従えば構築できると思いますが、幾つか注意点・ハマりどころがあるので、躓いたら本記事を参考にしてみてください。