弊社のウェブページの改善のためにクッキーを使用しています。弊社のクッキーポリシーをお読みください。

NAS 325

リバースプロキシの紹介

NASとアプリをもっと安全にする方法を紹介します

2023-12-08

コースの目標

このコースを修了すると、下記のことができるようになります:

  1. リバースプロキシドメインを使用して、複数のNASの安全な接続を確保します。
  2. リバースプロキシドメインを使用して、アプリのHTTPS接続のセキュリティを向上させます。

前提条件

受講前提条件:

NAS 324:HTTPSを使用してNAS通信を保護する

次の項目についての知識を持つ受講生を対象としています:

HTTP/HTTPS


概要

1. リバースプロキシとは何ですか?

2. 複数のNASデバイスの接続を保護

2.1 プロキシドメインの追加

2.2 既存のプロキシドメインにルールを追加

3. NASアプリのセキュリティをアップグレード

3.1 リバースプロキシの活用:Jellyfin

3.2 リバースプロキシの活用:ownCloud

3.3 HTTPS接続の設定:Syncthing

3.4 リバースプロキシの活用:Nextcloud

3.5 HTTPS接続の設定:Plex Web

4. プロキシドメインとルールの編集

4.1 プロキシドメインの編集と削除

4.2 プロキシドメインルールの編集と削除





1. リバースプロキシとは何ですか?

Web ブラウジングはますます安全になってきています。ASUSTOR NAS上のほとんどのアプリはWebブラウザ経由で使用しますが、必ずしもHTTPSをサポートしているとは限りません。
リバースプロキシサーバは、クライアントがWeb 情報を提供する際に、送信データのセキュリティを保護するのに役立ちます。有効なHTTPS証明書を持つASUSTOR NAS上のリバースプロキシサーバーは、外部HTTPS接続によって送信データを保護します。
ADM 3.5.2 では新機能として「リバースプロキシ」が追加されました。リバースプロキシサーバーは、保護されていないコンテンツまたは Web アプリの HTTPS 接続を実行するために使用されます。リバースプロキシサーバを有効にして、NAS上のドメイン名を設定します。そして、有効な証明書を申請する方法について、下記のリンクにてご参照ください:
NAS 324: Using HTTPS to Secure NAS Communication



2. 複数のNASデバイスの接続を保護

ローカルネットワーク内に複数のNASを設置し、外部からhttpsで安全に接続したい場合には、ADMで1つのNASのリバースプロキシサーバを使用することにより、複数のNASの安全な接続を確保することができます。すべてのNASを外部ネットワークに開放し、異なるドメイン名を申請する必要はありません。



2.1 プロキシドメインの追加

このNASのドメインを使用して、別のNASのADMにHTTPSでログインするには、まずプロキシドメインを追加する必要があります。


ステップ 1

  • ADMの初期設定で「リバースプロキシ」をクリックします。


ステップ 2

  • 「追加」をクリックします。
  • 「新規プロキシドメインを追加」を選択し、「次へ」をクリックします。



ステップ 3

  • 識別するための「プロキシドメインの名前」を入力します。例:ASUSTOR NAS ADM
  • 「HTTPS」と「サーバー名」を選択します。
  • 未使用の「ポート番号」を入力します。例:8880
  • 「ネットワークインターフェイス」を選択します。
  • このプロキシドメインルールの「パス」を入力します。例:/as6602t
  • 「ポートフォワーディングを有効にします」チェックを入れ、「次へ」クリックします。

※補足:このプロキシドメインにサービスが1つだけある場合、パスは「/」を設定することができます。他のルールを追加したい場合、「編集」をクリックしてパスを追加します。


ステップ 4

  • 識別するための「リバースプロキシドメインの名前」を入力します。
  • 「HTTP」を選択し、「ホスト名」にNASのLAN IPを入力します。例:192.168.xxx.xxx
  • 「ポート番号」を入力します。例:8000(ADM HTTPログインポート)
  • リバースプロキシドメインに特定のパスがある場合、「パス」を入力します。ADM ログインでは特定のパスが必要ないので、スラッシュ「/」でOK。
  • 「テスト接続」をクリックし、リバースプロキシドメインの情報が正しいことを確認し、「次へ」をクリックします。


ステップ 5

  • 設定した内容を確認し、「終了」をクリックして完了します。

  • 完了すると、リバースプロキシの画面にプロキシドメインの情報が表示されます。


ステップ 6

  • Webブラウザにプロキシドメインを入力すると、リバースプロキシサーバーが 「http://192.168.xxx.xxx:8000/」 にリダイレクトします。
  • 外部からこのプロキシドメインの HTTPS URL を使用して、別の NAS に接続し、ADM にログインします。元のNASにログインするには、同じMyASUSTORドメイン名を使用するか、別のNASにログインするために設定されたポートとパスを追加して、有効なHTTPS証明書を使用してHTTPSで安全に接続します。
    リバースプロキシサーバは、ADMを開いてHTTPSで別のNASにログインするために使用されます。ログイン後、安全な接続で必要なサービスやアプリを使用するために、他のサービスやアプリは独自のリバースプロキシポートを設定する必要があります。

Chromeブラウザで:


Firefoxプラウザで:



2.2 既存のプロキシドメインにルールを追加

既存のプロキシドメインに新規ルールを追加することで、別のパスで別のサービスを使用することができます。本章では、既存のプロキシドメインに別のNASのADMにログインするために、リバースプロキシルールを追加する方法を紹介します。


ステップ 1

  • リバースプロキシ画面で「追加」をクリックします。
  • 「既存のプロキシドメインに新規ルールを追加する」を選択し、「次へ」をクリックします。



ステップ 2

  • ルールを追加するプロキシドメインを選択します。例:https://yourddns.myasustor.com:8880
  • 新規ルールのパスを入力し(例:/as5304t)、「次へ」をクリックします。

※補足:この設定では、プロキシドメインのドメイン名とポート番号を変更することができません。また、別のパスを入力する必要があります。


ステップ 3

  • 識別するための「リバースプロキシドメインの名前」を入力します。例:AS5304T
  • 「HTTP」を選択し、「ホスト名」にNASのLAN IPを入力します。例:192.168.xx.xx
  • 「ポート番号」を入力します。例:8000(ADM HTTPログインポート)
  • リバースプロキシドメインに特定のパスがある場合、「パス」を入力します。ADM ログインでは特定のパスが必要ないので、スラッシュ「/」でOK。
  • 「テスト接続」をクリックし、リバースプロキシドメインの情報が正しいことを確認し、「次へ」をクリックします。


ステップ 4

  • 設定した内容を確認し、「終了」をクリックして完了します。

  • 完了すると、リバースプロキシの画面にプロキシドメインの情報が表示されます。


ステップ 5

  • このプロキシドメインを入力すると、リバースプロキシサーバーが「https://yourddns.myasustor.com:8880/as5304t/」を「http:// 192.168.xx.xx:8000/」 にリダイレクトします。
  • 外部からこのプロキシドメインのHTTPS URLを使用して、新規追加された別のNASに接続し、ADMにログインします。

Chromeブラウザで:


Firefoxプラウザで:




3. NASアプリのセキュリティをアップグレード

NASでHTTPSを使用できないアプリは、リバースプロキシサーバを使用してリモートのHTTPS接続を有効にすることができます。本章では、特定の通信ポートを必要とし、NASにインストールされているHTTPS証明書を直接使用できないアプリをいくつか紹介します。


3.1 リバースプロキシの活用:Jellyfin

JellyfinのDocker版では、NASのデフォルトのWebサーバーを使用していません。HTTPSリモート接続をするためには、リバースプロキシサーバーを設定する必要があります。NASが有効なHTTPS証明書を申請した後、リバースプロキシサーバーを使用してJellyfinのHTTPS接続を設定することができます。


ステップ 1

  • リバースプロキシ画面で「追加」をクリックします。
  • 「新規プロキシドメインを追加」を選択し、「次へ」をクリックします。



ステップ 2

  • 識別するための「プロキシドメインの名前」を入力します。例:Jellyfin HTTPS
  • 「HTTPS」と「サーバー名」を選択します。例:yourddns.myasustor.com
  • 未使用の「ポート番号」を入力します。元のJellyfinの通信ポートとは異なる番号である必要があります。例:8196
  • 「ネットワークインターフェイス」を選択します。デフォルトの場合はアスタリスク「*」を選択します。
  • このプロキシドメインルールの「パス」を入力するか、スラッシュ「/」のままでしておきます。 「ポートフォワーディングを有効にします」チェックを入れ、「次へ」クリックします。


ステップ 3

  • 識別するための「リバースプロキシドメインの名前」を入力します。(省略可能)
  • 「HTTP」を選択し、「NASのLAN IP」を入力します。例:192.168.xx.xx
  • 「ポート番号」を入力します。例:8096(Jellyfin HTTPのポート)。
  • プロキシドメインのアプリが特定のパスを持っている場合は、それを入力してください。(持っていない場合、「/」でOK)
  • 「テスト接続」をクリックし、プロキシドメインが正常に接続されていることを確認し、「次へ」をクリックします。


ステップ 4

  • 設定した内容を確認し、「終了」をクリックして完了します。


  • 完了すると、リバースプロキシの画面にプロキシドメインの情報が表示されます。


ステップ 5

  • このプロキシドメインを例として、Webブラウザで「https://yourddns.myasustor.com:8196/」を入力すると、リバースプロキシサーバがJellyfinのローカルURL「http://192.168.xx.xxx:8096/」にリダイレクトします。
  • 外部からこのプロキシドメインのHTTPS URLを使用して、このNASにインストールされているJellyfinに接続してログインすることができます。

Chromeブラウザで:


Firefoxプラウザで:



3.2 リバースプロキシの活用:ownCloud

ownCloudのDocker版では、NASのデフォルトのWebサーバーを使用していません。HTTPSリモート接続をするためには、リバースプロキシサーバーを設定する必要があります。NASが有効なHTTPS証明書を申請した後、リバースプロキシサーバーを使用してownCloudのHTTPS接続を設定することができます。


ステップ 1

  • リバースプロキシ画面で「追加」をクリックします。
  • 「新規プロキシドメインを追加」を選択し、「次へ」をクリックします。



ステップ 2

  • 識別するための「プロキシドメインの名前」を入力します。例:ownCloud HTTPS
  • 「HTTPS」と「サーバー名」を選択します。例:yourddns.myasustor.com
  • 未使用の「ポート番号」を入力します。元のownCloudの通信ポートとは異なる番号である必要があります。例:32882
  • 「ネットワークインターフェイス」を選択します。デフォルトの場合はアスタリスク「*」を選択します。
  • このプロキシドメインルールの「パス」を入力するか、スラッシュ「/」のままでしておきます。 「ポートフォワーディングを有効にします」チェックを入れ、「次へ」クリックします。


ステップ 3

  • 識別するための「リバースプロキシドメインの名前」を入力します。(省略可能)
  • 「HTTP」を選択し、「NASのLAN IP」を入力します。例:192.168.xx.xx
  • 「ポート番号」を入力します。例:32880(ownCloud HTTPのポート)。
  • プロキシドメインのアプリが特定のパスを持っている場合は、それを入力してください。(持っていない場合、「/」でOK)
  • 「テスト接続」をクリックし、プロキシドメインが正常に接続されていることを確認し、「次へ」をクリックします。


ステップ 4

  • 設定した内容を確認し、「終了」をクリックして完了します。


  • 完了すると、リバースプロキシの画面にプロキシドメインの情報が表示されます。


ステップ 5

ownCloudはアクセスできるドメインに厳しい制限を設けています。ownCloudのリバースプロキシサーバーを設定する際、このドメインをownCloudの 「trusted_domains」設定に追加して通常使用する必要があります。

  • /share/Docker/ownCloud/data/config/config.phpをコンピュータにダウンロードし、ファイル名を「zz-user.config.php」に変更し、テキストエディタを開いて編集します。
  • zz-user.config.phpファイルの「trusted_domains」設定のみを保持し、NASのリバースプロキシサーバーのドメイン「1 => 'yourddns.myasustor.com', 」をコンテンツに追加し、アーカイブします。

  • 編集したzz-user.config.phpをNASのフォルダ「/share/Docker/ownCloud/data/config/」にアップロードします。


ステップ 6

  • このプロキシドメインを例として、Webブラウザで「https://yourddns.myasustor.com:32882/」を入力すると、リバースプロキシサーバがownCloudのローカルURL「http://192.168.xx.xxx:32880/」にリダイレクトします。
  • 外部からこのプロキシドメインのHTTPS URLを使用して、このNASにインストールされているownCloudに接続してログインすることができます。

Chromeブラウザで:


Firefoxプラウザで:



3.3 HTTPS接続の設定:Syncthing

SyncthingのDocker版では、NASのデフォルトのWebサーバーを使用していません。HTTPSリモート接続をするためには、リバースプロキシサーバーを設定する必要があります。NASが有効なHTTPS証明書を申請した後、リバースプロキシサーバーを使用してSyncthingのHTTPS接続を設定することができます。

注:この例では、既存のプロキシドメインを使用してルールを追加しているので、追加のポートを設定する必要はありません。ユーザーは 「新規プロキシドメインを追加」を使用してポートを追加し、Syncthingのリバースプロキシを設定することもできます。


ステップ 1

  • リバースプロキシ画面で「追加」をクリックします。
  • 「既存のプロキシドメインに新規ルールを追加する」を選択し、「次へ」をクリックします。



ステップ 2

  • ルールを追加するプロキシドメインを選択します。例:https://yourddns.myasustor.com:18862
  • 新規ルールのパスを入力し(例:/syncthing)、「次へ」をクリックします。

※補足:この設定では、プロキシドメインのドメイン名とポート番号を変更することができません。また、別のパスを入力する必要があります。


ステップ 3

  • 識別するための「プロキシドメインの名前」を入力します。例:Syncthing
  • 「HTTP」を選択し、「NASのLAN IP」を入力します。例:192.168.xx.xxx
  • 「ポート番号」を入力します。例:28384(Syncthing HTTPのポート)。
  • プロキシドメインのアプリが特定のパスを持っている場合は、それを入力してください。(持っていない場合、「/」でOK)
  • 「テスト接続」をクリックし、プロキシドメインが正常に接続されていることを確認し、「次へ」をクリックします。


ステップ 4

  • 設定した内容を確認し、「終了」をクリックして完了します。


  • 完了すると、リバースプロキシの画面にプロキシドメインの情報が表示されます。


ステップ 5

  • このプロキシドメインを例として、Webブラウザで「https://yourddns.myasustor.com:18862/syncthing/」を入力すると、リバースプロキシサーバがSyncthingのローカルURL「http://192.168.xx.xxx:28384/」にリダイレクトします。
  • 外部からこのプロキシドメインのHTTPS URLを使用して、このNASにインストールされているSyncthingに接続してログインすることができます。

Chromeブラウザで:


Firefoxプラウザで:



3.4 リバースプロキシの活用:Nextcloud

ADM4.1では、Nextcloud用のデフォルトのリバースプロキシが追加されたため、NASがADM4.1.0以上にアップデートされている場合、ユーザーは自分でリバースプロキシを設定する必要がなくなりました。
現在、デフォルトのリバースプロキシは、ユーザーが新しいルールを追加することを許可できない。


  • このプロキシドメインを例として、Webブラウザで「https://yourddns.myasustor.com:8622/nextcloud-docker/」を入力すると、リバースプロキシサーバがNextcloudのローカルURL「http://192.168.xx.xxx:32680/」にリダイレクトします。
  • 外部からこのプロキシドメインのHTTPS URLを使用して、このNASにインストールされているNextcloudに接続してログインすることができます。

Chromeブラウザで:


Firefoxプラウザで:




NextcloudのDocker版では、NASのデフォルトのWebサーバーを使用していません。HTTPSリモート接続をするためには、リバースプロキシサーバーを設定する必要があります。NASが有効なHTTPS証明書を申請した後、リバースプロキシサーバーを使用してNextcloudのHTTPS接続を設定することができます。


ステップ 1

  • リバースプロキシ画面で「追加」をクリックします。
  • 「新規プロキシドメインを追加」を選択し、「次へ」をクリックします。



ステップ 2

  • 識別するための「プロキシドメインの名前」を入力します。例:Nextcloud HTTPS
  • 「HTTPS」と「サーバー名」を選択します。例:yourddns.myasustor.com
  • 未使用の「ポート番号」を入力します。元のNextcloudの通信ポートとは異なる番号である必要があります。例:32681
  • 「ネットワークインターフェイス」を選択します。デフォルトの場合はアスタリスク「*」を選択します。
  • このプロキシドメインルールの「パス」を入力するか、スラッシュ「/」のままでしておきます。 「ポートフォワーディングを有効にします」チェックを入れ、「次へ」クリックします。


ステップ 3

  • 識別するための「リバースプロキシドメインの名前」を入力します。(省略可能)
  • 「HTTP」を選択し、「NASのLAN IP」を入力します。例:192.168.xx.xx
  • 「ポート番号」を入力します。例:32680(Nextcloud HTTPのポート)。
  • プロキシドメインのアプリが特定のパスを持っている場合は、それを入力してください。(持っていない場合、「/」でOK)
  • 「テスト接続」をクリックし、プロキシドメインが正常に接続されていることを確認し、「次へ」をクリックします。


ステップ 4

  • 設定した内容を確認し、「終了」をクリックして完了します。


  • 完了すると、リバースプロキシの画面にプロキシドメインの情報が表示されます。


ステップ 5

Nextcloudはアクセスできるドメインに厳しい制限があります。Nextcloudのドキュメントでは、リバースプロキシサーバーを設定する際には、config.phpに他の設定を追加する必要があると説明されています。詳しくは Nextcloudのドキュメント を参照してください。

  • /volume1/Docker/Nextcloud/config/config.phpをパソコンにダウンロードし、テキストエディタで編集します。
  • config.phpファイルとアーカイブのコンテンツに、「'overwritehost' =>'yourddns.myasustor.com:32681',」と「'overwriteprotocol' =>'https',」を追加します。
  • 編集したconfig.phpをNASフォルダ「/volume1/Docker/Nextcloud/config」にアップロードし、元のファイルを上書きします。


ステップ 6

  • このプロキシドメインを例として、Webブラウザで「https://yourddns.myasustor.com:32681/」を入力すると、リバースプロキシサーバがNextcloudのローカルURL「http://192.168.xx.xxx:32680/」にリダイレクトします。
  • 外部からこのプロキシドメインのHTTPS URLを使用して、このNASにインストールされているNextcloudに接続してログインすることができます。

Chromeブラウザで:


Firefoxプラウザで:



3.5 HTTPS接続の設定:Plex Web

Plex Media Server用のデフォルトのリバースプロキシがADM 4.1に追加され、NASがADM 4.1.0以上にアップデートされている場合、ユーザーが自分で設定する必要がなくなりました。
現在、デフォルトのリバースプロキシは、ユーザーが新しいルールを追加することを許可できない。


  • このプロキシドメインを例として、Webブラウザで「https://yourddns.myasustor.com:8622/plexmediaserver/」を入力すると、リバースプロキシサーバがPlex Media ServerのローカルURL「https://192.168.xx.xxx:32400/」にリダイレクトします。
  • 外部からこのプロキシドメインのHTTPS URLを使用して、このNASにインストールされているPlex Media Serverに接続してログインすることができます。

Chromeブラウザで:


Firefoxプラウザで:




NASにPlex Media Serverをインストールして、WebブラウザでPlexを開き、メディアライブラリを管理したり、音声や動画ファイルを再生することができます。だが、NAS にバインドされた HTTPS 証明書は、ASUSTOR NAS のDDNS を使用して Plex を安全に開くことはできません。そこで、リバースプロキシサーバーを使用して、HTTPS 接続で Plex を安全に開くことができます。

リバースプロキシドメインを設定する前に、HTTPS で Plex を開き、Plex アカウントにログインする必要があります。Plex Media Serverのインストールとメディアライブラリの設定については、 「NAS 235 - Plex Media Serverの紹介」 を参照してください。


ステップ 1

  • ADM デスクトップで「Plex Media Server」をクリックします。
  • ブラウザのアドレスバーで、Plex Web の Web ページプロトコルを HTTPS に変更します。例:https://192.168.xx.xxx:32400
  • Plexアカウントにログインし、このIPからのHTTPS接続を許可します。
  • Plexがメディアライブラリを表示し、コンテンツを再生できることを確認します。


ステップ 2

  • リバースプロキシ画面で「追加」をクリックします。
  • 「新規プロキシドメインを追加」を選択し、「次へ」をクリックします。



ステップ 3

  • 識別するための「プロキシドメインの名前」を入力します。例:Plex HTTPS
  • 「HTTPS」と「サーバー名」を選択します。例:yourddns.myasustor.com
  • 未使用の「ポート番号」を入力します。元のPlexの通信ポートとは異なる番号である必要があります。例:32411
  • 「ネットワークインターフェイス」を選択します。デフォルトの場合はアスタリスク「*」を選択します。
  • このプロキシドメインルールの「パス」を入力するか、スラッシュ「/」のままでしておきます。 「ポートフォワーディングを有効にします」チェックを入れ、「次へ」クリックします。


ステップ 4

  • 識別するための「リバースプロキシドメインの名前」を入力します。(省略可能)
  • 「HTTPS」を選択し、「NASのLAN IP」を入力します。例:192.168.xx.xx
  • 「ポート番号」を入力します。例:32400(Plex HTTP/HTTPSのポート)。
  • プロキシドメインのアプリが特定のパスを持っている場合は、それを入力してください。(持っていない場合、「/」でOK)
  • 「テスト接続」をクリックし、プロキシドメインが正常に接続されていることを確認し、「次へ」をクリックします。


ステップ 5

  • 設定した内容を確認し、「終了」をクリックして完了します。


  • 完了すると、リバースプロキシの画面にプロキシドメインの情報が表示されます。


ステップ 6

  • このプロキシドメインを例として、Webブラウザで「https://yourddns.myasustor.com:32411/」を入力すると、リバースプロキシサーバがPlex Media ServerのローカルURL「https://192.168.xx.xxx:32400/」にリダイレクトします。
  • 外部からこのプロキシドメインのHTTPS URLを使用して、このNASにインストールされているPlex Media Serverに接続してログインすることができます。

Chromeブラウザで:


Firefoxプラウザで:




4. プロキシドメインとルールの編集


4.1 プロキシドメインの編集と削除

  • プロキシドメインを選択し、「編集」をクリックし、リバースプロキシドメインの名前、ネットワークプロトコル、サーバー名、ポートを編集することができます。プロキシドメインを編集すると、そのプロキシドメインのすべてのルールが変更されます。
  • 「削除」をクリックすると、プロキシドメインと以下のルールが削除されます。




4.2 プロキシドメインルールの編集と削除

  • リバースプロキシ画面で、プロキシドメインをクリックし、プロキシドメインのルールが表示されます。ルールを選択し、「編集」 をクリックして、プロキシドメインページでリバースプロキシドメインのネットワークプロトコルを編集することができます。このページでは、ルールの名前、ネットワークプロトコル、ホスト名、ポート、パスを編集したり、プロキシドメインルールを有効または無効にしたりすることができます。
  • 削除をクリックするとこのプロキシドメインルールが削除され、最後のルールを削除すると、そのプロキシドメインが削除されます。


  • リバースプロキシ接続を一時的に無効にしたい場合は、一時的に無効にしたルールを削除する代わりに、ルールの編集ページでリバースプロキシドメインルールを無効にすることができます。


この説明は役に立ちましたか? はい / いいえ