Azure VPN Gateway(P2S)【Azureを使いこなしたい! 11】

【今回の内容】

今回は、Azure VPN Gatewayを構成して、ローカルPCからAzure仮想ネットワーク(Vnet)へ安全にトラフィックを送信出来る、ポイント対サイト(P2S)接続を行いたいと思います。
Azure VPN Gatewayには、3つの接続構成があります。
• サイト間VPN接続(S2S):オンプレミスのデータセンターとAzure Vnetとの接続。
• ポイント対サイトVPN接続(P2S):個々のデバイスとAzure Vnetとの接続。
→Azure Vnetとオンプレミスの間で、 暗号化されたトラフィックをインターネットを介して送信します。
• VNet間VPN接続(VNet2VNet)
→Azure Vnet同士の間で、暗号化されたトラフィックをMicrosoftネットワークを介して送信します。

各仮想ネットワークに VPNゲートウェイは1 つしか作成出来ませんが、同一の VPNゲートウェイに対して複数の接続を作成することができます。
P2S接続は、オンプレミス側にVPNデバイスやパブリックIPアドレスが必要ありません。そのため、テレワークやリモート会議の場所から、AzureのVnetに接続する場合に便利です。また、管理者のみがVNetへの接続を必要とするなどクライアントが少ない場合にも、S2S の代替として使用するのがオススメです。

AzureでのAzure VPN GatewayはPaaSに分類されます。

【前提事項】

Azure VMを構築していること。(今回はWindows server2019を用いました)

1.VPNゲートウェイの作成

1-1.VPNゲートウェイの作成

※今回はAzure VM作成時に一緒に作成されたVnetを使用します。

Azure VMの作成についての詳細は、Azureを使いこなしたい! 1 ~仮想マシン Windows 10~を参照してください。

(1)Azure portalにて、<A>検索バーに[仮想ネットワークゲートウェイ]と入力します。 → <B>[仮想ネットワークゲートウェイ]をクリックします。

(2)[作成]または[仮想ネットワークゲートウェイの作成]をクリックします。

(3)<A>[サブスクリプション][地域]を選択します。[名前]を入力します。 → <B>デフォルトのままです。※1 → <C>[SKU][世代]を選択します。※2 → <D>[仮想ネットワーク]を選択します。 → <E>[ゲートウェイサブネットのアドレス範囲]を入力します。※3

※1 P2Sの構成では、ルートベースのVPNにする必要があります。

※2 今回は検証のため、[SKU]はBasicを選択しました。実際の運用にはBasic以外をご使用ください。

※3 将来ExpressRouteゲートウェイの追加などの変更のために十分な IPアドレスを確保するため、/27以上が推奨されています。

<F>デフォルトのままです。 → <G>[パブリックIPアドレス名]を入力します。 → <H>デフォルトのままです。 → <I>[次:タグ>]をクリックします。

VPNゲートウェイに関連付けられるパブリックIP アドレスリソースです。

(4)[次:確認および作成>]をクリックします。

※今回は検証のため、デフォルトのままとしました。

(5)[作成]をクリックします。

(6)デプロイが行われます。 → [リソースに移動]をクリックします。

(7)VPNゲートウェイが作成されました。

(8)<A>検索バーに[仮想ネットワーク(Vnet)]と入力します。 → <B>[仮想ネットワーク]をクリックします。

(9)作成したAzure VMとVPNゲートウェイが存在する[Vnet]をクリックします。

(10)<A>[アドレス空間]をクリックします。 → <B>[その他のアドレス範囲の追加]にVPNゲートウェイのアドレス空間を入力します。 → <C>[保存]をクリックします。

※ Azure は、ユーザーが割り当てたアドレス空間内のプライベートIPアドレスをVnet内のVPNゲートウェイに割り当てます。既存のVnetを使用する場合、プライベートIPアドレス空間をVPNゲートウェイ用に別途指定する必要があります。

これで、VPNゲートウェイの作成は完了です。

2.クライアントPCでの証明書の生成

2-1.自己署名ルート証明書、クライアント証明書の生成

※今回は、ローカルPCのWindows10に自己署名ルート証明書とクライアント証明書を生成します。

(1)<A>ローカルPCにて、[スタートメニュー]で右クリックします。 → <B>[Windows PowerShell]をクリックします。

(2)以下コマンドにて、自己署名ルート証明書を生成します。

[$cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature `
-Subject “CN=自己署名ルート証明書の名前” -KeyExportPolicy Exportable `
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation “Cert:\CurrentUser\My” -KeyUsageProperty Sign -KeyUsage CertSign]を入力します。 → Enterキーを押します。

※”Cert:\CurrentUser\My“のままの場合、インストールされる場所が”Certificates-Current User\Personal\Certificates” となります。

(3)以下コマンドにて、クライアント証明書を生成します。

[New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature `
-Subject “CN=クライアント証明書の名前” -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”)]を入力します。 → Enterキーを押します。

※”Cert:\CurrentUser\My“のままの場合、インストールされる場所が”Certificates-Current User\Personal\Certificates” となります。

※追加のクライアント証明書を生成する場合、または自己署名ルート証明書の生成後にWindows PowerShellウィンドウを閉じてしまった場合は、こちらを参照してください。【参考】マイクロソフト公式HP  P2S 用の証明書を生成してエクスポートする: PowerShell – Azure VPN Gateway | Microsoft Learn

(4)[自己署名ルート証明書]と[クライアント証明書]が生成されました。

Copy to Clipboard
Copy to Clipboard

2-2.自己署名ルート証明書のエクスポート

(1)ローカルPCにて、<A>[スタートメニュー]で右クリックします。 → <B>[ファイル名を指定して実行]をクリックします。

(2)<A>[certmgr.msc]と入力します。 → <B>[OK]をクリックします。

※certlm.msc:ローカルコンピューターの証明書、certmgr.msc:現在のユーザーの証明書

(3)<A>[個人]を展開します。 → <B>[証明書]をクリックします。 → <C>[すべてのタスク]を展開します。 → <D>[エクスポート]をクリックします。

(4)[次へ]をクリックします。

(5)デフォルトのままです。 → [次へ]をクリックします。

(6)<A>[Base 64 encoded X.509 (.CER)]を選択します。 → <B>[次へ]をクリックします。

(7)<A>[参照]をクリックして保存先を指定します。 → <B>[次へ]をクリックします。

(8)[完了]をクリックします。

(9)[OK]をクリックします。

(10)自己署名ルート証明書がエクスポートされました。

3.Azure Vnetへの接続

3-1.VPNクライアントアドレスプールの追加

(1)Azure portalにて、先ほど作成した[仮想ネットワークゲートウェイ]のブレードを開きます。 → <A>[ポイント対サイトの構成]をクリックします。 → <B>[今すぐ構成]をクリックします。

(2)<A>[アドレスプール]を入力します。 → <B>ルート証明書の[名前]を入力します。

※P2Sで接続するクライアントは、このアドレスプール内のIPアドレスを動的に受け取ります。 接続元であるオンプレミスや、接続先とするVNetと、プライベートIPアドレス範囲が重複しないようにしてください。

(3)ローカルPCにて、<A>先ほどの[エクスポートした自己署名ルート証明書]を右クリックします。 → <B>[プログラムから開く]を展開します。 → <C>[メモ帳]をクリックします。

(4)[—–BEGIN CERTIFICATE—– と —–END CERTIFICATE—–の間の部分]をコピーします。

(5)Azure portal[ポイント対サイトの構成]ブレードにて、<A>[公開証明書データ]にペーストします。 → <B>[保存]をクリックします。

※復帰や改行のない 1 つの連続した行である必要があります。スペースがありますが、問題ありません。

(6)[VPNクライアントのダウンロード]をクリックします。

(7)[フォルダーに表示]をクリックします。

(8)[エクスプローラー]が開きます。 → <A>[仮想ネットワークゲートウェイ名のフォルダ]を右クリックします。→ <B>[すべて展開]をクリックします。

(9)<A>[参照]をクリックして展開先を指定します。 → <B>[展開]をクリックします。

(10)指定した展開先に移動し、[展開したフォルダー]をダブルクリックします。

(11)[WindowsAmd64]をダブルクリックします。

(12)<A>[VpnClientSetupAmd64]を右クリックします。 → <B>[管理者として実行]をクリックします。 →  SmartScreenで[詳細][実行]をクリックします。

(13)[はい]をクリックします。

3-2.VPNクライアントの設定

(1)ローカルPCにて、<A>[スタートメニュー]を右クリックします。 → <B>[設定]をクリックします。

(2)[ネットワークとインターネット]をクリックします。

(3)<A>[VPN]をクリックします。 → <B>作成した[VPN接続]をクリックします。

(4)[接続]をクリックします。

(5)[続行]をクリックします。

(6)[接続済み]の表示に切り替わります。

※エラー702が表示される場合は、エラー720が表示された場合を参照してください。

これで、Azure VPN Gateway(P2S VPN)の構築は完了です!

1

※VPN接続時に、以下のようなエラー720が表示される場合があります。WANミニポート(IP)アダプターが、PCで正しくバインドされていない場合に発生するとのことです。【参考】マイクロソフト公式HP VPN 接続を確立しようとすると、”エラー 720: VPN 接続に接続できません”

(1)<A>ローカルPCにて、[スタートメニュー]で右クリックします。 → <B>[Windows PowerShell]をクリックします。

(2)以下コマンドにて、WANミニポート(IP)インターフェイスの名前を確認します。

[Get-NetAdapter -IncludeHidden | Where-Object {$_.InterfaceDescription -eq “WAN Miniport (IP)”}]を入力します。 → Enterキーを押します。

(3)以下コマンドにて、WANミニポート(IP)インターフェイスにバインドされているもの全てを表示します。

[Get-NetAdapterBinding -Name “ローカル エリア接続* 数字” -IncludeHidden -AllBindings]を入力します。 → Enterキーを押します。

※今回は、「リモート アクセスIP ARPドライバーが無効にはなっていない」、また「サード パーティ製フィルター ドライバーがバインドされていない」ため、WANミニポート(IP)インターフェイスドライバーを再インストールします。

(4)<A>[スタートメニュー]で右クリックします。 → <B>[デバイスマネージャー]をクリックします。

(5)<A>各[WAN Miniport]を右クリックします。 → <B>[デバイスのアンインストール]をクリックします。

※各[WAN Miniport]全てに行います。

(6)<A>上タブ[操作]をクリックします。 → <B>[ハードウェア変更のスキャン]をクリックします。

(7)WANミニポートデバイスが自動的に再インストールされます。

(8)再度、VPN接続を試みます。

※1 「リモート アクセスIP ARPドライバーが無効になっている」場合:以下のコマンドにて、有効にします。

→ [Windows PowerShell]にて、[Enable-NetAdapterBinding -Name “ローカル エリア接続* 数字” -IncludeHidden -AllBindings -ComponentID ms_wanarp]を入力します。 → Enterキーを押します。

※2 「サード パーティ製フィルター ドライバーがバインドされている」場合:以下のコマンドにて、無効にします。

→ [Windows PowerShell]にて、[Disable-NetAdapterBinding -Name “ローカル エリア接続* 数字” -IncludeHidden -AllBindings -ComponentID  ComponentID]を入力します。 → Enterキーを押します。

4.確認

4-1.Azure VMへのVPN接続

※コマンドプロンプトにて[ipconfig/all]を使用して確認します。また、実際にAzure VMにRDP接続を試みます。

(1)<A>ローカルPCの[スタートメニュー]で右クリックします。 → <B>[ファイル名を指定して実行]をクリックします。

(2)<A>[cmd]と入力します。 → <B>[OK]をクリックします。

(3)[ipconfig/all]を入力します。 → Enterキーを押します。 → ローカルPCが、AzureのVnetに接続している(IPv4アドレスが設定したアドレスプール内である)ことが確認出来ます。

(4)<A>[スタートメニュー]を右クリックします。 → <B>[Windows PowerShell]をクリックします。

(5)以下コマンドにて、リソースグループに含まれるVMとプライベートIPアドレスの一覧を表示します。

[$VMs = Get-AzVM
$Nics = Get-AzNetworkInterface | Where VirtualMachine -ne $null

foreach($Nic in $Nics)
{$VM = $VMs | Where-Object -Property Id -eq $Nic.VirtualMachine.Id
$Prv = $Nic.IpConfigurations | Select-Object -ExpandProperty PrivateIpAddress
$Alloc = $Nic.IpConfigurations | Select-Object -ExpandProperty PrivateIpAllocationMethod
Write-Output “$($VM.Name): $Prv,$Alloc”}]を入力します。 → Enterキーを押します。

※Azure Portalにて、個々のVMのブレードからでもプライベートIPアドレスの確認が出来ます。 → <A>[ネットワーク]をクリックします。 → <B>[NICプライベートIP]を確認します。

(6)<A>ローカルPCの[スタートメニュー]で右クリックします。 → <B>[ファイル名を指定して実行]をクリックします。

(7)<A>[mstsc]を入力します。 → <B>[OK]をクリックします。

(8)<A>[プライベートIPアドレス]を入力します。 → <B>[接続]をクリックします。 → Azure VMのRDP接続を行います。

※Azure VMのRDP接続方法については、Azureを使いこなしたい! 1 ~仮想マシン Windows 10~2-1. 仮想マシンへのRDP接続を参照してください。

(9)VPN接続することによって、プライベートIPアドレスでRDP接続が出来ました。

Copy to Clipboard

4-2.Azure FilesへのVPN接続

※Azure Filesの構築については、Azureを使いこなしたい! 2 ~Azure Files~を参照してください。
(1)Azure portalにて、[ストレージアカウント]のブレードを開きます。 → <A>[ネットワーク]をクリックします。 → <B>上タブ[プライベートエンドポイント接続]をクリックします。 → <C>[プライベートエンドポイント]をクリックします。

(2)<A>[サブスクリプション]を選択します。[リソースグループ]を選択または新規作成します。[名前]を入力します。 → <B>[地域]を選択します。 → <C>[次:リソース>]をクリックします。

※[地域]は、VPN接続先とするVNetと同じにする必要があります。

(3)<A>[file]を選択します。 → <B>[次:仮想ネットワーク>]をクリックします。

(4)<A>[仮想ネットワーク][サブネット]を選択します。 → <B>[次:DNS>]をクリックします。

※その他は、デフォルトのままとしました。状況に応じて変更してください。

(5)デフォルトのままです。 → [次:タグ>]をクリックします。

(6)[次:確認および作成>]をクリックします。

※今回は検証のため、デフォルトのままとしました。状況に応じて変更してください。

(7)[作成]をクリックします。

(8)デプロイが行われます。 → [リソースに移動]をクリックします。

(9)[DNSの構成]をクリックします。 → ネットワークインターフェイスの[IPアドレス]を確認します。

(10)ローカルPCにて、<A>[エクスプローラー]をクリックします。 → <B>[ネットワーク]をクリックします。 → <C>[ネットワークドライブの割り当て]をクリックします。

(11)<A>[ドライブ]を選択します。 → <B>[フォルダー]を入力します。 → <C>[完了]をクリックします。

※[フォルダー]は、[ \\先ほど作成したストレージアカウントのプライベートエンドポイントのIPアドレス\ファイル共有名]を入力します。

(12)<A>[別のアカウントを使用する]をクリックします。 → <B>[localhost \ストレージ アカウント名]を入力します。 → <C>[キー]を入力します。 → <D>[OK]をクリックします。

※[キー]は、ストレージアカウントの[アクセスキー]ブレードから確認出来ます。

(13)Azure Filesのファイル共有が確認出来ました。

BLOG POSTS

  • Continue reading
  • Continue reading
  • Continue reading
  • Continue reading
  • Continue reading
  • Continue reading
  • Continue reading
  • Continue reading
  • Continue reading
  • Continue reading
  • Continue reading
  • Continue reading
  • Continue reading
  • Continue reading
  • Continue reading
  • Continue reading
  • Continue reading