5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure 環境に P2S VPN (basic SKU) でつなげる (GUI / Azure Portal 編)

Last updated at Posted at 2023-11-13

こんにちは駆け出しアーキテクトのやまぱんです。
以前にこんな記事を書きました。

じゃあ次は P2S もやってみようということで今回は P2S 環境を作ります。
ただし、今回は VPNゲートウェイ の SKU を basic で作ります。

誰かの役に立てば幸いです。
コメントなどあれば是非いただければと思います👸

Azure VPN Gateway の接続方法

そもそも Azure VPN Gateway の接続方法は以下の3種類あります。

  • S2S / Site to Site 接続
    他クラウド環境と接続したり、オンプレミス環境と接続する
  • V2V / VNet to VNet 接続
    Vnet 同士 の VPN 接続
  • P2S / Point to Site 接続 (今回はこちら)
    クライアントPCとAzure の仮想ネットワークとの接続

前置き

vpngwのSKU

・VPN Gateway の価格
https://azure.microsoft.com/ja-jp/pricing/details/vpn-gateway/

2023-11-13_20h58_26.png

ただ、SKU:VpnGw1 でも一時間当たり 28.4250円、一か月あたり20,466円
一方、SKU: basic だと一時間当たり、5.39円、一か月あたり3,880円
と結構な違いがあります。

basic SKU だと、S2SVPN は構成できないのですが、今回の P2SVPN は構成することができます。
なので今回は SDGs の為にも、basic SKU を利用してP2S を構成します。
ただし、basic の VPNゲートウェイは Azure Portal からはデプロイできません。
そのためAzure PowerShell や Azure 公式認定の IaC ツールである bicep などを用いてデプロイする必要があります。

basic SKU の VPN ゲートウェイは Azure Portal からはデプロイできない。
(VPNゲートウェイでbasic SKU を使う場合は完全 GUIでのデプロイは出来ない。)

完全 GUIでのデプロイは出来ないので、(GUI / Azure Portal 編) と書いてありながらも、一部PowerShell で実施している箇所があります。

・Gateway の SKU

【参考】こちらの記事では basic SKU 以外の VPN ゲートウェイを GUI ・Azure Portal でデプロイされてて完全GUIで実施されています~

https://qiita.com/dessin/items/32492d563279d4cc2bf4#vpn-gateway%E3%81%AE%E4%BD%9C%E6%88%90

やりたいこと

おうちの Windows PC と Azure のネットワーク(Vnet-Hub) をつなげたい。
ついでに Azure 上の Windows VM は DNSサーバーにし、Ubuntu VM は Web サーバーにして、おうちから名前解決してPrivate IP で Webサイトにアクセスしたい。

As is と To be

As is

Bastion および Bastion Subnet は VM 接続に便利なのでデプロイしてますが必須ではありません。
作業開始前 は こんな感じの環境
2023-11-13_21h40_56.png

以下をクリックすることで上記の bastion がないバージョンのシンプルな環境をデプロイできます。
Deploy to Azure

デプロイするときはパラメーターファイルをコピーして、適宜編集して貼り付けると同じような構成になります。(参考)

To be

作業完了後 は こんな感じの環境になってることが理想
2023-11-13_21h31_40.png

手順

VPNゲートウェイ(basic sku) の作成

早速です。

先に述べたように Azure Portal からは Basic SKU を選択することができません。
2023-11-13_22h18_02.png
Azure Portal からでは Basic SKU がない!

なので今回は Azure PowerShell を用いて作成します。
下記に既存の Vnetに対して Basic sku のVPNゲートウェイ をデプロイする Azure PowerShellスクリプトを置いてます。
https://github.com/aktsmm/Scripts/blob/main/ps/VPNGateway/VPNGW_add.ps1
これを使って、まず basic SKU のVPNゲートウェイ をデプロイします。
少し待ちますが、10 分もあればできました。

アドレスプールの入力

[作成したVPNゲートウェイ] → [ポイント対サイトの構成] と遷移して、"アドレス プール" を入力して、[保存] をクリックします。
image.png

結構時間がかかります。
私の場合 1 時間ちょっとまちました。

ここで入力するアドレスプールが Vnet のアドレス空間と重複していると下記のようなエラーがでます。
image.png
今回は10.200.0.0/24 を入力しました。
image.png

ルート証明書の作成と Azure へのアップロード

クライアント側でPowerShellを立ち上げて下記のコマンドを実行します。

PowerShell
# 自己署名ルート証明書の作成
$cert = New-SelfSignedCertificate -Type Custom `
            -KeySpec Signature `
            -Subject "CN=P2SRootC" `
            -KeyExportPolicy Exportable `
            -HashAlgorithm sha256 `
            -KeyLength 2048 `
            -CertStoreLocation "Cert:\CurrentUser\My" `
            -KeyUsageProperty Sign `
            -KeyUsage CertSign

# クライアント証明書の作成
New-SelfSignedCertificate -Type Custom `
    -DnsName P2SRootC `
    -KeySpec Signature `
    -Subject "CN=P2SChildC" `
    -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")

[Windows + R キー]  → [certmgr.msc] を入力して OK

こんな感じで作成した自己署名ルート証明書とクライアント証明書が確認できます。
image.png

  • 作成した自己署名ルート証明書を探し、右クリックして ”すべてのタスク” → ”エクスポート” を選択します
  • 次へをクリックします
  • いいえ、秘密キーをエクスポートしませんをクリックします
  • Base 64 encoded X.509をクリックします
  • エクスポート先を選択してクリックします
  • エクスポートした証明書を vscode やメモ帳で開きVPNゲートウェイに登録します。
    image.png

その後、[保存]を押す、数分まって画面を再読み込みすると VPN クライアントのダウンロードが可能になるので、ダウンロードする。

P2S VPN 接続(クライアント側)

image.png
上記のようなフォルダがダウンロードされますので展開します。

下記の "CRT_0 ファイル" の名前を変更して拡張子を .cer に変更し、ダブルクリックしてサーバー証明書をインストールします。
image.png

image.png

image.png

つぎに展開したフォルダ内の [WindowsPowershell] を選択して、スクリプトを実行します。
image.png

その後、クライアント側の VPN メニューに下記がでるので「接続」する
image.png

接続確認

ipconfig

クライアント側で ipconfig を打つとVPNに使われるNICが追加されているのがわかる
image.png

ping による疎通確認

クライアント側から Azure 上の Ubuntu/Webサーバ (10.100.1.4)に対してpingの疎通確認
image.png

FQDNによるWebサーバーへのアクセス確認

ここでは設定や説明を省いていますが、ローカルのクライアント PC から Azure 上の IaaSで立てた DNSサーバー(10.100.1.5)に設定した web.ksk.yamapan.tokyo の名前解決をして、Ubuntu/Webサーバ (10.100.1.4) にアクセスし、http ページが表示されることも確認済です。(DNS周りが気になる方は、参考をご覧ください。)
image.png

参考

P2S接続してる方の記事です

WebサーバやDNS周りについて

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?