Назад | Перейти на главную страницу

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

У меня есть прозрачная настройка прокси в 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

Насколько я могу судить, tinyproxy просто не поддерживает входящие HTTPS-соединения. Это позволит вам получить доступ к сайтам HTTPS с помощью ПОДКЛЮЧИТЬ метод, но для его использования браузер / клиент должен знать, что он обращается к прокси-серверу, и использовать правильные методы подключения.

В ConnectPort Директивы просто определяют, к каким портам можно подключаться.

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