PACファイル
Webブラウザが、アクセスする宛先ごとに、プロキシサーバを経由するか、直接接続するかを自動で判断するための設定ファイル。JavaScriptの関数で記述する。
イマシルちゃんの解説
インターネットのサイトはプロキシサーバを通したいけど、社内のサーバやよく使うクラウドサービスには、直接つなぎたい……。
そんなとき、パソコン1台1台に細かく設定するのは大変だよね。
PACファイルは、「この宛先ならプロキシ経由、この宛先なら直接ね」っていう道案内のルールを書いた、小さなプログラムなんだ。
ブラウザがこのファイルを読んで、宛先ごとに自動で道を選んでくれるんだよ!
より深い解説
定義
PACファイル(Proxy Auto-Configuration file)は、ブラウザやOSが、URLごとに使うプロキシサーバを決めるための設定ファイルである。JavaScriptで FindProxyForURL(url, host) という関数を書き、その戻り値で接続方法を指定する。
記述の例
function FindProxyForURL(url, host) {
// 社内のサーバとSaaSには直接接続する
if (dnsDomainIs(host, ".example.local") || dnsDomainIs(host, ".saas.example.com")) {
return "DIRECT";
}
// それ以外はプロキシサーバを経由する(停止時は直接)
return "PROXY proxy.example.local:10080; DIRECT";
}
| 戻り値 | 意味 |
|---|---|
| DIRECT | プロキシサーバを経由せず、直接接続する |
| PROXY ホスト:ポート | 指定したプロキシサーバを経由する |
| 複数を「;」で並べる | 前のものが使えないとき、次のものを使う |
配布の方法
| 方法 | 内容 |
|---|---|
| URLの指定 | ブラウザやOSの設定に、PACファイルのURL(例:http://wpad.example.local/proxy.pac)を設定する |
| WPAD | DHCPのオプションやDNS(wpad.ドメイン名)を使って、端末がPACファイルの場所を自動で見つける |
| 管理ツール | Active Directoryのグループポリシーなどで、一括して設定する |
使い分けの考え方
| 宛先 | 経路 | 理由 |
|---|---|---|
| インターネット上の一般のWebサイト | プロキシ経由 | アクセス制御、ログの取得、利用者認証のため |
| 社内のサーバ | 直接 | 社内の通信をプロキシに集める必要がない。遠回りや負荷を避ける |
| 送信元のアドレスで制限している、信頼できるSaaS | 直接(設計による) | プロキシの負荷を減らす。通信量の多いサービス(Web会議など)は直接にすることが多い |
午後での問われ方
PACファイルの設定から、どの通信がプロキシサーバを経由し、どの通信が直接接続されるかを読み取り、ファイアウォールの許可ルール(端末からプロキシサーバの待受ポートへの通信、端末からSaaSへの直接の通信など)を穴埋めさせる形で問われる。