Sun Java System Web Proxy Server 4.0.8 管理ガイド

第 13 章 プロキシを使用したコンテンツのフィルタリング

この章では、URL にフィルタをかけて、Proxy Server がその URL へのアクセスできないようにしたり、URL からクライアントに返される HTML および JavaScript コンテンツを変更できないようにする方法について説明します。また、この章では、クライアントが使用している Web ブラウザ (ユーザーエージェント) に基づいて、プロキシを使用してアクセスを制限できるようにする方法についても説明します。

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/.*

この行は、ポート番号を指定しない場合のみ機能します。正規表現の詳細については、第 16 章テンプレートとリソースの管理の「正規表現について」を参照してください。

サーバーマネージャーを使用せずに独自のファイルを作成する場合は、サーバーマネージャーのページを使用して空のファイルを作成し、そのファイルにテキストを追加するか、そのファイルを正規表現を格納するファイルと置き換えます。

Procedureフィルタファイルを作成するには

  1. サーバーマネージャーにアクセスし、「Filters」タブをクリックします。

  2. 「Restrict URL Filter Access」リンクをクリックします。

    「Restrict URL Filter Access」ページが表示されます。

  3. 「Create/Edit」ボタンの横のドロップダウンリストから、「New Filter」を選択します。

  4. ドロップダウンリストの右のテキストボックスにフィルタファイルの名前を入力して、「Create/Edit」ボタンをクリックします。

    「Filter Editor」ページが表示されます。

  5. スクロール可能な「Filter Content」テキストボックスを使用して、URL と URL の正規表現を入力します。

    「Reset」ボタンを押すと、このフィールドのすべてのテキストがクリアされます。

    正規表現の詳細については、第 16 章テンプレートとリソースの管理の「正規表現について」を参照してください。

  6. [了解]をクリックします。

    Proxy Server によってファイルが作成され、「Restrict URL Filter Access」ページに戻ります。フィルタファイルは proxy-serverid/conf_bk ディレクトリに作成されます。

フィルタファイルに対するデフォルトアクセスの設定

使用する URL を含むフィルタファイルを作成したら、これらの URL に対するデフォルトアクセスを設定できます。

Procedureフィルタファイルに対するデフォルトアクセスを設定するには

  1. サーバーマネージャーにアクセスし、「Filters」タブをクリックします。

  2. 「Restrict URL Filter Access」リンクをクリックします。

    「Restrict URL Filter Access」ページが表示されます。

  3. フィルタで使用するテンプレートを選択します。

    通常は、プロキシサーバー全体に対するフィルタファイルを作成しますが、HTTP 用に 1 セットのフィルタファイル、FTP 用にもう 1 セットのフィルタファイルを作成することもできます。

  4. 「URL Filter To Allow」リストを使用して、Proxy Server がサポートする URL を含むフィルタファイルを選択します。

  5. 「URL Filter To Deny」リストを使用して、Proxy Server がアクセスを拒否する URL を含むフィルタファイルを選択します。

  6. 拒否された URL を要求したクライアントに Proxy Server が返すテキストを選択します。

    • プロキシが生成するデフォルトの「Forbidden」応答を返信します。

      • カスタムテキストを含むテキストファイルか HTML ファイルを送信します。このファイルへの絶対パスをテキストボックスに入力します。

  7. [了解]をクリックします。

  8. 「Restart Required」をクリックします。「Apply Changes」ページが表示されます。

  9. 「Restart Proxy Server」ボタンをクリックして、変更を適用します。

コンテンツ URL のリライト

Proxy Server では、クライアントに返されるコンテンツを調べて、URL などのパターンを別の文字列に置き換えることができます。元の文字列と置換後の文字列の 2 つのパラメータを設定できます。Proxy Server は元の文字列と一致するテキストを検索し、置換後の文字列に置き換えます。この機能は、逆プロキシモードでのみ動作します。

ProcedureURL のリライトパターンを作成するには

  1. サーバーマネージャーにアクセスし、「Filters」タブをクリックします。

  2. 「Set Content URL Rewriting」リンクをクリックします。

    「Set Content URL Rewriting」ページが表示されます。

  3. ドロップダウンリストからリソースを選択するか、正規表現を指定します。

    正規表現の詳細については、第 16 章テンプレートとリソースの管理の「正規表現について」を参照してください。

  4. 「Source Pattern」テキストボックスで、元の文字列を指定します。

  5. 「Destination Pattern」テキストボックスで、置換後の文字列を指定します。

  6. 「MIME Pattern」テキストボックスで、コンテンツタイプを指定します。

  7. [了解]をクリックします。

  8. 「Restart Required」をクリックします。

    「Apply Changes」ページが表示されます。

  9. 「Restart Proxy Server」ボタンをクリックして、変更を適用します。

ProcedureURL のリライトパターンを編集するには

  1. サーバーマネージャーにアクセスし、「Filters」タブをクリックします。

  2. 「Set Content URL Rewriting」リンクをクリックします。

    「Set Content URL Rewriting」ページが表示されます。

  3. 編集する URL リライトパターンの横の「Edit」リンクをクリックします。

  4. 「了解」をクリックして変更内容を保存し、

  5. 「Restart Required」をクリックします。

    「Apply Changes」ページが表示されます。

  6. 「Restart Proxy Server」ボタンをクリックして、変更を適用します。

ProcedureURL のリライトパターンを削除するには

  1. サーバーマネージャーにアクセスし、「Filters」タブをクリックします。

  2. 「Set Content URL Rewriting」リンクをクリックします。

    「Set Content URL Rewriting」ページが表示されます。

  3. 削除する URL リライトパターンの横の「Remove」リンクをクリックします。

    「了解」をクリックして、削除を確認します。

  4. 「Restart Required」をクリックします。

    「Apply Changes」ページが表示されます。

  5. 「Restart Proxy Server」ボタンをクリックして、変更を適用します。

特定の Web ブラウザへのアクセス制限

クライアントの Web ブラウザの種類やバージョンに基づいて、プロキシサーバーへのアクセスを制限することができます。すべての Web ブラウザが要求の際にサーバーに送信する user-agent ヘッダーに基づいて制限が課されます。

Procedureクライアントの Web ブラウザに基づいてプロキシへのアクセスを制限するには

  1. サーバーマネージャーにアクセスし、「Filters」タブをクリックします。

  2. 「Set User-Agent Restriction」リンクをクリックします。

    「Set User-Agent Restriction」ページが表示されます。

  3. ドロップダウンリストからリソースを選択するか、Proxy Server がサポートするブラウザの user-agent 文字列と一致する正規表現を入力します。

    複数のクライアントを指定する場合は、正規表現を括弧で囲み、「|」文字を使用して複数のエントリを区切ります。正規表現の詳細については、第 16 章テンプレートとリソースの管理の「正規表現について」を参照してください。

  4. 「Allow Only User-Agents Matching」オプションにチェックマークを付けます。

  5. [了解]をクリックします。

  6. 「Restart Required」をクリックします。

    「Apply Changes」ページが表示されます。

  7. 「Restart Proxy Server」ボタンをクリックして、変更を適用します。

要求のブロック

アップロードするコンテンツタイプに基づいて、ファイルのアップロードおよびその他の要求をブロックすることもできます。

ProcedureMIME タイプに基づいて要求をブロックするには

  1. サーバーマネージャーにアクセスし、「Filters」タブをクリックします。

  2. 「Set Request Blocking」リンクをクリックします。

    「Set Request Blocking」ページが表示されます。

  3. ドロップダウンリストからリソースを選択するか、「Regular Expression」ボタンをクリックして正規表現を入力し、「了解」をクリックします。

  4. 必要な要求ブロックのタイプを選択します。

    • 「Disabled」— 要求のブロックを無効にします。

    • 「Multipart MIME (File Upload)」— すべてのファイルのアップロードをブロックします。

    • 「MIME Types Matching Regular Expression」— 入力した正規表現と一致する MIME タイプの要求をブロックします。正規表現の詳細については、第 16 章テンプレートとリソースの管理の「正規表現について」を参照してください。

  5. すべてのクライアントの要求をブロックするのか、入力した正規表現と一致する user-agents の要求をブロックするのかを選択します。

  6. 要求をブロックするメソッドを選択します。

    次のオプションがあります。

    • 「Any Method With Request Body」— メソッドに関係なく、要求のボディーを含むすべての要求をブロックします。

    • メソッドは次のものに限定されます。

      • 「POST」— POST メソッドを使用するファイルアップロード要求をブロックします。

      • 「PUT」— PUT メソッドを使用するファイルアップロード要求をブロックします。

    • 「Methods Matching Regular Expression」— 入力したメソッドを使用するすべてのファイルアップロード要求をブロックします。

  7. [了解]をクリックします。

  8. 「Restart Required」をクリックします。

    「Apply Changes」ページが表示されます。

  9. 「Restart Proxy Server」ボタンをクリックして、変更を適用します。

送信されるヘッダーの抑止

通常セキュリティー上の理由で、送信されるヘッダーを要求から削除するように Proxy Server を設定することができます。たとえば、From ヘッダーを送信しないようにして、ユーザーの電子メールアドレスが漏れることを防いだり、user-agent ヘッダーをフィルタで除外して、組織で使用する Web ブラウザを外部のサーバーから特定できないようにすることもできます。また、要求がインターネットに転送される前に、イントラネット内でしか使用しないログやクライアント関連のヘッダーを削除することもできます。

この機能は、プロキシ自体により特別に処理、または生成されるヘッダーや、If-Modified-Since や Forwarded などプロトコルが適切に動作するために必要なヘッダーには影響しません。

生成元のプロキシからの Forwarded ヘッダーはセキュリティー上の問題にはなりません。リモートサーバーは、接続しているプロキシホストを接続から検出できます。プロキシチェーン内では、内部のプロキシから生成される Forwarded ヘッダーを、外部のプロキシによって抑止することができます。内部プロキシやクライアントホスト名をリモートサーバーに漏らしたくない場合は、このようにサーバーを設定することをお勧めします。

Procedure送信されるヘッダーを抑止するには

  1. サーバーマネージャーにアクセスし、「Filters」タブをクリックします。

  2. 「Suppress Outgoing Headers」リンクをクリックします。

    「Suppress Outgoing Headers」ページが表示されます。

  3. 「Suppress Headers」テキストボックスに、抑止する要求ヘッダーの一覧をコンマで区切って入力します。

  4. 「Restart Required」をクリックします。

    「Apply Changes」ページが表示されます。

  5. 「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 ドメインの任意のコンピュータから送られてくる実行可能ファイルをブロックすることもできます。

ProcedureMIME タイプによってフィルタをかけるには

  1. サーバーマネージャーにアクセスし、「Filters」タブをクリックします。

  2. 「SetMIME Filters」リンクをクリックします。

    「Set MIME Filters」ページが表示されます。

  3. MIME タイプのフィルタリングに使用するテンプレートを選択するか、サーバー全体を編集することを確認します。

  4. 「Current filter」テキストボックスには、ブロックする MIME タイプと一致する正規表現を入力できます。

    たとえば、すべてのアプリケーションをフィルタで除外する場合は、正規表現に application/.* と入力します。この方法のほうが、すべてのアプリケーションタイプに対して各 MIME タイプのチェックマークを付けるよりも速く指定できます。正規表現では大文字と小文字は区別されません。正規表現の詳細については、第 16 章テンプレートとリソースの管理の「正規表現について」を参照してください。

  5. フィルタをかける MIME タイプにチェックマークを付けます。

    クライアントがブロックされたファイルにアクセスを試みると、Proxy Server から「403 Forbidden」メッセージが返されます。

  6. [了解]をクリックします。

  7. 「Restart Required」をクリックします。

    「Apply Changes」ページが表示されます。

  8. 「Restart Proxy Server」ボタンをクリックして、変更を適用します。

HTML タグによるフィルタリング

ファイルをクライアントに渡す前にフィルタで除外する HTML タグを指定することができます。この方法によって、HTML ファイルに埋め込まれた Java アプレットや JavaScript などのオブジェクトをフィルタで除外することができます。HTML タグにフィルタをかけるには、HTML の開始タグと終了タグを指定します。これで、ファイルがクライアントに送信される前に、これらのタグで囲まれたすべてのテキストとオブジェクトが、プロキシによってブランクに置き換えられます。

元の (編集前の) ファイルをキャッシュするようにプロキシを設定すれば、プロキシによってそのリソースがキャッシュ内に保存されます。

ProcedureHTML タグをフィルタで除外するには

  1. サーバーマネージャーにアクセスし、「Filters」タブをクリックします。

  2. 「Set HTML Tag Filters」リンクをクリックします。

    「Set HTML Tag Filters」ページが表示されます。

  3. 変更するテンプレートを選択します。

    HTTP を選択するか、特定の URL (.edu ドメイン内のホストからの URL など) のみを指定したテンプレートを選択します。

  4. フィルタをかけるデフォルトの HTML タグを選択します。

    • APPLET は通常 Java アプレットを囲んでいます。

    • SCRIPT は、JavaScript コードの開始を示しています。

    • IMG インラインイメージファイルを指定しています。

  5. フィルタをかける任意の HTML タグを入力できます。

    HTML の開始タグと終了タグを入力します。

    たとえば、フォームをフィルタで除外する場合は、「Start Tag」ボックスに FORM、「End Tag」ボックスに /FORM と入力します。HTML タグでは大文字と小文字は区別されません。OBJECTIMG のように、フィルタをかけるタグに終了タグが存在しない場合、「End Tag」ボックスは空のままでかまいません。

  6. [了解]をクリックします。

  7. 「Restart Required」をクリックします。

    「Apply Changes」ページが表示されます。

  8. 「Restart Proxy Server」ボタンをクリックして、変更を適用します。

コンテンツを圧縮するためのサーバー設定

Proxy Server は HTTP コンテンツの圧縮をサポートしています。コンテンツを圧縮することで、ハードウェアに負担をかけることなくクライアントへの配信速度を向上させ、コンテンツのボリュームを増やすことができます。コンテンツ圧縮により、コンテンツのダウンロード時間が減少します。これは、ダイアルアップ接続やトラフィックの多い接続を使用するユーザーにとって非常に重要な利点です。

コンテンツを圧縮した場合、Proxy Server は圧縮されたデータを送信し、そのデータを直ちに展開 (解凍) するようにブラウザに指示を出します。これにより、送信するデータの容量が減り、ページの表示速度が速くなります。

コンテンツをオンデマンドで圧縮するためのサーバー設定

転送データを直ちに圧縮するように Proxy Server を設定できます。動的に生成される HTML ページは、ユーザーがそれを要求するまで生成されません。

Procedureコンテンツをオンデマンドで圧縮するようにサーバーを設定するには

  1. サーバーマネージャーにアクセスし、「Filters」タブをクリックします。

  2. 「Compress Content on Demand」リンクをクリックします。

    「Compress Content on Demand」ページが表示されます。

  3. ドロップダウンリストからリソースを選択するか、正規表現を入力します。

    正規表現の詳細については、第 16 章テンプレートとリソースの管理の「正規表現について」を参照してください。

  4. 次の情報を指定します。

    • 「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 です。

  5. [了解]をクリックします。

  6. 「Restart Required」をクリックします。

    「Apply Changes」ページが表示されます。

  7. 「Restart Proxy Server」ボタンをクリックして、変更を適用します。