サーバソフトウェア

【図解】透過型プロキシの仕組み ~https(SSL/TLS)への対応~

透過型プロキシとは

透過型プロキシ (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 での実装手順

以下を参照ください。

【Rockylinux9】SQUIDの透過型プロキシ構築手順
やりたいこと Rockylinux9 の SQUID を透過型プロキシとして構築...

コメント

タイトルとURLをコピーしました