簡単ですが ISA 2006 でリバースプロキシを試してみましたので、設定方法を投稿しておきたいと思います。
HTTP / HTTPS の両方を試してみました。
まずは HTTP 編から。
基本的な設定手順としては、
- Web リスナ の作成
- ファイアウォール ポリシーの作成
の 2 手順となります。
Web リスナはファイアウォール ポリシーの作成時に一緒に作成することもできますが、別の手順として
まとめておいたほうがわかりやすそうなので手順を分けています。
[Web リスナの作成]
- [スタート] → [すべてのプログラム] → [Microsoft ISA Server] から [ISA Server の管理] を開きます。
- [ファイアウォール ポリシー] を選択し、[ツールボックス] → [ネットワーク オブジェクト] → [Web リスナ]
→ [右クリック] → [新しい Web リスナ] をクリックします。
- 任意の [Web リスナ名] を入力し、 [次へ] をクリックします。
- [クライアントとの SSL セキュリティ保護接続を必要としない] を選択し、[次へ] をクリックします。
- 外部からの要求を受け付ける IP アドレスが指定されているネットワークを選択し、[次へ] をクリックします。
今回の検証環境は NIC 1 枚で全プライベート IP アドレスを [内部] に設定している環境のため、
[内部] を選択しています。
- [クライアントが ISA Server に~] は [認証なし] を選択し、[次へ] をクリックします。
プロキシサーバーの認証を必要とする場合にはここで設定をするのだと思います。
まだ、勉強中でほとんど調べられていないのですが、単純なリバプロとして使用する場合は無認証にしておけば検証ができます。
- [次へ] をクリックします。
- [完了] をクリックします。
これでリスナーの作成は完了です。
続いて、リバプロに使用するファイアウォールポリシーを作成します。
[ファイアウォール ポリシーの作成]
- [タスク] → [Web サイトの公開] をクリックします。
- 任煮の [公開ルール名] を入力し、[次へ] をクリックします。
- [許可] を選択し、[次へ] をクリックします。
- [1 つの Web サイトまたは付加分散装置を公開する] を選択し、[次へ] をクリックします。
- [公開された Web サーバーまたはサーバー ファームへの接続に、セキュリティで保護されていない接続を使用する] を
選択し、[次へ] をクリックします。
? - [内部サイト名] と、必要に応じて [コンピュータ名または IP アドレス~] を有効にして、入力を行い [次へ] をクリックします。
[内部サイト名] は LAN のブラウザから開くときの URL のサイト名になるそうです。
単純な検証をする場合は、外部公開のサイト名と同じものを指定すればよさそうです。
ISA 2006 はワークグループ環境に構築ができますので、ドメイン内の DNS を使用しない場合などはサーバーの IP を
[コンピュータ名または IP アドレス] に入力します。
? - [内部公開の詳細] はデフォルトのままで [次へ] をクリックします。
特定のフォルダだけ公開させることも可能なようです。
今回は全公開なので未入力としています。
- [パブリック名] に外部公開のドメイン名を入力し、[次へ] をクリックします。
- [Web リスナ] に作成した HTTP 用のリスナ名を選択し、[次へ] をクリックします。
- 認証方式は、[委任できません。クライアントは直接認証できません] を選択し、[次へ] をクリックします。
- [次へ] をクリックします。
- [完了] をクリックします。
この辺は勉強不足で最適な設定の検証がぜんぜんできていません・・・。
設定が正しくないと、ブラウザでアクセスした際に、
エラー コード: 500 Internal Server Error. 対象のプリンシパル名が間違っています。 (-2146893022) |
が表示されるみたいです。
以上で設定は完了です。
ISA は設定を変更した場合、最終的な確定には必ず [適用] が必要となります。
[適用] をクリックして、今までの設定を反映させます。
これで ISA に HTTP 要求があった場合、URL によってどのサーバーに割り振るかを変更できるようです。
ひとつのグローバル IP で複数のサーバーをポート 80 で公開するためにはこの辺の知識が必要になってくるので、
ネットワーク関連の知識として勉強が必要だな~と感じました。
この設定だと、各サーバーへの要求は ISA からの要求として処理がされるので、実際アクセスされたクライアントのログとしては
各サーバーに出力がされないんですよね。
作成した公開ルールを開くと、[公開先] のタブに、以下の設定があり、
[元のクライアントからの要求にする] を選択することによって、IIS のアクセスログに実際の要求元の IP アドレスを残すことが
できるのですが、この場合は各 IIS のサーバーのデフォルトゲートウェイを ISA に設定しないといけないようです。
いまは、かなり乱雑なネットワークで検証環境を構築してしまっているのでどこかで見直さないと。