Como criar um proxy https transparente com firehol e tinyproxy?

8

Eu tenho uma configuração de proxy transparente no Ubuntu 10.04.4 com firehol e tinyproxy que funciona bem para http, mas não consigo trabalhar para https.

Conectar-se ao tinyproxy funciona diretamente quando os seguintes comandos são concluídos ok:

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

HTTP proxying transparente também funciona bem:

curl  http://www.google.com

mas ao acessar o google diretamente usando https, o comando simplesmente trava:

curl  https://www.google.com

Aqui estão os arquivos de configuração completos para firehol e tinyproxy. Note que não tenho interesse em usar o firehol para nada além de proxy transparente.

firehol.conf:

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

tinyproxy.conf (todos os padrões, exceto o proxy upstream):

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
    
por Stefan Farestam 09.11.2012 / 18:06

1 resposta

11

Tanto quanto eu posso dizer tinyproxy simplesmente não suporta conexões HTTPS de entrada. Ele permitirá que você acesse sites HTTPS usando o método CONNECT , mas para que isso seja usado, o navegador / cliente deve saber que está falando com um servidor proxy e usar os métodos de conexão corretos.

As diretivas ConnectPort simplesmente definem quais portas é permitido fazer conexões.

O único produto FOSS que suporta a conexão HTTPS de proxy transparente é Squid , e o suporte para isso é relativamente recente . Em também introduz algumas preocupações de segurança bastante importantes, já que um proxy HTTPS transparente precisa executar um ataque man-in-the-middle e descriptografar a conexão para que ela saiba a que se conectar.

    
por 09.11.2012 / 19:00