Sun Java System Web Proxy Server 4.0.1 管理ガイド |
第 13 章
プロキシを使用したコンテンツのフィルタリングこの章では、URL にフィルタをかけて、Proxy Server がその URL へのアクセスできないようにしたり、URL からクライアントに返される HTML および JavaScript コンテンツを変更できないようにする方法について説明します。また、この章では、クライアントが使用している Web ブラウザ (ユーザーエージェント) に基づいて、プロキシを使用してアクセスを制限できるようにする方法についても説明します。
Proxy Server を使用すると、URL フィルタファイルを使用して、サーバーがサポートする URL を決定することができます。たとえば、サポートする URL のワイルドカードパターンを手動で入力する代わりに、制限する URL が含まれた 1 つのテキストファイルを作成または購入することができます。この機能によって、URL の格納されたファイルを 1 つ作成すれば、それを多くの異なるプロキシサーバーに対して使用することができます。
また、MIME タイプに基づいて URL にフィルタをかけることもできます。たとえば、プロキシに HTML ファイルと GIF ファイルのキャッシュおよび送信は許可しても、コンピュータウイルスによるリスクを回避するために、バイナリファイルや実行可能ファイルの受信は許可しないようにすることもできます。
この章では、次の項目について説明します。
URL のフィルタリングURL のファイルを使用して、プロキシサーバーが取得するコンテンツを設定することができます。プロキシが常にサポートする URL のリストと、プロキシがサポートしない URL のリストを設定できます。
たとえば、子どもに適したコンテンツを持つ、プロキシサーバーを実行するインターネットサービスプロバイダであれば、子どもが閲覧することが認可された URL のリストを設定します。そうすると、認可された URL のみを取得するようにプロキシサーバーを設定することができます。クライアントがサポートされていない URL にアクセスしようとすると、プロキシからデフォルトの「Forbidden」メッセージを返すようにするか、クライアントがその URL にアクセスできなかった理由を示すカスタムメッセージを作成することができます。
URL に基づいてアクセスを制限するには、許可または制限する URL のファイルを作成する必要があります。このファイルは、サーバーマネージャーで作成できます。ファイルを作成したら、制限を設定できます。次の節では、これらの方法について説明します。
URL のフィルタファイルの作成
フィルタファイルとは、URL のリストが含まれているファイルのことです。プロキシサーバーが使用するフィルタファイルは、次のようなパターンで URL の行が含まれているプレーンテキストファイルです。
protocol://host:port/path/filename
3 つの各セクション (protocol、host:port、および path/filename) では、正規表現を使用することができます。たとえば、netscape.com ドメインにアクセスするすべてのプロトコルの URL パターンを作成する場合は、ファイルに次の行を追加します。
.*://.*¥.example¥.com/.*
この行は、ポート番号を指定しない場合のみ機能します。正規表現については、「テンプレートとリソースの管理」の「正規表現について」を参照してください。
サーバーマネージャーを使用せずに独自のファイルを作成する場合は、サーバーマネージャーのページを使用して空のファイルを作成し、そのファイルにテキストを追加するか、そのファイルを正規表現を格納するファイルと置き換える必要があります。
フィルタファイルを作成するには
- サーバーマネージャーにアクセスし、「Filters」タブをクリックします。
- 「Restrict URL Filter Access」リンクをクリックします。「Restrict URL Filter Access」ページが表示されます。
- 「Create/Edit」ボタンの横のドロップダウンリストから、「New Filter」を選択します。
- ドロップダウンリストの右のテキストボックスにフィルタファイルの名前を入力して、「Create/Edit」ボタンをクリックします。「Filter Editor」ページが表示されます。
- スクロール可能な「Filter Content」テキストボックスを使用して、URL と URL の正規表現を入力します。「Reset」ボタンを押すと、このフィールドのすべてのテキストがクリアされます。
正規表現については、「テンプレートとリソースの管理」の「正規表現について」を参照してください。
- 「了解」をクリックします。
Proxy Server によってファイルが作成され、「Restrict URL Filter Access」ページに戻ります。フィルタファイルは proxy-serverid/conf_bk ディレクトリに作成されます。
フィルタファイルに対するデフォルトアクセスの設定
使用する URL を含むフィルタファイルを作成したら、これらの URL に対するデフォルトアクセスを設定できます。
フィルタファイルに対するデフォルトアクセスを設定するには
- サーバーマネージャーにアクセスし、「Filters」タブをクリックします。
- 「Restrict URL Filter Access」リンクをクリックします。「Restrict URL Filter Access」ページが表示されます。
- フィルタで使用するテンプレートを選択します。
通常は、プロキシサーバー全体に対するフィルタファイルを作成しますが、HTTP 用に 1 セットのフィルタファイル、FTP 用にもう 1 セットのフィルタファイルを作成することもできます。
- 「URL Filter To Allow」リストを使用して、Proxy Server がサポートする URL を含むフィルタファイルを選択します。
- 「URL Filter To Deny」リストを使用して、Proxy Server がアクセスを拒否する URL を含むフィルタファイルを選択します。
- 拒否された URL を要求したクライアントに Proxy Server が返すテキストを選択します。次の 2 つのオプションのいずれかを選択できます。
- 「了解」をクリックします。
- 「Restart Required」をクリックします。「Apply Changes」ページが表示されます。
- 「Restart Proxy Server」ボタンをクリックして、変更を適用します。
コンテンツ URL のリライトProxy Server 4 では、クライアントに返されるコンテンツを調べて、パターン (URL など) を別の文字列に置き換えることができます。元の文字列と置換後の文字列の 2 つのパラメータを設定できます。Proxy Server は元の文字列と一致するテキストを検索し、置換後の文字列に置き換えます。この機能は、逆プロキシモードでのみ動作します。
URL のリライトパターンを作成するには
- サーバーマネージャーにアクセスし、「Filters」タブをクリックします。
- 「Set Content URL Rewriting」リンクをクリックします。「Set Content URL Rewriting」ページが表示されます。
- ドロップダウンリストからリソースを選択するか、正規表現を指定します。正規表現については、「テンプレートとリソースの管理」の「正規表現について」を参照してください。
- 「Source Pattern」テキストボックスで、元の文字列を指定します。
- 「Destination Pattern」テキストボックスで、置換後の文字列を指定します。
- 「MIME Pattern」テキストボックスで、コンテンツタイプを指定します。
- 「了解」をクリックします。
- 「Restart Required」をクリックします。「Apply Changes」ページが表示されます。
- 「Restart Proxy Server」ボタンをクリックして、変更を適用します。
URL のリライトパターンを編集するには
URL のリライトパターンを削除するには
特定の Web ブラウザへのアクセス制限クライアントの Web ブラウザの種類やバージョンに基づいて、プロキシサーバーへのアクセスを制限することができます。すべての Web ブラウザが要求の際にサーバーに送信する user-agent ヘッダーに基づいて制限が課されます。
クライアントの Web ブラウザに基づいてプロキシへのアクセスを制限するには
- サーバーマネージャーにアクセスし、「Filters」タブをクリックします。
- 「Set User-Agent Restriction」リンクをクリックします。「Set User-Agent Restriction」ページが表示されます。
- ドロップダウンリストからリソースを選択するか、Proxy Server がサポートするブラウザの user-agent 文字列と一致する正規表現を入力します。複数のクライアントを指定する場合は、正規表現を括弧で囲み、「|」文字を使用して複数のエントリを区切ります。正規表現については、「テンプレートとリソースの管理」の「正規表現について」を参照してください。
- 「Allow Only User-Agents Matching」オプションにチェックマークを付けます。
- 「了解」をクリックします。
- 「Restart Required」をクリックします。「Apply Changes」ページが表示されます。
- 「Restart Proxy Server」ボタンをクリックして、変更を適用します。
要求のブロックアップロードするコンテンツタイプに基づいて、ファイルのアップロードおよびその他の要求をブロックすることもできます。
MIME タイプに基づいて要求をブロックするには
- サーバーマネージャーにアクセスし、「Filters」タブをクリックします。
- 「Set Request Blocking」リンクをクリックします。「Set Request Blocking」ページが表示されます。
- ドロップダウンリストからリソースを選択するか、「Regular Expression」ボタンをクリックして正規表現を入力し、「了解」をクリックします。
- 必要な要求ブロックタイプのラジオボタンをクリックします。オプションには次のものがあります。
- 「Disabled」 - 要求のブロックを無効にします。
- 「Multipart MIME (File Upload)」 - すべてのファイルのアップロードをブロックします。
- 「MIME Types Matching Regular Expression」 - 入力した正規表現と一致する MIME タイプの要求をブロックします。正規表現については、「テンプレートとリソースの管理」の「正規表現について」を参照してください。
- すべてのクライアントの要求をブロックするのか、入力した正規表現と一致する user-agents の要求をブロックするのかを選択します。
- 要求をブロックするメソッドのラジオボタンをクリックします。次のオプションがあります。
- 「了解」をクリックします。
- 「Restart Required」をクリックします。「Apply Changes」ページが表示されます。
- 「Restart Proxy Server」ボタンをクリックして、変更を適用します。
送信されるヘッダーの抑止送信されるヘッダーを要求から削除するように Proxy Server を設定することができます (通常はセキュリティ上の理由)。たとえば、From ヘッダーを送信しないようにして、ユーザーの電子メールアドレスが漏れることを防いだり、user-agent ヘッダーをフィルタではじいて、組織で使用する Web ブラウザを外部のサーバーから特定できないようにすることもできます。また、要求がインターネットに転送される前に、イントラネット内でしか使用しないログやクライアント関連のヘッダーを削除することもできます。
この機能は、プロキシ自体により特別に処理、または生成されるヘッダーや、プロトコルが適切に動作するために必要なヘッダー (If-Modified-Since や Forwarded など) には影響しません。
Forwarded ヘッダーがプロキシから生成されないようにすることはできませんが、これはセキュリティ上の問題にはなりません。リモートサーバーは、接続しているプロキシホストを接続から検出できます。プロキシチェーン内では、内部のプロキシから生成される Forwarded ヘッダーを、外部のプロキシによって抑止することができます。内部プロキシやクライアントホスト名をリモートサーバーに漏らしたくない場合は、このようにサーバーを設定することをお勧めします。
送信されるヘッダーを抑止するには
- サーバーマネージャーにアクセスし、「Filters」タブをクリックします。
- 「Suppress Outgoing Headers」リンクをクリックします。「Suppress Outgoing Headers」ページが表示されます。
- 「Suppress Headers」テキストボックスに、抑止する要求ヘッダーの一覧をコンマで区切って入力します。たとえば、From ヘッダーおよび User-Agent ヘッダーを抑止する場合は、from,user-agent と入力します。入力したヘッダーの大文字と小文字は区別されません。正規表現については、「テンプレートとリソースの管理」の「正規表現について」を参照してください。
- 「Restart Required」をクリックします。「Apply Changes」ページが表示されます。
- 「Restart Proxy Server」ボタンをクリックして、変更を適用します。
MIME タイプによるフィルタリングMIME タイプが一致する特定のファイルをブロックするように Proxy Server を設定することができます。たとえば、Proxy Server を使用するクライアントがコンピュータウィルスをダウンロードしないように、実行可能ファイルやほかのバイナリファイルをブロックするように Proxy Server を設定できます。
Proxy Server が新しい MIME タイプをサポートするように設定するには、サーバーマネージャーで、「Preferences」>「Create/Edit MIME Types」の順に選択して、タイプを追加します。MIME タイプの作成については、「新しい MIME タイプの作成」を参照してください。
MIME タイプのフィルタリングとテンプレートを組み合わせて、特定の URL に対しては特定の MIME タイプのみがブロックされるように設定できます。たとえば、.edu ドメインの任意のコンピュータから送られてくる実行可能ファイルをブロックすることもできます。
MIME タイプによってフィルタをかけるには
- サーバーマネージャーにアクセスし、「Filters」タブをクリックします。
- 「Set MIME Filters」リンクをクリックします。「Set MIME Filters」ページが表示されます。
- MIME タイプのフィルタリングに使用するテンプレートを選択するか、サーバー全体を編集することを確認します。
- 「Current filter」テキストボックスには、ブロックする MIME タイプと一致する正規表現を入力できます。
たとえば、すべてのアプリケーションをフィルタで除外する場合は、正規表現に application/.* と入力します。この方が、すべてのアプリケーションタイプに対して各 MIME タイプのチェックマークを付けるよりも速く指定できます。正規表現では大文字と小文字は区別されません。正規表現については、「テンプレートとリソースの管理」の「正規表現について」を参照してください。
- フィルタをかける MIME タイプにチェックマークを付けます。クライアントがブロックされたファイルにアクセスを試みると、Proxy Server から「403 Forbidden」メッセージが返されます。
- 「了解」をクリックします。
- 「Restart Required」をクリックします。「Apply Changes」ページが表示されます。
- 「Restart Proxy Server」ボタンをクリックして、変更を適用します。
HTML タグによるフィルタリングProxy Server を使用して、ファイルをクライアントに渡す前にフィルタで除外する HTML タグを指定することができます。これによって、HTML ファイルに埋め込まれた Java アプレットや JavaScript などのオブジェクトをフィルタで除外することができます。HTML タグにフィルタをかけるには、HTML の開始タグと終了タグを指定します。これで、ファイルがクライアントに送信される前に、これらのタグで囲まれたすべてのテキストとオブジェクトが、プロキシによってブランクに置き換えられます。
HTML タグをフィルタで除外するには
- サーバーマネージャーにアクセスし、「Filters」タブをクリックします。
- 「Set HTML Tag Filters」リンクをクリックします。「Set HTML Tag Filters」ページが表示されます。
- 変更するテンプレートを選択します。HTTP を選択するか、特定の URL (.edu ドメイン内のホストからの URL など) のみを指定したテンプレートを選択します。
- フィルタをかけるデフォルトの HTML タグのフィルタボックスにチェックマークを付けます。デフォルトのタグには次のものがあります。
- フィルタをかける任意の HTML タグを入力できます。HTML の開始タグと終了タグを入力します。
たとえば、フォームをフィルタで除外する場合は、「Start Tag」ボックスに FORM (HTML タグでは大文字と小文字は区別されない)、「End Tag」ボックスに /FORM と入力します。OBJECT や IMG のように、フィルタをかけるタグに終了タグが存在しない場合、「End Tag」ボックスは空のままでかまいません。
- 「了解」をクリックします。
- 「Restart Required」をクリックします。「Apply Changes」ページが表示されます。
- 「Restart Proxy Server」ボタンをクリックして、変更を適用します。
コンテンツを圧縮するためのサーバー設定Proxy Server は HTTP コンテンツの圧縮をサポートしています。コンテンツを圧縮することで、ハードウェアに負担をかけることなくクライアントへの配信速度を向上させ、コンテンツのボリュームを増やすことができます。コンテンツを圧縮すると、コンテンツのダウンロード時間が短縮されます。これは、ダイヤルアップ接続や、高トラフィックの接続を利用するユーザーにとって大きな利点となります。
コンテンツを圧縮した場合、Proxy Server は圧縮されたデータを送信し、そのデータを直ちに展開 (解凍) するようにブラウザに指示を出します。このため、送信するデータの容量が減り、ページの表示速度が速くなります。
コンテンツをオンデマンドで圧縮するためのサーバー設定
転送データを直ちに圧縮するように Proxy Server を設定できます。動的に生成される HTML ページは、ユーザーがそれを要求するまで生成されません。
コンテンツをオンデマンドで圧縮するようにサーバーを設定するには
- サーバーマネージャーにアクセスし、「Filters」タブをクリックします。
- 「Compress Content on Demand」リンクをクリックします。「Compress Content on Demand」ページが表示されます。
- ドロップダウンリストからリソースを選択するか、正規表現を指定します。正規表現については、「テンプレートとリソースの管理」の「正規表現について」を参照してください。
- 次の情報を指定します。
- 「Activate Compress Content on Demand?」: サーバーが、選択したリソースの圧縮コンテンツを配信するかどうかを選択します。
- 「Vary Header」: Vary: Accept-encoding ヘッダーを挿入するかどうかを指定します。「yes」または「no」を選択します。「yes」に設定すると、ファイルの圧縮バージョンが選択された場合は常に Vary: Accept-encoding ヘッダーが挿入されます。
「no」に設定すると、Vary: Accept-encoding ヘッダーは挿入されません。
デフォルトでは、「yes」に設定されています。
- Fragment Size: 圧縮ライブラリ (zlib) が一度に圧縮する量を制御するために使用するメモリフラグメントのサイズをバイト単位で指定します。デフォルト値は 8096 です。
- Compression Level: 圧縮のレベルを指定します。1 〜 9 の値を選択します。値 1 では速度が最高になり、値 9 では圧縮率が最高になります。デフォルト値は、速度と圧縮率の両方を考慮した 6 です。
- 「了解」をクリックします。
- 「Restart Required」をクリックします。「Apply Changes」ページが表示されます。
- 「Restart Proxy Server」ボタンをクリックして、変更を適用します。