HONDA LABO

本田研究室

Azure P2S VPNをやってみた

AzureのP2S VPNをやったのでメモを残しておきます。

まずAzureのVPNには、P2SとS2Sがあります。それぞれ、Point to Siteと、Site to Siteで、P2Sは端末とAzureを、S2Sは拠点とAzureをVPN接続する接続方式です。今回は、このうちP2Sをやってみました。

手順概要

手順は以下の流れになります。

  1. VNet を作成する
  2. VPN ゲートウェイを作成する
  3. 証明書の生成をする(ルート証明書、クライアント証明書)
  4. VPN クライアント アドレス プールの追加する
  5. トンネルの種類と認証の種類を指定する
  6. ルート証明書の公開キー情報のアップロード
  7. VPN クライアントの設定を構成する
  8. Azure に接続する

参照:P2S VPN と証明書認証を使用して VNet に接続する: ポータル - Azure VPN Gateway | Microsoft Docs

 

手順のポイント

Docsに沿って実施すればできました。

VPNGatewayの作成はけっこう時間かかります。僕はDocsに記載の通り、45分くらいかかりました。P2Sの場合には、ポリシーベースのルーティングとする必要があります(ルートベースのルーティングはNG)

証明書作成は、以下のDocsにコマンドがあるので、それで実行すればOKです。

P2S 用の証明書を生成してエクスポートする: PowerShell - Azure VPN Gateway | Microsoft Docs

ぼくはWindows10の端末で実施しましたが、以下コマンドでルート証明書を作り、

$cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature `
-Subject "CN=P2SRootCert" -KeyExportPolicy Exportable `
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation "Cert:\CurrentUser\My" -KeyUsageProperty Sign -KeyUsage CertSign

 

続けて以下コマンドでクライアント証明書を作るだけです。

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")

 

VPN クライアント アドレス プールは適当な値で大丈夫です。192.168.1.0/24など。VPN接続した際に、このプールからIPアドレスが払い出されます。

「VPN クライアントの設定を構成する」の手順では、以下の「Download VPN Client」からVPNの構成をダウンロードします。

f:id:Lync:20220218130813p:plain

https://docs.microsoft.com/ja-jp/azure/vpn-gateway/vpn-gateway-howto-point-to-site-resource-manager-portal

ダウンロードしたファイルにxmlファイルが含まれているので、これをAzure VPNクライアントにインポートすればOKです。Azure VPNクライアントはMicrosoftストアからダウンロードが可能です。

 

その他

Docsを見るとクライアント証明書の失効などもできるようです。別途試してみたいと思います。