WebブラウザのProxy設定を行うための4つの方法(WPADのススメ)Tech TIPS

社内LANでWebブラウザを使う場合は、Proxyサーバの設定が必要なことがある。各クライアントのProxy設定をすべて手動で行うのは大変なので、Internet Explorerの自動設定機能を利用するとよい。自動設定の方法としては、DHCPサーバを使う方法や、WPADを使う方法、グループ・ポリシーを使う方法などがある。

» 2002年10月19日 05時00分 公開
[打越浩幸デジタルアドバンテージ]
Tech TIPS
Windows Server Insider


「Tech TIPS」のインデックス

連載目次

対象OS:すべて



解説

 ある程度以上の規模を持つ会社や組織では、インターネットイントラネットの2つを明確に区別して、両者の間にはファイアウォールなどのセキュリティ対策機構を用意しているだろう。この場合、イントラネット上の各マシンからインターネット上の各種のサービス、特にWWWFTPサービスなどを利用するためには、(小規模な組織なら)NATのようなアドレス変換機能を使う場合もあるが、一般的にはProxyサーバを用意して、インターネットへのアクセスはProxyサーバ経由で行うことが多い。Proxyサーバは、インターネットとイントラネットの間に配置して、イントラネット上の各Webクライアントからの要求をインターネット上へ中継するためのサービスである。実際には、単に中継をするだけでなく、いったんインターネットから取得したデータを自分自身のキャッシュに蓄え、再度同じ要求があれば、そのキャッシュからクライアントへデータを転送する。これにより無駄な(重複した)インターネットへのアクセスが減少し、帯域幅の狭いインターネット回線でも多数のクライアントからの要求を効率よく処理することができるようになる。Proxyサーバ ソフトウェアとしては、SquidMicrosoft ISA ServerNetscape Proxyなどが有名である。

 Proxyサーバを利用するためには、Webブラウザ・クライアントのネットワーク設定において、Proxyサーバをアクセスするようにセットアップする必要がある。従来のInternet Explorer 4.x以前では、この設定をすべてクライアント側でユーザーが手動で行う必要があったが(カスタマイズした特別なバージョンのInternet Explorerを作成して、それを企業内に広く配布するという方法もある)、Internet Explorer 5.x/6.xではこの設定を完全に自動化するための機能が用意されている。以下では、このProxyサーバの設定方法について見てみよう。

操作方法

●1.Proxyサーバを手動設定する

 Proxyサーバを設定する一番簡単な方法は、各ユーザーが自分のユーザー名でWindows 9x/Me/2000/XPにログオンし、ブラウザのネットワーク設定を変更する方法である。[ツール]−[インターネット オプション]の[接続]タブにある[LANの設定]を開いて、[プロキシ サーバを使用する]というチェックボックスをオンにして、Proxyサーバ マシンのIPアドレスとポート番号を入力すればよい。もしプロトコルごとに異なるサーバや、異なるポート番号を使うのなら、[詳細]設定ボタンを使って、個々のプロトコルごとに設定を行う。

インターネットのプロパティ]ダイアログ
ネットワーク関連の設定を行うためのダイアログボックス。
  [A]ここをクリックして、Proxyサーバの設定を行う。

[A]

Proxyサーバの設定
Proxyサーバに対する設定を行うためのダイアログボックス。
  (1)Proxyサーバを手動設定する場合にチェックする。これはIE 5.xの画面であるが、IE 6.xでは「LANにプロキシ サーバーを使用する」となっている。
  (2)ProxyサーバのIPアドレス。
  (3)Proxyサーバのポート番号。
  (4)同一ネットワーク上のホストに対してはProxyを経由せずに、直接接続するという設定。

●2.Proxyサーバをスクリプトで自動設定する

 上記の手動設定は、各ユーザーが最初にInternet Explorerを使用するときにそれぞれ実行する必要があるが、IPアドレスやポート番号、除外するアドレス/ドメイン名などをすべて正確に入力するのは簡単な作業とはいえないだろう。入力ミスがあった場合のトラブルシューティング作業などで、管理者の手を煩わせることになるかもしれない。 このような作業を簡略化するための方法として、JavaScriptを使ったProxyサーバの自動設定手段が、Internet ExplorerやNetscape CommunicatorなどのWebブラウザには用意されている。管理者は以下のような内容のJavaScriptファイルを用意して、それをイントラネット上の適切なWWWサーバ上に配置しておけばよい。この自動設定ファイルを使うと、例えばローカルLANとインターネット接続でProxyサーバを切り替えたり、利用時間帯や所属ドメインなどに基づいて複数のProxyサーバを使い分けるなどという複雑な制御も行える。このファイルの書式の詳細についてはNetscape社のNavigator Proxy Auto-Config File Formatや、Internet Explorer Administration Kit(IEAK)のページからダウンロードできる、IEAKのヘルプファイルなどを参照してほしい。

function FindProxyForURL(url,host)
{ if(isPlainHostName(host)||
           isInNet(host,"192.168.0.0","255.255.0.0")) return "DIRECT"; 
 else return "PROXY 192.168.0.10:8080; DIRECT";
}

Proxyの自動設定ファイルの例

 このようなファイルを「proxy.pac」などというファイル名にして、イントラネット上のWWWサーバ上に配置しておき、そのURL(ここでは「http://192.168.0.10/proxy.pac」としている)をWebブラウザの[自動設定のスクリプトを使用する]にセットすればよい。

自動設定スクリプトを使用する場合の設定例
自動設定のスクリプトを使用する場合の設定。この方法はIE 5.xだけでなく、IE 4.xでも利用できる。
  (1)自動設定スクリプトを使う場合はここをチェックする。
  (2)自動設定ファイルのURLを記入する。ここでさらに名前解決のトラブルや名前解決のための時間遅延が発生するのを防ぐため、Webサーバの場所は名前ではなくIPアドレスで指定するのがよいだろう。

●3.Proxyサーバの設定をWPADで自動的に行う

 自動設定ファイルを使う方法は、ProxyサーバのIPアドレスやポート番号を個別に指定するよりも簡便ではあるが、依然として、各ユーザーがそれぞれ自分で設定をしなければならないという問題が残っている(もちろんネットワーク管理者などが代理で作業を行ってもよいが、個々のマシンごとに設定を行う必要があるという点では変わらない)。この自動設定の方法をさらに進めて、DHCPDNSのように、クライアント側での設定の手間をまったくなくす方法として、WPAD(Web Proxy Auto-Discovery)プロトコルが開発され、Internet Explorer 5.x/6.xなどで実装されている。Internet ExplorerでWPADプロトコルによる自動設定を利用するためには、以下のように、[設定を自動的に検出する]というチェックボックスをオンにするだけでよい。Internet Explorerでは、最初からこのチェックボックスだけがオンになっているので、実際にはユーザーは何もしなくても、Proxyの設定を自動的に検出して、利用できるようになっている。

Internet ExplorerにおけるProxyの自動設定
WPADによる自動設定機能を利用するためには、自動設定オプションを選択しておくだけでよい。
  (1)Internet Explorer 5.x/6.xでは最初からこのチェックボックスだけがオンになっている。

 WPADは、WebブラウザのProxy設定を自動化するために開発されたプロトコルであり、現在RFCのドラフト規格となっている。WPADプロトコルを使うと、Webブラウザ自身が(前述したような)Proxy設定用のJavaScriptファイルの位置(URL)を自動的に検出してダウンロードし、設定を行うことができる。管理者としては、WPADプロトコルをサポートするようにネットワーク環境を整備しておけば、いちいちクライアント側の設定の面倒を見なくてもかまわない、というメリットがある。 WPADでは何種類かのプロトコルを組み合わせて自動設定を実現しているが、管理者の視点から見ると現実的には、以下の2通りの方法が有用であろう(そのほかのプロトコルは実装されていないことがある)。

●WPADにおける方法その1:DHCPサーバのDHCPINFORMメッセージを使って設定を行う

 クライアント・マシンにIPアドレスなどのネットワーク情報を自動配布する手段として、DHCPサービスがすでに広く使われている。WPADでは、最初にこのDHCPプロトコルを使ってProxyサーバ設定用のJavaScriptファイルのURLを取得するようになっている。よって管理者はDHCPサーバに対して、この設定項目を追加するだけでよい。 ただしこの機能を使うためには、DHCPサーバが「DHCPINFORM」プロトコルをサポートしている必要がある。Windows 2000 Server/Windows .NET Serverに搭載されているDHCPサーバはこの機能を持っているが、そうでない場合は、DHCPサーバのソフトウェアをバージョンアップするか、後述する別の手段を使う必要がある。Windows 2000 Server/Windows .NET ServerのDHCPサーバでDHCPINFORMを使うためには、DHCPのスコープオプションで、新しく252番を定義し、そこにJavaScriptファイルへのURLを記述する。具体的な手順については「TIPS:DHCPサーバのスコープ・オプションを追加定義する」を参照していただきたい。

DHCPサーバの設定例
これはWindows 2000 ServerのDHCPサーバで、WPAD用の設定を追加したところ。このためにはまずDHCPサーバのマネージャで、ホスト名を右クリックし、ポップアップ・メニューから[既定のオプションと値]を選択する。そして[DHCP標準オプションクラス]というクラスに、新しく文字列型のオプション(オプション番号は252)を追加する。オプション名は任意でよい(ここでは「AUTO-PROXY-CONFIG」としている)。あとは、DHCPの各スコープでこのオプション型に対して、例えば「http://192.168.0.10/proxy.pac」などという値をセットしておけばよい。
  (1)自分で追加したDHCPのオプションタイプ。
  (2)オプションの値。ここにJavaScriptのURL名を記述する。

●WPADにおける方法その2:「wpad」という名前のホストエントリをDNSで用意する

 DHCPINFORMメッセージによるJavaScriptのURLの取得が失敗すると、次は「wpad」という名前を持つホストから、httpプロトコル(ポート番号は80番)を使って、「/wpad.dat」という名前の設定ファイルを取得しようとする。このファイルの内容は、先のproxy.pacと同じである(したがって同じ内容のファイルを2つ用意しておくか、シンボリック・リンクを張っておくとよいだろう)。 「wpad」という名前は、クライアントが属しているドメイン名を、先頭から順番に切り詰めながら試行される。例えばWebブラウザが動作しているマシンのFQDNが「pc1.lab.d-advantage.com」なら、「wpad.lab.d-advantage.com」、「wpad.d-advantage.com」を検索し、見つかればそこから設定ファイルを取得しようとする。

 以上のような仕組みになっているため、wpadというDNSレコードを登録し(Aレコードで直接ホストを登録してもよいし、CNAMEレコードで別名を登録してもよい)、そのホストのWWWサーバのルート・ディレクトリ上に自動設定ファイル(wpad.dat)を置いておくだけで、WebブラウザのProxy設定を行うことができる。

DNSによる自動設定
ここでは、Windows 2000 ServerのDNSサーバに、wpadというホスト名を登録している。
  (1)追加したホスト名のレコード(Aレコード)。

●4.Proxyサーバの設定をグループ・ポリシーで自動的に行う

 Active Directoryのグループ・ポリシー機能を使って、クライアントのWebブラウザのProxy設定を行う方法もある。これは、「1.Proxyサーバを手動設定する」もしくは「2.Proxyサーバをスクリプトで自動設定する」の設定を、Active Directoryのグループ・ポリシーで自動的に配布するという方法であり、設定する項目の意味などはこれらの方法と同じである。ただし、このグループ・ポリシーはドメインに参加しているWindows 2000 Professional/ServerやWindows XP Professional、Windows .NET Serverにのみ有効な方法であり、ドメインに参加できないOS(Windows 9x、Windows Me、Windows XP Home Edition)では利用できないので、ほかの方法を併用する必要がある。

 グループ・ポリシーでProxy設定を行うためには、まずドメイン・コントローラ上の[スタート]メニューから[プログラム]−[管理ツール]−[Active Directory ユーザーとコンピュータ]を起動する。そして該当するOU(例えば組織全体で共通の設定にしたければルート・ドメインを選択する)を右クリックして[プロパティ]画面を開き、[グループ ポリシー]タブを選択後、[新規]か[編集]をクリックしてグループ・ポリシーの編集画面を開く。この中に[ユーザーの構成]−[Windowsの設定]−[Internet Explorer のメンテナンス]−[接続]という項目があり、ここでProxyサーバなどの設定が行える。

グループ・ポリシーによるProxy設定
グループ・ポリシーを使えば、ドメインに参加しているマシンのProxy設定を自動的に済ませることができる。Proxy設定以外にもさまざまなカスタマイズができるが、ドメインに参加できないOS(Windows 9xやWindows Meなど)では利用できないので、注意が必要。
  (1)Internet Explorer関連の設定はこのグループ・ポリシーで行う。Proxyの設定以外にも、例えばスタート時のURLの指定や、セキュリティ設定の変更、「お気に入り」のカスタマイズ、利用可能な機能やボタンの制限など、さまざまな設定をドメイン全体に適用することができる。
  (2)Proxy設定を行うには、この[接続]を選択する。
  (3)Proxyなどの設定を、現在ログオンしているユーザーのWebブラウザから自動的に取得して、それをグループ全体に適用するために利用する。
  (4)ProxyサーバのIPアドレスなどを手動で設定する場合に利用する。
  [B]Proxyの設定をスクリプト・ファイルなどを使って自動的に行う場合にはこれをクリックする。→[B]

 Proxy設定を行うには、「1.Proxyサーバを手動設定する」で述べたように、ProxyサーバのIPアドレスを手動で1つずつ設定する方法と、「2.Proxyサーバをスクリプトで自動設定する」で述べたように、自動設定スクリプトを使う方法の2つがある。以下は、スクリプトを使う場合の例である。

[B]

グループ・ポリシーによるProxyの自動設定
グループ・ポリシーを使って、クライアント側のブラウザの設定を制御することができる。
  (1)これをオンにすると、クライアントは「3.Proxyサーバの設定をWPADで自動的に行う」で述べた動作を行って、Proxyサーバを自動的に見つけるようになる。
  (2)以下で指定する設定に基づいて動作するようになる。
  (3)自動設定スクリプト・ファイルをチェックする時間間隔。デフォルトではページの移動ごとにチェックされるが、例えば時間帯によってProxyサーバを切り替えるようなスクリプトを用意した場合、ページ移動ごとにチェックするのは無駄なので、チェック間隔をもっと長くしておけば、クライアントの負荷が少なくなる。
  (4)Internet Explorer自身の各種設定などを行う場合には、ここにその設定ファイルを指定する。詳細は「Internet Explorer Administration Kit(IEAK)のページ」を参照のこと。
  (5)自動設定スクリプトを使う場合はここへ入力する。

■関連リンク


■更新履歴

【2002/10/19】最新情報を反映して加筆・修正しました。

【2000/01/16】初版公開。


「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。