LoginSignup
2
4

Azure Marketplace の OpenVPN を使って 超簡単・安価にリモートアクセスを可能にする

Last updated at Posted at 2024-04-06

はじめに

以前に、Azure への VPN 接続を安価に実現できないかと思って、以下の記事にある Windows Server RAS 役割サービスによる、SSTP 接続を考案して検証し、記事化しています。

Windows Server RAS (SSTP) の記事

上記の方法でも、使わないときには VM を停止することができるので、Azure 標準 の 仮想ネットワークゲートウェイ(停止できない)よりも コストを削減することができます。

しかしながら、もっと 簡単に より安価に 実現する方法がないかと考え、OpenVPN によるリモートアクセスを検証してみました。

より簡単に

Windows Server RAS (SSTP) の方法は、手順が複雑でした。手順については、Windows の技術者なら 付いてこられる内容だと思いますが、そうではない人は、Windows の学習をする目的でもない限りは、敷居が高いと思います。

しかし、OpenVPN は、Marketplace から 完成版の VM を直接デプロイできるため、非常に簡単に構築することができます。

Windows Server RAS (SSTP) の記事は、Windows や Azure の機能を学習したいという人には、超おススメなコンテンツなのですが、 単純に 楽に 安価に VPN 接続環境が欲しい・・というだけなら OpenVPN をお勧めします。

より安価に

OpenVPN は、OS が Linux で動いており、VM のサイズ は 最小規模なもので運用可能です。
私が検証したところでは、Standard B1s (1 vCPU 1 GiB メモリ)で問題無く動作しています。

料金計算:サマリー
image.png

仮に 1か月間連続稼働させ、ストレージは 常にフルアクセス、通信量として 100 GB をダウンロードしたと想定した見積もりで、最大の費用は 2,830 円です。

もし、VM を全く起動しなかった場合は、ストレージコストだけが請求されて 月額 364 円です。
つまり、運用を工夫することで、月額 364 円~ 2,830円 の範囲で利用することができます。

大体、どのくらいのコストが掛かるのかをイメージいただけたかと思いますが、あとは 以下のサイトで ご自身で見積もって頂ければと思います。

Azure 料金計算ツール

さらに "料金計算の内訳" を見るには、ココ を押してください。

料金計算:内訳
image.png

コンピューティング料金は、VM を停止させられるので、VM の起動中のみ 掛かります。
最大で、月額 1,505 円 になりますが、停止させた分節約できます(1時間の単価は、2.06 円です)

ストレージは、Standard SSD で 32 GiB のサイズで済んでいるので、月額 363 円で固定です。

ストレージトランザクションは、3200 トランザクション以上は 月額 960.5 円で固定なようです。
実際には、それほど 書き込みは発生しないと思いますが、最大値で見積もっています。

ダウンロードの通信コストは、100 GB 以下は無料です。
見積もりでは、100 GB で算出していますので、それ以上 利用すると 1 GB あたり、18.19 円 が加算されます。

1. 構築手順

1-1. 利用する仮想ネットワークをデプロイする

現在、利用中の仮想ネットワークがあれば、その リソースグループ名、リージョン名、仮想ネットワーク名 を控えておきます。

新規に、仮想ネットワークを用意する場合は、事前に 作成しておきます。

この記事では、以下の仮想ネットワーク上に OpenVPN をデプロイする想定で記載しています。手順の中に出てくる名称や IP アドレスは、皆さんの 仮想ネットワーク に置き換えて参照してください。
image.png

image.png

豆知識:本記事の内容とは直接関係無いですが・・・
DNS サーバーは、10.10.10.5 で ドメインコントローラーを起動する予定があるので、私は以下のように指定しています。こうしておくと、ドメコン VM を起動した時には、10.10.10.5 が使われ、停止しているときは、Azure の 既定の DNS サーバー(168.63.129.16)が使われます。
image.png

1-2. Open VPN を Marketplace から デプロイする

OpenVPN は、Marketplace からデプロイが可能です。
つまり、構築済みのサーバーを、丸ごとデプロイして、すぐに使う事が出来るようになっています。

1-2-1. Marketplace から OpenVPN のイメージの選択をする

  1. Azure Portal を開き、検索窓に market と入力して、検索された Marketplace を選択します。
    image.png
     
  2. Marketplace の画面で、検索窓に openvpn と入力します。表示された中から、OpenVPN Inc. から提供されている OpenVPN Access Server を選択します。
    image.png
     
  3. まず、プランと価格 タブを選択して、説明欄を確認しましょう。(翻訳を後述してあります)
    ライセンスについて納得したら 作成 ボタンを押します。
    image.png

"説明" 欄 の Bing 翻訳
ライセンス持ち込み - https://www.openvpn.net からライセンスを購入するか、2つの無料の同時接続を有効にしてください。SSH経由でログインした後、VPNサーバーの管理者ユーザー名とパスワードを選択します。また、VPNサーバーにインターネットから到達できるように、管理者設定に適切なFQDNが入力されていることを確認する必要があります。

→ つまり、2 ユーザーの同時アクセスまでなら、無料で利用できます。

"事前設定された構成で開始する" を見るには ココ を押してください。

なお、事前設定された構成を選択すると、用途に応じた VM のサイズを自動的に構成してくれるようです。
image.png
事前設定された構成の一覧
image.png
ですが、「開発/テスト」を選んだとしても、以下のサイズで 全然 高額です。私が検証したミニマム構成をお勧めします。
image.png
image.png

1-2-2. ミニマムの VM 設定を行って、デプロイする

OpenVPN の 作成 ボタンを押すと、仮想マシンの作成 画面が表示されます。

凡例
緑下線:利用者様の環境に合わせて、任意に設定してください。
青下線:任意で構いませんが、私が検証で使った値です。
赤下線:今回の構築には、必須の選択肢です。

  1. 基本 タブで、各値を入力して 次:ディスク を押します。
    サイズを B1s にすることで、コストダウンしています。
    image.png
    image.png
    ※上記で入力した ユーザー名 と パスワード は、あとで SSH クライアントから接続する際に使います。
     
  2. ディスク タブで、各値を入力して 次:ネットワーク を押します。
    ディスクの種類を 既定値(Premium SSD)から下げてコストダウンしています。
    image.png
     
  3. ネットワーク タブで、各値を入力して 次:管理 を押します。
    仮想ネットワーク と サブネット は、ご利用中の環境に合わせて選択してください。
    image.png
     
  4. 管理 タブで、任意で 自動シャットダウン の構成を実施して 確認および作成 を押します。
    自動シャットダウン を構成しておくと、VM の停止し忘れを抑止できるため、コスト削減 につながります。image.png
     
  5. 確認および作成 タブでは、この VM のコストを確認できます。下図の場合は、OpenVPN のライセンス料は 無料 で、VM の利用料が 時間単価で 約 2 円 であることが判ります。
    問題なければ、作成 ボタンを押します。
    image.png
     
  6. 展開が完了すると、以下の通知が表示されます。
    私が検証した時には、2~3分くらいで、デプロイが完了しました。
    image.png
     
  7. 以下は、デプロイ完了じの画面です。リソースに移動 を押します。
    image.png
     
  8. 以下が、作成された OpenVPN の VM の 概要ページ です。
    あとで、赤枠欄の パブリック IP アドレス へ接続するため、覚えておきましょう。
    image.png

1-2-3. 管理ポート (SSH) の制限(推奨)

OpenVPN では、SSH (22 番ポート) を使って管理が行えます。
このポートが、任意のインターネット側から利用できる状態のため、ネットワークセキュリティグループ (NSG) の設定を変更して セキュリティを向上させましょう。

  1. 左ペインの ネットワーク設定 を開き、default-allow-ssh を選択します。
    image.png
     
  2. 下図の NSG 設定画面で、ソース 欄で My IP address に設定変更して 保存 を押します。こうすることで 現在 Azure Portal を操作している PC からのみ SSH 接続が出来る状態になります。
    image.png
     
  3. 以下の通知が表示されれば OK です。
    image.png
     
  4. NSG が保存されて、以下のように 注意マークが消えて、ピンクの帯の箇所に 自宅の IP アドレスが表示された状態になれば OK です。これで、自宅からしか管理できなくなり、セキュリティが向上します。
    image.png

1-3. OpenVPN の初期構成を行う

SSH クライアント を使って、OpenVPN に接続して、初期設定を行います。
この記事では、SSH クライアントとして、Tera Team を使っています。
Tera Term
https://forest.watch.impress.co.jp/library/software/utf8teraterm/

1-3-1. SSH での初期設定

  1. SSH クライアントを使って、OpenVPNパブリック IP アドレス に接続します。
    image.png
     
  2. Tera Term の場合は、初回接続時に 以下の画面が表示されます。そのまま 続行 します。
    image.png
     
  3. VM への認証を行います。
    ※VM 作成時の 管理者アカウント を使います。
    image.png
     
  4. 正常に接続されると、以下のように表示されます。
    image.png
     
  5. 以下のプロンプトに対して、yes と応答します。もし、応答しそびれて "Enter" などを押してしまったら、一旦 切断して、再度 SSH 接続すれば リトライできます。
    image.png
     
  6. それ以降の画面では、以下のように 値の確認 を求められますが、全て Enter(つまり既定値のまま)で応答して構いません。
    image.png
途中の画面を見る場合は ココ を押してください

image.png

image.png

image.png

image.png

7.以下の画面まで進んだら、黄色枠 の箇所では、管理者アカウント (openvpn) の パスワード を設定します。ここで設定した アカウント&パスワード を使って WebUI にログオンできるようになります。
image.png

8.そのあとの 以下のメッセージには、Enter キーで応答します。

> Please specify your Activation key (or leave blank to specify later):

9.最後に 以下の画面が表示されれば、初期設定は OK です。
SSH クライアントは、切断してしまって構いません。
image.png

image.png

1-4. WebUI での初期設定

  1. ブラウザを開いて 以下のアドレス に接続します。管理者向けのページに繋がります。
    https://[VM の パブリック IP アドレス]:943/admin

    続けて (安全ではありません) の箇所をクリックします。
    image.png
     
  2. 以下の画面が表示されるため、前章の黄色枠 で設定した アカウント&パスワード で Sign In します。
    image.png
     
  3. 初回は、以下の表示になるため内容を確認して Agree を押します。
    image.png
     
  4. OpenVPN のサインインができたら、左ペインの Network Settings を選択して、VPN ServerHostname oe IP Address 欄に VM の パブリック IP アドレス を入力したあと、ページを一番下まで スクロールさせます。
    image.png
     
  5. Save Settings ボタンを押して、設定を保存します。
    image.png
     
  6. これだけでは、まだ設定が反映されていません。
    以下の画面で Update Running Server を押して反映させます。
    image.png
     
  7. すると、以下のエラーになりますが、問題ありません。
    気にせず、再度 管理画面にアクセスしてサインインしてください。
    image.png

2. 接続手順

ここまで構成が完了したら、外部から リモートアクセスが可能な状態です。

2-1. User Login & 接続アプリのダウンロード

  1. ブラウザを開いて 以下のアドレス に接続します(admin が付かず 管理者ページとは違います)
    https://[VM の パブリック IP アドレス]:943/

    これで、ユーザー向けのページに繋がるため、アカウントで Sign In します。
    image.png
     
  2. 下図では、赤枠部分を押して Windows 用 クライアントアプリを ダウンロードします。その他の OS から接続する場合は、任意のアイコンを押してください。
    image.png
     
  3. 以下のようなファイル名で、ダウンロードされるため、ダブルクリックして 起動します。
    image.png
"Windows によって PC が保護されました" という画面が開いたら、ココ を押してください。

この画面は、Windows Smart Screen の機能が働いた時に表示されます。
詳細設定 の箇所を押してください。
image.png
実行 を押せば、継続できます。
image.png

4.OpenVPN Connect Setup が起動するため、ウィザードを進めて行きます。
image.png

ウィザードの途中画面を見るには、ココ を押します。

image.png

image.png

image.png

5.インストールが終わると、以下の画面になります。Finish を押して終了します。
image.png

2-2. 接続アプリ (OpenVPN Connect) の起動

  1. 検索窓などを使って、インストールされた アプリ を探します。
    image.png
     
  2. 以下のアプリ (OpenVPN Connect) を選択して、起動します。
    image.png
初回起動時の画面を見るには ココ を押してください。

image.png

image.png

image.png

image.png

image.png

image.png

3.以下の画面まで遷移したら、赤枠部分をクリックすることで、VPN 接続を開始できます。
image.png

4.パスワード を入力します(openvpn ユーザーなので、黄枠 で設定したパスワードです)
image.png

5.以下の状態になれば、VPN 接続 は成功です。
image.png

VPN 接続の Before / After

以下のサイトを使って、VPN 接続 の前後で インターネットに接続している エンドポイント のアドレスが変わる事が確認できます。

参考:IPアドレス確認 (CMAN) のサイト
https://www.cman.jp/network/support/go_access.cgi

VPN 接続前 (Before)

自宅の IP アドレスなので、マスク しています。
image.png

VPN 接続後 (After)

Azure の パブリック IP アドレス に変更されます。
なんと、OpenVPN では、既定で フルトンネル が構成されているので、PC から インターネット へのアクセスも Azure 経由となります。
image.png

必要な時だけ起動するテクニック

スマホ用に、"Microsoft Azure" という名称の "Azure mobile App" があります。
これを スマホ にインストールすれば、VM の起動停止を 手元でコントロールできます。

そのため VPN 接続をする前に OpenVPN の VM を起動したり、不用になったら 停止 をさせる事もできるため、VM 稼働のコストを削減できますね。

Azure mobile app

NAT を使わずに通信させるには?

ここまでの構築でも、Azure と問題無く通信できていると思いますが、VPN クライアント -> Azure への片方向の通信になっています。

NAT が使われているため、このままでは、Azure -> VPN クライアント の通信は行えません。
これを可能にするための追加設定を、以下の記事で説明しています。必要に応じて 追加構成いただくと良いと思います。

参考

以下の OCI を使った OpenVPN の記事を見かけた際に、Azure でやってみたらどうだろう・・と思い立つことができました。感謝です。

2
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
2
4