Azure ポイント・トゥ・サイト(Point-to-Site)VPN トンネルのセットアップ方法
Dec 17, 2024
この記事では、 Netwrix Access Analyzer を実行している Windows サーバーから、ポイント・トゥ・サイト(Point-to-Site)VPN 接続をセットアップする手順を順を追って説明します。これにより、すべての Azure SQL データベースを発見し、監視できます。
背景
Microsoft Azure クラウドで SQL データベースをホストする場合、外部ネットワークからそれらのデータベースにアクセスする必要が生じることがあります。接続を設定する方法は 2 通りあります:
- パブリック エンドポイント— パブリック エンドポイントは、外部アプリケーションがアクセスできるように、各 Azure SQL データベースごとに定義できます。セキュリティのため、データベースへのアクセスが必要な外部ネットワーク アドレス プールの IP アドレス(クライアント アドレス)をホワイトリストに登録する必要があります。
- 仮想プライベート ネットワーク(VPN)— 別の方法として、外部ネットワークまたはアプリケーションと、Azure SQL データベースをホストしている Azure 環境の間に VPN 接続を設定できます。このオプションでは、Azure SQL データベースに対するパブリック エンドポイントを定義する必要はありません。VPN 接続は、サイト間(site-to-site)またはポイント対サイト(point-to-site)のいずれかにできます:
- サイト間(site-to-site)VPN 接続 により、外部ネットワーク全体で動作するアプリケーションが Azure SQL データベースにシームレスにアクセスできます。
- ポイント対サイト(point-to-site)VPN 接続 は、Azure の外部にある個々のクライアント コンピューターに固有のものです。これは、このブログ記事で取り上げるオプションです。
Azure ポイント・ツー・サイト VPN 設定
ステップ 1. ルート証明書を作成します。
Azure の証明書認証を使用する場合、認証にはクライアント証明書が必要です。そのため、最初のステップとして自己署名のルート証明書を作成してエクスポートします。以下の PowerShell スクリプトを、Windows 10 または Windows Server 2016 を実行しているコンピューターで実行してください。(または、Windows 10 SDK がインストールされている場合は、自己署名証明書を作成するために makecert ユーティリティを使用できます。)
$cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature `
-Subject “CN=AzureRootCert” -KeyExportPolicy Exportable `
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation “Cert:CurrentUserMy” -KeyUsageProperty Sign -KeyUsage CertSign
このスクリプトは、Certificates-Current userPersonalCertificate に AzureRootCert という名前のルート証明書を作成します。証明書マネージャー ツール(certmgr.exe)を使用して表示できます:
ステップ 2. クライアント証明書を作成します。
以下の PowerShell スクリプトを使用して、クライアント証明書を作成します。このスクリプトは、作成日から 6 年間有効なキーを生成します。要件に合わせて数値を調整してください。
New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature `
-Subject “CN=AzureChildCert” -KeyExportPolicy Exportable `
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation “Cert:CurrentUserMy” `
-NotAfter (Get-Date).AddYears(6)`
-Signer $cert -TextExtension @(“2.5.29.37={text}1.3.6.1.5.5.7.3.2”)
これは、次の名前のクライアント証明書を作成します:AzureChildCert 。これは「Certificates-Current userPersonalCertificate」に作成されます。Certificate Manager Tool を使用しても表示できます:
ステップ 3. ルート証明書の公開キー部分をエクスポートします。
次に、ステップ 1 で作成したルート証明書の公開キー部分をエクスポートする必要があります。
3.1. 開始するには、以下のように Certificate Export Wizard を起動します:
"Export..." option highlighted."
decoding="async"
/>
3.2. Certificate Export Wizard のようこそ画面で、Next をクリックして続行します。
3.3. 「Export Private Key」画面で、デフォルトの「No, do not export the private key」を選択し、Next をクリックします。
3.4. 「Export File Format」画面で、Base-64 encoded X.509 (.CER) を選択し、Next をクリックします。
3.5. 「File to Export」画面で、証明書を保存したい場所を参照して選択し、証明書名を指定したうえでNext をクリックします。
3.6. 次の画面で Finish をクリックして証明書をエクスポートします。このファイルの情報は、Azure VPN の構成に向けた後続の手順で必要になります。
ステップ 4。クライアント証明書をエクスポートします(オプション)。
この手順が必要になるのは、証明書を作成するために使用したサーバー以外のサーバーから Azure への VPN 接続を構成する必要がある場合のみです。
4.1. 次のように「証明書のエクスポート ウィザード」を起動します:
4.2. 「証明書のエクスポート ウィザード」のようこそ画面で 次へ をクリックして続行します。
4.3. 「プライベート キーのエクスポート」画面で はい。プライベート キーをエクスポートします を選択し、次に 次へ をクリックします。
4.4. [Export File Format] 画面で、既定のオプションを選択します:
4.5. クライアント証明書のパスワードを指定します。この証明書は Azure VPN への認証に使用できるため、強力なパスワードで保護してください。
4.6. [File to Export] ウィザード画面で、ファイル名を指定して Next をクリックします。
4.7. 設定内容を確認して Finish をクリックして証明書をエクスポートします。
ステップ 5. 仮想ネットワーク ゲートウェイを構成します。
次に、Azure ポータルにログオンして仮想ネットワーク ゲートウェイを探す必要があります。存在しない場合は、先に進む前に作成してください(仮想ネットワークと Gateway サブネットの作成については、Azure のドキュメントを参照してください)。
5.1. 仮想ネットワーク ゲートウェイのハイパーリンクをクリックします。私のものは Gateway-pkjuebl4yqscro という名前です。
5.2. 設定画面で Point-to-site configuration のリンクをクリックします。
5.3. 手順 3 でエクスポートしたルート証明書を見つけ、任意のテキスト エディターで開いてください。証明書の内容は、下のスクリーンショットとよく似たものになります。Azure に永久に残すつもりはないため、証明書データの全文をあえてすべて表示しています。この証明書は、このブログを書く目的のためだけに作成しました。
5.4. テキスト エディターで改行を削除してください。Azure は証明書データがすべて 1 行にあることを想定しています。キーの文字を一切消さないよう注意してください!その後、証明書データをクリップボードにコピーします。
5.5. 次に、Azure ポータルで仮想ネットワーク ゲートウェイの Point-to-Site 構成画面に戻ります。ページの Root Certificate セクションで:
- 証明書の名前を入力します。
- 手順 5.3 の証明書の内容を Public certificate data
- 次を確認してください。 Tunnel Typeは IKEv2 and SSTP (SSL) に設定されており、Authentication の Type は Azure certificate に設定されていること。
「Save」をクリックして設定を保存します。
ステップ6。VPN クライアント パッケージをダウンロードして実行します。
6.1. この時点で、次のスクリーンショットに表示されているリンクを使って VPN クライアントをダウンロードしてください:
6.2. ダウンロードされるのは、3 つのディレクトリを含む zip ファイルです。そのうち 2 つには、32 ビットおよび 64 ビットのプラットフォーム向けの VPN クライアント ソフトウェアのセットアップ ファイルがあります。3 つ目のディレクトリ(Generic)には、VPN 設定情報ファイルが含まれています。
64 ビットの Windows オペレーティング システムを使用している場合、WindowsAmd64 ディレクトリに移動して VPN クライアント パッケージを実行してください。これにより vnet-xxxxxxx という名前の Azure vnet が作成されます。私の場合、名前は vnet-fvmisql でした。
ステップ7。VPN 接続をセットアップします。
新しい VPN 接続プロファイルを選択し、Connect をクリックします。うまく動けば(そして本当にうまくいくことを願っています)、これで完了です!
ただし、うまくいかない場合もあります。次のエラー「Error 798 – A certificate could not be found that can be used with this Extensible Authentication Protocol」が表示されることがあります。その場合は、以下の手順に従って動作する VPN 接続を手動で設定する必要があります。
ステップ 8. 必要に応じて、VPN 接続を手動で設定します。
他のコンピューターで VPN 接続をセットアップする予定がある場合は、そのコンピューターにクライアント証明書をインポートする必要があります。
8.1. 「ネットワークと共有センター」を開き、「Set up a new connection or network」をクリックします。
8.2. 「接続オプションの選択」画面で、「職場に接続」を選択し、 次へ をクリックします。
8.3. 「すでにある接続を使用しますか?」画面で いいえ。新しい接続を作成します を選択し、 次へ をクリックします。
8.4. 「どのように接続しますか?」画面で 自分のインターネット接続を使用する(VPN) を選択します
8.5. Azure からダウンロードした VPN クライアント パッケージの Generic フォルダーに移動します。VpnSettings ファイルを開き、Azure VPN ゲートウェイのパブリック名をコピーします。
8.6. 「接続するインターネット アドレスを入力してください」画面で、コピーしたテキストを「インターネット アドレス」ボックスに貼り付けます。宛先名を指定し、それ以外のオプションは既定の設定のままにします。作成 をクリックします。
8.7. 「Network and Sharing Center」に戻り、Change adapter settings 「リンク」をクリックします。設定した VPN 接続を右クリックし、Properties を選択してください。VPN アドレスまたはホスト名を確認します。
8.8. [Security] タブに移動します。“Data encryption” の下で Require encryption (disconnect if server declines) を選択します。「Authentication」では Microsoft Smart Card or other certificate (encryption enabled) を選択します。
8.9. 「Authentication」セクションのProperties ボタンをクリックします。Use a certificate on this computer オプションを選択し、OK をクリックします。
8.10. 「Networking」タブをクリックし、Internet Protocol Version 4 (TCP/IPv4) を選択します。次にProperties ボタンをクリックします。
8.11. Advanced ボタンをクリックします。Use default gateway on remote network のチェックを外し、OK をクリックします。
8.12. タスク バーでネットワーク アイコンをクリックします。先ほど作成した Azure VPN 接続プロファイルを選択し、Connectをクリックします。
これで Azure VPN ゲートウェイに接続され、プライベート エンドポイントを使用して Azure SQL データベースとの操作を開始できる状態になっているはずです。
Netwrix StealthAUDIT を実行しているオンプレミス サーバーに VPN ゲートウェイを構成すれば、Netwrix StealthAUDIT for Azure SQL のジョブを実行して、Azure SQL 環境の監査を開始できます。
SQL Server データベースの保護
SQL Server には非常に機密性の高い情報が含まれることが多いため、攻撃者にとって格好の標的になります。SQL データベースのインスタンスはネットワーク全体に展開されることが多いため、データベース管理者(DBA)には、含まれている機密データを適切に保護するための効果的なツールが必要です。
Netwrix Access Analyzer は役立ちます。ユーザー権限やデータベース設定をレポートし、徹底した脆弱性評価を提供し、Azure SQL データベースに保存されている機密データを検出できます。さらに ユーザーのアクティビティを綿密に監視 し、実行されている SQL ステートメントの種類に基づいて、またはユーザー名、アプリケーション、実行時間などの条件を組み合わせて、特定のアクションを監査(audit)することも可能です。
Netwrix Access Analyzer で SQL を安全に保護する
よくある質問
ポイント対サイト VPN(point-to-site VPN)とサイト対サイト VPN(site-to-site VPN)とは何ですか?
ポイント対サイト VPN(point-to-site VPN)接続は、Azure の外部にある特定のサーバーまたはデスクトップに対応するのに対し、サイト対サイト VPN(site-to-site VPN)接続は、ネットワーク全体を Azure に接続するためのものです。
Azure のポイント対サイト(point-to-site)でサポートされている VPN の種類は何ですか?
Azure のポイント対サイト(point-to-site)VPN は、Secure Socket Tunneling Protocol(SSTP)、OpenVPN、IKEv2 VPN の 3 種類の VPN 接続をサポートしています。
共有する
もっと詳しく
著者について
Joe Dibley
セキュリティリサーチャー
Netwrix のセキュリティリサーチャーであり、Netwrix Security Research Team のメンバーです。Joe は Active Directory、Windows、およびさまざまなエンタープライズソフトウェアのプラットフォームとテクノロジーの専門家であり、新たなセキュリティリスク、複雑な攻撃手法、そしてそれに関連する緩和策と検知について研究しています。