透過型プロキシとは
透過型プロキシ (Transparent Proxy) とは、ブラウザにプロキシの設定をしていない状態でもプロキシサーバ経由による Web アクセスをさせる方法です。透過プロキシとも言います。
フリーウェアの Squid でも実現できますし、商用プロキシの BlueCoat や i-filter 等でも機能を持っています。
仕組みとしては、インターネットへの通信経路上に透過プロキシの設定をしたプロキシサーバを配置するのみです。
以下に、通常のプロキシと透過型プロキシの通信の比較を示します。
「インターネットへの通信経路上」といっても、デフォルトルートの経路上に配置してしまうと、smtp や pop, imap 等の他のプロトコルがインターネット通信できなくなってしまいます (http 等の一部のプロトコルのみ、透過型プロキシサーバで取り次がれますので)。
なので、透過型プロキシサーバは、経路の少し横に配置し、ルータや L3 スイッチの PBR (ポリシーベースルーティング) 機能により http 通信だけを曲げるのが一般的です。
また、firewalld のポートフォワード機能により、tcp:80 で来た通信を 8080 等のプロキシ待受ポートに変換させたりします。
なお、この透過型プロキシは、通信ジャックと同じことですので、https 通信についても透過型プロキシ経由にしようとすると、ブラウザに SSL/TLS の警告が表示されてしまいます。
これを避けるためには、プロキシサーバにて動的に各サーバへの証明書を作成 (例えばクライアントが www.yahoo.co.jp へアクセスする際には CN=www.yahoo.co.jp の証明書をその場で作成しクライアントへ提示) することに加え、クライアント側にはそのプロキシサーバのルート証明書のインストール (信頼設定) が必要です。
透過型プロキシのメリット・デメリット
メリット
・ブラウザにプロキシの設定を入れなくて良い
⇒持ち出しても使うノートパソコン等にはとても便利
デメリット
・httpsで警告が出てしまう
⇒ 回避策は前述の通り、プロキシサーバでの動的な証明書作成およびクライアントでのプロキシサーバルート証明書インストール。
他の回避策としては PBR で tcp:443 は曲げず、直接インターネットへ通信させる。https でのプロキシログは取れなくなってしまうが、Palo Alto 等の UTM の URL フィルタ機能があれば、TLS Client Hello の SNI を見てログを取得できるため、補完できる。
・事前に PBR などの NW 設計が必要
⇒ PBR 設定できる NW 機器はどれか?その近くにプロキシサーバを配置できるか?特殊な http 通信に影響を与える可能性がないか?
SQUID での実装手順
以下を参照ください。
コメント