web-dev-qa-db-ja.com

squidを介してHTTPSトラフィックを透過的に転送する方法は?

すべてのHTTPおよびHTTPSトラフィックを、透過プロキシとして機能するsquidにリダイレクトしたい。このトラフィックは、特定の時間帯にブロックまたは許可されます(一括で)。具体的には、HTTPSトラフィックを復号化/再暗号化したくないので、そのままプッシュします。

HTTP部分が機能し、REDIRECTshorewallルールが宛先ポート80宛てのすべてのトラフィックをtransparentモードのリスニング3128 squidポートに転送します。

ポート443の同じトリックは機能しません。

HTTPSトラフィックの透過プロキシを設定する方法については チュートリアル がありますが、見つけたものはすべて、トラフィックを復号化/再暗号化するための証明書ペアの作成について記述しています。

squid wiki は、HTTPSトラフィックをトンネリングする方法としてCONNECTについて言及していますが、http_access allow CONNECT allを構成に追加しても(デフォルトのdenyを無効にしても)、何も変わりません。

次に、一部の previousanswers は、TLSトンネルを切断せずに透過的なHTTPSトラフィックを送信できないことを示唆しています。

したがって:squidを介して再ルーティングされたHTTPSトラフィックが変更なしで透過的に転送されるようにiptablesを構成する方法はありますか?

(私はいくつかの時間ルールが満たされたときに最終的にブロックします(つまり、ブロックはHTTPSストリーム自体内の何にも基づいていないことになります))

4
WoJ

しかし、私が見つけたものはすべて、トラフィックを復号化/再暗号化するための証明書ペアの作成を記述しています-私がしたくないことです。

Httpsプロトコルがどのように機能するかにより、単に求めていることは不可能です。オプションは次のとおりです。

  • ファイアウォール経由の発信httpsを許可し、プロキシを使用しないでください
  • プロキシ/フィルタを使用するようにクライアントを構成すると、クライアントはプロキシへのHTTP CONNECT呼び出しを使用します。
  • プロキシを中間者に設定し、sslbumpを実行します。

いくつかの時間ルールが満たされたときに私は最終的にブロックします

時刻に基づいて正しい iptablesモジュール フィルターを使用できます。おそらく、ファイアウォールで時間帯フィルタリングを処理するだけですか?

4
Zoredache