Как создать прозрачный https прокси с firehol и tinyproxy?

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

но при доступе к Google напрямую через https команда просто зависает:

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
Стефан Фарестам
источник

Ответы:

11

Насколько я могу сказать, tinyproxy просто не поддерживает входящие HTTPS-соединения. Это позволит вам получить доступ к HTTPS-сайтам с помощью метода CONNECT , но для этого браузер / клиент должен знать, что он общается с прокси-сервером, и использовать правильные методы подключения.

В ConnectPortдирективах просто определяет , какие порты это допустимо , чтобы добраться до.

Единственным продуктом FOSS, который поддерживает прозрачное проксирование HTTPS-соединения, является Squid , и поддержка для него является относительно недавней. В нем также представлены некоторые довольно серьезные проблемы безопасности, поскольку прозрачный HTTPS-прокси должен выполнять атаку «человек посередине» и дешифровать соединение, чтобы знать, к чему подключаться.

Zoredache
источник
В этом есть смысл. После расследования выясняется, что вы правы, и кальмар - это путь. Для Ubuntu 10.04 (lucid) нет бэкпорта версии 3.1 с поддержкой ssl / https, поэтому требуется специальная компиляция. Я попробую это. Спасибо!
Стефан Фарестам
С версией 3.5 Squid теперь возможно использовать функцию «peek and splice» для реализации HTTPS-прокси без участия человека в середине ( wiki.squid-cache.org/Features/SslPeekAndSplice ).
Rafał Krypa