はじめに
社内ネットワークで、445 番 ポート(SMB)が開放されていないこと、しばしばありますよね。
今回は、そんな場合でも Point-to-Site (P2S) VPN を使用して、外部に SMB ポートを開放せず、Azure Files をマウントする手順をご紹介します。
この記事のゴール
Azure Files に対し、P2S VPN を構成し、Private Endpoint を使用してマウントするまでをゴールとします。
前提条件
- Windows 10
- Azure Subscription を保有していること
- Azure PowerShell Module をインストール済みであること
>ver
Microsoft Windows [Version 10.0.19043.1165]
全体構成
VPN Gateway に証明書をインポートし、クライアントから Private IP アドレスによるマウントを行います。
実際の構成は下図の通りです。
手順
では、ここから実際の手順を見ていきます。
1. 仮想ネットワークの作成
まずは、仮想ネットワークを作成します。今後は、この仮想ネットワーク内に、VPN Gateway や Azure Files にアタッチする Private Endpoint を作成します。
詳細な作成手順は、こちらの Docs を参考にしてください。
なお、「3. GatewaySubnet の作成」で VPN Gateway をデプロイするための専用サブネットを作成しますが、この段階では Subnet01
のみを作成してください。
仮想ネットワーク作成時の最終的な検証が完了すると、下図のようになります。
2. Azure Files の作成
マウント対象となる Azure Files を作成します。
詳細な作成手順は、こちらの Docs を参考にしてください。
今回は、以下のような設定をしました。リソース設定時、「詳細設定」以降のブレードは既定のままとしています。
2-1. File Share の作成
実際にマウントする File Share を作成します。今回は、images
という名前で作成します。
2-2. Azure Files に対する Private Endpoint の作成
images
に対して Private IP アドレスを使用して接続するために、Private Endpoint を作成します。
Azure Portal で、下記スクショの通りにリソースを構成します。
Private Endpoint の作成が完了すると、Azure Portal からは下図のようにリソースを確認することができます。
3. GatewaySubnet の作成
VPN Gateway を Azure にデプロイするには、あらかじめ GatewaySubnet
という専用のサブネットを作成する必要があります。
「1. 仮想ネットワークの作成」で作成した仮想ネットワークに移動し、下図のように「+ ゲートウェイサブネット」から GatewaySubnet
を作成します。
4. VPN Gateway の作成
VPN Gateway を作成します。以下の設定値に気を付けて作成してください。
- ゲートウェイの種類:VPN
- VPNの種類:ルートベース
今回は、以下の設定を行いました。
※なお、VPN Gateway のデプロイには 1 時間弱かかります。この手順も後半に差し掛かるので、この辺で一旦コーヒーブレイクしましょう。。!
5. root 証明書、クライアント証明書の作成
さて、しっかり休憩できたでしょうか?後半戦も頑張っていきましょう!
ここでは、VPN 接続時に使用する証明書を作成します。
参考手順はこちらです。
# ルート証明書を作成
$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")
certmgr.msc から、作成した証明書を確認できます。
6. VPN Gateway にクライアントプールを設定
「4. VPN Gateway の作成」にてデプロイした VPN Gateway に対し、クライアントプールを設定します。
クライアントプールは、その名の通り、クライアントが接続時に使用する IP アドレスの範囲を指定します。既存の仮想ネットワーク、オンプレミス側のネットワークセグメントと重複しないように設定する必要があります。
今回は、「172.16.0.0/24」とします。
7. root 証明書を Azure にアップロード
「5. root 証明書、クライアント証明書の作成」にて作成した root 証明書を Azure にアップロードします。
Azure に証明書をアップロードするには、作成した証明書を Base64 エンコードする必要があります。
途中の選択肢は下記を設定してください。
- 「いいえ、秘密鍵をエクスポートしません」
- 「Base64 encoded X.509」
エクスポートしたファイルを任意のエディタで開き、改行コードを消去して 1 行にします。
今回はサクラエディタを使用しました。
上記の青く囲われている部分(-----BEGIN CERTIFICATE----- から -----END CERTIFICATE----- まで)をコピーし、Azure Portal から VPN Gateway に証明書をセットします。
8. 接続用の VPN Client の設定
いよいよ、VPN Client をダウンロードし、ローカルに展開します。
8-1. サーバ証明書のインストール
VpnServerRoot をダブルクリックして、サーバ証明書をインストールします。
8-2. VPN Client のインストール
VPNClientSetupAmd64 をダブルクリックして、 VPN Client をインストールします。
「VPN の設定」から、上記で構成した VPN へ接続します。
「接続」をクリックします。
9. Windows Explorer からマウント
「ネットワークドライブの割り当て」をクリックします。
「別の資格情報を使用して接続する」を選択し、「完了」をクリックします。
資格情報を入力します。今回は、Azure AD 認証を有効化していないため、アクセスキーを用いた認証を行います。
以下の値を入力してください。
- Email:
localhost\<Storage アカウント名>
- Password:
アクセスキー(Azure Portal から確認可能)
接続できました。あとは、通常のファイルサーバと同様の操作感で、Azure Files をご利用いただけます。
まとめ
今回は、Azure Files に対し、P2S VPN を構成し、Private Endpoint を使用してマウントするまでの手順を確認しました。
SMB ポートの開放をできない場合、お役立ていただければと思います。