はじめに
こんにちは。
業務でPACファイルの設定に触れる機会がありました。
備忘も兼ねてZscalerとPACファイルの概要について噛み砕いて下記に残します。
経緯
ある日、業務の中でこんな依頼をされました。
「ZscalerのPACファイルについて設定変更をお願いします。URLとプロキシは下記です。」
業務でZscalerというものを使ってURLフィルタリング設定などを行っており、
その類の依頼が来たのだと最初は思いました。
ただPACファイルについて調べるとどうも違う様子。
ミスすると業務影響も大きいと言われ、正直かなり焦りました。
PACファイルとは?
PACファイル(Proxy Auto-Config)は
「どの通信をプロキシ経由にするか」を自動で判断するための設定ファイルです。
アクセス先のURLやIPアドレスに応じて、
①プロキシを使う②直接通信する(DIRECT)③別のプロキシを使う
などを細かく制御できます。
例としては
・社内サーバーにアクセスする → 直接つなぐ(DIRECT)
・社外サイトにアクセスする → プロキシ経由(PROXY)
といった具合です。
Zscalerとは?
Zscalerとは、クラウド型のセキュリティプラットフォームです。
簡単に言えば従来のVPNやファイアウォール、セキュリティソフトのような機能を、
クラウドでより安全かつ効率的に提供するサービスです。
グローバル企業や、リモートワークが常態化した企業に採用されているようです。
色々と機能はありますが経緯に記載の通り、
筆者はこちらのサービスを利用してフィルタリング設定などを実施してます。
ZscalerにおけるPACファイル
ZscalerはユーザーのWeb通信を中継・フィルタリングしてくれます。
機能の一つとして、通信先に応じて特定のドメインはZscaler経由、その他はDIRECT、など
どのノードを通るかについてルールを設定できるのです。
このとき設定に使われるのがPACファイルとなります。
なおPACファイルの中身はJavaScriptで書く必要があります。
PAC構文と意味 (参考)
記事に書ける範囲で、PACファイルの中身を確認すると下記のような記載がありました。
if (shExpMatch(host, "*.???.com")) {
return "??????";
}
冒頭の依頼に話を戻すと、どうやらここの設定を変更すれば依頼に対応できるらしい。
JavaScriptの知見もないので頭を抱えましたが、調べると下記のような意味となります。
・shExpMatch(host, "*.???.com")
*付きURLと一致。hostが???.comのサブドメインならreturnに従います。
shExpMatchの他にも、
dnsDomainIs(ドメインと一致)、dnsResolve(名前解決結果と一致)等があります。
・return "??????"
??????の接続方法を指定します。"DIRECT"や"PROXY ホスト名:ポート番号"等が入ります
上記を踏まえて、指定されたプロキシの構文に"*.???.com"を置き換えた一行を追加して
無事依頼の方は対応完了となりました。
終わりに
ZscalerにおけるPAC設定について簡単にまとめましたがいかがでしたでしょうか
深堀りした解説は現場の先輩や公式サイトを頼っていただくとして、
とっかかりのイメージ作りに貢献できたなら幸いです。