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


8

Ubuntu 10.04.4で透過的なプロキシ設定を行っていますが、fireholとtinyproxyを使用してhttpで正常に機能しますが、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

回答:


11

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

ConnectPortディレクティブは、単にへの接続をすることが許されているポートを定義します。

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


それは理にかなっている。調査したところ、あなたは正しいと思われ、イカが行く方法です。Ubuntu 10.04(lucid)で利用可能なssl / httpsサポートを備えた3.1のバックポートがないため、カスタムコンパイルが必要です。これを試してみます。ありがとう!
Stefan Farestam

Squidバージョン3.5では、「ピークアンドスプライス」機能を使用して、man-in-the-middle(wiki.squid-cache.org/Features/SslPeekAndSplice)を実行せずにHTTPSプロキシを実装できるようになりました。
ラファウKrypa
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.