Apacheリバースプロキシを利用したUSBキー認証

Webサイトへのアクセスを制限するためには IISやApacheなどのWebサーバの機能を 使って実現します。USBキー認証はこれらの機能と組み合わせて組み込みます。

この方法は次のようなケースでは利用できません。

このようなケースではWebサイトをホストするWebサーバをリバースプロキシの後方に 配置して、リバースプロキシを経由して本サーバにアクセスするように構成すると、 本サーバへのアクセス制限をリバースプロキシ側で行うことが可能になります。 Apacheをリバースプロキシとして利用すると、Apacheの機能を用いてアクセス制限が できるため、バックエンドの本サーバへのアクセス制限 = Apacheによるアクセス制限 にできます。

Webサーバを内臓しているWebアプリケーションやIISが稼動しているサーバと同じ サーバに Apacheをインストールしてリバースプロキシとして動作させることや、 異なるサーバで動作させることもできます。同じサーバで IIS と Apacheを動かす 場合、IISのポートを閉じ、Apacheリバースプロキシ以外から IISにアクセス不可に します。異なるサーバの場合、本サーバは外部から見えないようにします。フロント エンドのApacheでは指定パスへのアクセスを本サーバへと転送します。

Running a Reverse Proxy in Apache

本サーバ転送のためのパスはアクセス制限を行います。これにはApacheのファイルパスと 同じアクセス制限(Basic認証や認証モジュールによる制限)を適用できます。

Apache のリバースプロキシの設定方法

USBキー認証を行うためには、Apache組み込みのモジュールでは実現できません。弊社では 独自にLinux 及び Windows Apache対応にした認証クッキーを使った認証モジュールを利用します。 USBキー認証後にこのモジュールを通過できるような認証クッキーをクライアントに送り、 正当な認証クッキーをもったクライアントだけが本サーバへとアクセスできるようにします。

Apacheモジュールは、ほとんどが Linux向けですが、USBキー認証と組み合わせて使う モジュールは Windows Apache対応になっているため、LinuxとWindowsのどちらでもリバースプロキシ をホストしUSBキー認証と連携してアクセス制限を行えます。

リバースプロキシーの設定はいろいろ面倒な点があるようですが、利用できるのであれば サイトへのアクセス制限や保護に有効な手段となります。

mod_proxy_html

Webアプリケーションファイアウォールによる防御


有限会社リビッグ http://www.ribig.jp/WebLogon