【ウェブアクセラレータ】オリジンガード機能の利用

こちらではウェブアクセラレータのオリジンガード機能の利用方法について説明しています。

概要(オリジンガードとは)

ランダムな文字列の「オリジンガードトークン」を発行し、その値をウェブアクセラレータのリクエストヘッダに追加します。
オリジンのウェブサーバに「オリジンガードトークン」の値が一致する場合のみアクセス許可の設定をすることで、「オリジンガードトークン」の値を持たないリクエストは拒否され、悪意のある攻撃者やサイト閲覧者(エンドユーザ)がオリジンサーバに直接アクセスすることを防ぐことができます。

前提条件・設定例

前提条件

  • オリジンのウェブサーバ側で設定が必須になります。
  • オリジンガード設定を行う前に、必ずウェブアクセラレータとオリジンのウェブサーバ間で正しくキャッシュが行われていることを確認してください。
  • オリジンのウェブサーバでオリジンガードトークンを確認する設定が無い場合、この機能は無視されます。

初回設定手順

STEP1 オリジンガードトークンの発行

ウェブアクセラレータのリクエストヘッダに追加するオリジンガードトークンを発行します。

1. 対象サイトの「設定」ボタンをクリックします。

2. 「トークン発行」ボタンをクリックします。

3. オリジンガードトークンを発行しますかの画面で「発行」をクリックします。

4. 発行が正常に完了すると、以下のような画面が表示されます。

5. オリジンガードトークンにランダムな文字列の値が表示されます。

6. 値に問題が無ければ、アイコンをクリックしオリジンガードトークンをクリップボードにコピーします。

※ アイコンクリックによるクリップボードへのコピーが正常に行えない場合は、画面の値を範囲選択し、直接コピーしてください。

STEP2 お客様のサーバ(オリジンのウェブサーバ)側での設定

オリジンガードトークンを発行すると、以降ウェブアクセラレータのアクセスは、リクエストヘッダの X-WebAccel-Guard にオリジンガードトークンの値が付与されてリクエストされます。
オリジンのウェブサーバに、「この値の入ったリクエストのアクセスのみ許可をする」設定を行うことで、他からのアクセスを抑制します。

Apache利用の場合(httpd.confや.htaccess等)

  • さくらのレンタルサーバなど、ウェブサーバ(Apache)の設定ファイルが編集出来ないサーバは、.htaccessへ記述することで利用可能です。
RewriteEngine On
RewriteCond %{HTTP:X-WebAccel-Guard} !^************$
RewriteRule ^(.*)$ - [F,L]

nginx利用の場合

location /protected-test {
    if ($http_x_webaccel_guard != "************") {
        return 403;
    }
    alias /var/www/html/protected-test;
}

オリジンガードトークンの更新

前提条件

  • 更新確定を行うまでは、現行のトークンのみ配信されます。
  • オリジンガードトークンの更新をスムーズに切り替えるには、オリジンのウェブサーバ側で一時的に現行のトークンと次期のトークンの許可設定を行うことが必要です。

1. 対象サイトの「設定」ボタンをクリックします。

2. 「更新設定開始」ボタンをクリックします。

3. 現行・次期トークンが表示されます。

※ 現行トークンは、これまで使用していたトークンです。この時点では、現行トークンが送信される状態です。

4. 次期トークンの値に問題が無ければ、アイコンをクリックし次期トークンをクリップボードにコピーします。

※ 次期トークンを変更したい場合や更新をキャンセルしたい場合は、「更新キャンセル」をクリックすることでキャンセルできます。
※ アイコンクリックによるクリップボードへのコピーが正常に行えない場合は、画面の値を範囲選択し、直接コピーしてください。

5. 発行された次期トークンをオリジンのウェブサーバへ設定します。

Apache利用の場合(httpd.confや.htaccess等)

  • さくらのレンタルサーバなど、ウェブサーバ(Apache)の設定ファイルが編集出来ないサーバは、.htaccessへ記述することで利用可能です。
RewriteEngine On
RewriteCond %{HTTP:X-WebAccel-Guard} !^(************(現行トークン)|************(次期トークン))$
RewriteRule ^(.*)$ - [F,L]

nginx利用の場合

location /protected-test {
   set $guarded 1;
   if ($http_x_webaccel_guard = "************(現行トークン)") {
      set $guarded 0;
   }
   if ($http_x_webaccel_guard = "************(次期トークン)") {
      set $guarded 0;
   }
   if ($guarded = 1) {
      return 403;
   }
   alias /var/www/html/protected-test;
}

※ この時点では、現行トークンのみ送信されておりますので、オリジンのウェブサーバには、現行・次期トークン共に許可する設定を行ってください。

6. 次期トークンの値に変更後、「更新確定」ボタンをクリックします。

7. オリジンガードトークンの更新を確定しますかの画面で「更新確定」をクリックします。

※ 更新確定を行うと、これまで使用していた現行トークンは無効となり、次期トークンが送信されるようになります。
※ 次期トークンが許可対象に設定されているか確認してから確定してください。

8. 更新が正常に完了すると、以下のような画面が表示されます。

9. オリジンのウェブサーバの設定からこれまで利用していたトークン値を削除します。

Apache利用の場合(httpd.confや.htaccess等)

  • さくらのレンタルサーバなど、ウェブサーバ(Apache)の設定ファイルが編集出来ないサーバは、.htaccessへ記述することで利用可能です。
RewriteEngine On
RewriteCond %{HTTP:X-WebAccel-Guard} !^************(新しい現行トークン)$
RewriteRule ^(.*)$ - [F,L]

nginx利用の場合

location /protected-test {
    if ($http_x_webaccel_guard != "************(新しい現行トークン)") {
        return 403;
    }
    alias /var/www/html/protected-test;
}

※ 更新確定を行うと、これまで使用していた現行トークンは無効となり、次期トークンの値が現行トークンに切り替わり送信されるようになります。

オリジンガードトークンの削除

前提条件

  • オリジンガードトークンの削除は即時反映されるため、必ずオリジンのウェブサーバ側の設定を先に解除してください。
  • 次期トークンが表示されている状態ではトークンの削除は行えません。更新キャンセル後に行ってください。

1. 対象サイトの「設定」ボタンをクリックします。

2. 「トークンを削除」ボタンをクリックします。

※ 次期トークンが表示されている状態ではトークンの削除は行えません。

3. オリジンガードトークンを削除しますかの画面で「削除」をクリックします。

4. 発行が正常に完了すると、以下のような画面が表示されます。

5. オリジンガードトークンには、「トークン発行」のボタンのみが表示されます。