web-dev-qa-db-ja.com

fireholとtinyproxyで透過的なhttpsプロキシを作成する方法?

Ubuntu 10.04.4で、httpで正常に動作するファイアホールとtinyproxyを備えた透過的なプロキシ設定がありますが、httpsで動作させることができません。

Tinyproxyに直接接続すると、次のコマンドで問題なく完了します。

env  http_proxy=localhost:8888 curl  http://www.google.com
env https_proxy=localhost:8888 curl https://www.google.com

HTTP透過プロキシも正常に機能します。

curl  http://www.google.com

しかし、httpsを使用して直接Googleにアクセスすると、コマンドがハングするだけです。

curl  https://www.google.com

以下は、fireholとtinyproxyの完全な設定ファイルです。透過プロキシ以外には何もファイアホールを使用することに関心がないことに注意してください。

firehol.conf:

transparent_proxy "80 443" 8888 proxy
interface any world
   client all accept
   server all accept

tinyproxy.conf(上流プロキシを除くすべてのデフォルト):

User    nobody
Group   nogroup
Port    8888
Timeout 600
DefaultErrorFile  "/usr/share/tinyproxy/default.html"
StatFile          "/usr/share/tinyproxy/stats.html"
Logfile           "/var/log/tinyproxy/tinyproxy.log"
LogLevel Info
PidFile           "/var/run/tinyproxy/tinyproxy.pid"
MaxClients     100
MinSpareServers  5
MaxSpareServers 20
StartServers    10
MaxRequestsPerChild 0
ViaProxyName "tinyproxy"
ConnectPort 443
ConnectPort 563
upstream corporate.fire.wall:8080
8
Stefan Farestam

私が知る限り、tinyproxyは着信HTTPS接続をサポートしていません。 [〜#〜] connect [〜#〜]メソッドを使用してHTTPSサイトにアクセスできますが、これを使用するには、ブラウザ/クライアントは、プロキシサーバーと通信していることを認識し、正しい接続方法を使用する必要があります。

ConnectPortディレクティブは、接続を許可するポートを定義するだけです。

透過的にプロキシするHTTPS接続をサポートする唯一のFOSS製品は Squid であり、そのサポートは比較的最近です。では、透過的なHTTPSプロキシが中間者攻撃を実行して接続を復号化し、接続先を認識できるようにする必要があるため、かなり大きなセキュリティ上の懸念も生じます。

11
Zoredache