プロキシ自動構成(PAC)の詳細

PACファイルの概要

プロキシ自動構成(PAC)ファイルを使用することで、組織の要件に応じたHTTP/HTTPSトラフィックのルーティングを、ブラウザーに対して容易に設定できます。

ブラウザーのプロキシ設定では、プロキシを経由するか否かや、どのプロキシサーバにアクセスするかを固定的に指定するため、すべてのWebアクセスが同じプロキシ設定で行なわれます。

固定的なプロキシ設定だと、組織内ネットワークなどで社内サーバ向けとインターネット向けでプロキシ設定を使い分けたい場合などに不便となります。

PACファイルでは、プログラムコードの形式でルールを記述し、どのような場合にプロキシを使うか、どこへのアクセスでどのプロキシを経由するかを細かく動的に指定できます。例えば、社内サーバへは直接アクセス、インターネットへは社内のプロキシサーバを経由、という設定が可能です。

PACファイルの作成手順

PACファイルには主に、2つのパラメーター「URL」「ホスト」をもつJavaScriptの関数「FindProxyForURL」を使用します。これらのパラメーターは、ブラウザーおよび代替プロキシがプロキシサーバーを経由するかどうかを決定する条件を記載する際に使用します。「URL」には、アクセスするフルパスを使用します(例: http://www.mydomain.com)。「host」には、ホスト名またはIPアドレスを使用します。

「return」ステートメントでは、プロキシへのトラフィックの転送またはプロキシのバイパスに関するWebブラウザへの指示を指定します。例えば、「return "PROXY 192.168.xxx.xxx:8080";」と記載することで、IPアドレスが「192.168.xxx.xxx」のプロキシサーバー(ポートは8080を使用)を経由するように設定できます。

PACファイルを作成・変更する際、以下をご参照ください。

ケース1:ポート「8200」のプロキシサーバー「proxy.mydomain.com」を経由する。プロキシサーバーとの接続を確立できない場合、プロキシサーバーを経由せず、直接(DIRECT)接続する。

function FindProxyForURL (url, host)
    {
    return "PROXY proxy.mydomain.com:8200; DIRECT";
    }
                    

ケース2:組織内のイントラネットトラフィック (intranet.mydomain.comなど)はプロキシサーバーを経由せず直接接続し、その他はプロキシサーバーを経由する。

function FindProxyForURL(url, host) 
    { 
    if (isPlainHostName(host) || dnsDomainIs(host, "intranet.mydomain.com")) 
     return "DIRECT"; 
     else 
     return "PROXY proxy.mydomain.com:8200; DIRECT";
    }
                            

ケース3:フェイルオーバーするプロキシサーバーを設定する。

function FindProxyForURL(url, host) 
    { 
    
    //
    //If they only have a specified host name, go directly.
    //
    if (isPlainHostName(host) || dnsDomainIs(host, ".mydomain.com"))
    return "DIRECT"; 
    else if (shExpMatch(host, "*.com")) 
    return "PROXY proxy2.mydomain.com:8200; " +
    "PROXY proxy4.mydomain.com:8200"; 
    else 
    return "PROXY proxy3.mydomain.com:8200; " +
    "PROXY proxy4.mydomain.com:8200"; 
     } 

ケース4:自身のIPアドレスが特定のIPアドレス(999.99.999.99)の場合、プロキシサーバーを経由する。

Case 4: To redirect specific IP addresses to a proxy server:  
    
    function FindProxyForURL(url, host) 
    { 
    if (myIpAddress() == "999.99.999.99") {  
    return "PROXY proxy.mydomain.com:8200"; 
     } 
     else { 
     return "DIRECT"; 
               } 
    } 
                            

ケース5:通信プロトコルにもとづいてプロキシを設定する

function FindProxyForURL(url, host)
     {
      if (url.substring(0, 5) == "http:") {
      return "PROXY proxy1.mydomain.com:8200"; 
     } 
     else if (url.substring(0, 4) == "ftp:") { 
     return "PROXY proxy2.mydomain.com:8200"; 
     } 
     else if (url.substring(0, 6) == "https:") { 
     return "PROXY proxy3.mydomain.com:8200"; 
     } 
     else {
      return "DIRECT"; 
               } 
     } 
     

PACファイルをデプロイ(実装)する方法

PACファイルは、ブラウザー設定にて手動で実装できます。または、Webプロキシ自動検出 (WPAD) プロトコルを使用して自動化することもできます。WPADプロトコルは、DHCPまたはDNSを使用してPACファイルの場所を特定します。エンドポイント(PCやサーバー)で使用するブラウザーは起動時にPACファイルの場所を特定しようとします。WebブラウザーはDHCPサーバーにクエリを送信し、PACファイルの場所を特定します。DHCPによる自動検出が成功しなかった場合、DNSを使用してPACファイルの場所を検出します。

ブラウザー設定でPACファイルを手動で設定する手順

Google Chrome、Internet Explorer、およびSafariでは、明示的に設定されていない場合、Windowsプロキシ設定にしたがいます。PACファイルを手動で入力するには、以下の手順を実施します。

  1. 以下のいずれかの方法を使用して、「インターネットのプロパティ」ウィンドウを開きます。
    • 「ファイル名を指定して実行(windows + R)」にて「inetcpl.cpl」と入力
    • Internet Explorerを起動後、画面右上にある設定アイコンをクリック→「インターネットオプション」を選択
    • 「コントロールパネル」を起動後、「ネットワークとインターネット」→「インターネットオプション」を選択
    • Windows 10以上では「設定」→「ネットワークとインターネット」→「プロキシ」に移動することもできます。
  2. 「インターネットのプロパティ」ウィンドウで「接続」タブ→「LAN 設定」ボタンをクリック
  3. 「ローカルエリア ネットワーク (LAN) 設定」ウィンドウが表示されます。
    • 「設定を自動的に検出する」をオフにします。
    • 「自動構成スクリプトを使用する」にチェックを入れます。
    • PACファイルの配置パスを指定します。

    Webプロキシ自動検出(WPAD)を使用した設定手順

    WPADプロトコルを使用してPACファイルを設定する場合、「WebサーバーへのPACファイルの配置」「DHCPの設定」「DNSの設定」「グループポリシー(GPO)の適用」を実施します。

    1. WebサーバーへのPACファイルの配置

    作成したPACファイルを「wpad.dat」にリネームします。作成したPACファイルをWebサーバーに配置する手順は以下のとおりです。

    • PACファイルを配置するWebサーバー(IISサービスをインストールしているサーバー)にログイン
    • 「IISマネージャー」を起動
    • サーバー名をクリック→ドメイン名を右クリック→「プロパティ」
    • 「HTTPヘッダー」タブにて「MIMEタイプ」をクリック→「新規」をクリック
    • ファイル名の拡張子として「.dat」、MIMEの種類として「application/x-ns-proxy-autoconfig」と入力
    • 「OK」をクリック

    2. DHCPの設定

    PACファイル「wpad.dat」をDHCPサーバーができるよう、以下の設定を実施します。

    • DHCPサーバーにて「DHCP」を起動
    • 任意のDHCPサーバーを右クリック→「既定のオプションの設定」→「追加」をクリック
    • 次のように情報を入力します。「名前:WPAD」「コード:252」「データ型:String」
    • 「OK」をクリック
    • 文字列の値としてPACファイルの配置パスを入力(例:http://webserver.domain.com/wpad.dat)→「OK」をクリック
    • 「サーバーオプション」を右クリック→「オプションの構成」をクリック→オプション252が選択されていることを確認
    • 「スコープオプション」を右クリック→「オプションの構成」をクリック→「詳細設定」をクリック
    • 「ベンダークラス」にてStandard Optionを選択
    • 「利用可能なオプション」にて、252 Proxy Autodiscoveryを選択→「OK」をクリック

    3. DNSの設定

    • DNSサーバーにて「DNS」を起動
    • PACファイルを配置しているWebサーバーのAレコードを追加

    4. グループポリシー(GPO)の適用

    GPOを使用して、必要な自動プロキシ検出設定を、すべてのエンドポイント(PCやサーバー)に配布します。

    • GPMC(グループポリシー管理コンソール)を起動
    • 新しいGPOを作成する場合、ポリシーを適用するドメイン、サイト、またはOUを右クリック→「このドメインにGPOを作成し、このコンテナにリンクする」をクリック→名前を入力することで、新規GPOを作成できます。
    • 新しく作成したGPOまたは既存のGPOを右クリック→「編集」
    • 「ユーザーの構成」→「基本設定」→「コントロール パネルの設定」→「インターネット設定」を右クリック→「新規作成」→ドロップダウンリストから優先するブラウザーのバージョンを選択
    • プロパティ設定画面にて、「接続」タブ→「LAN 設定」ボタンをクリック
    • 「ローカルエリア ネットワーク (LAN) 設定」ウィンドウが表示されます。
      • 「設定を自動的に検出する」にチェックを入れます。
      • 「適用」をクリック→「OK」をクリック
       概要