如何使用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用于其他任何东西都没有兴趣。

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

Answers:


11

据我所知,tinyproxy根本不支持传入的HTTPS连接。它将允许您使用CONNECT方法访问HTTPS站点,但是要使用该方法,浏览器/客户端必须知道它正在与代理服务器进行通信,并使用正确的连接方法。

ConnectPort指令只是定义哪些端口是允许进行连接。

唯一支持透明代理HTTPS连接的FOSS产品是Squid,对此产品的支持相对较新。由于透明的HTTPS代理必须执行中间人攻击并解密连接,以便知道要连接的内容,因此in中还介绍了一些非常重要的安全问题。


这就说得通了。经过调查,看来您是正确的,鱿鱼是您的最佳选择。对于Ubuntu 10.04(透明),没有支持ssl / https的3.1反向端口,因此需要自定义编译。我会尝试的。谢谢!
Stefan Farestam,2012年

使用Squid版本3.5,现在可以使用“窥视和拼接”功能来实现HTTPS代理,而无需做中间人(wiki.squid-cache.org/Features/SslPeekAndSplice)。
拉斐尔·克雷帕(RafałKrypa),
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.