Comment créer un proxy https transparent avec firehol et tinyproxy?

8

J'ai une configuration de proxy transparente dans Ubuntu 10.04.4 avec firehol et tinyproxy qui fonctionne bien pour http mais je ne peux pas le faire fonctionner pour https.

La connexion directe à tinyproxy fonctionne correctement car les commandes suivantes se terminent bien:

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

Le proxy transparent HTTP fonctionne également très bien:

curl  http://www.google.com

mais lorsque vous accédez directement à Google à l'aide de https, la commande se bloque simplement:

curl  https://www.google.com

Voici les fichiers de configuration complets pour firehol et tinyproxy. Notez que je n'ai aucun intérêt à utiliser Firehol pour autre chose que le proxy transparent.

firehol.conf:

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

tinyproxy.conf (toutes les valeurs par défaut sauf le proxy en amont):

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
Stefan Farestam
la source

Réponses:

11

Pour autant que je sache, tinyproxy ne prend tout simplement pas en charge les connexions HTTPS entrantes. Il vous permettra d'accéder aux sites HTTPS en utilisant la méthode CONNECT , mais pour que cela soit utilisé, le navigateur / client doit savoir qu'il parle à un serveur proxy et utiliser les méthodes de connexion correctes.

Les ConnectPortdirectives définissent simplement les ports auxquels il est autorisé de se connecter.

Squid est le seul produit FOSS qui prend en charge la connexion HTTPS par proxy de manière transparente et son support est relativement récent. In présente également des problèmes de sécurité assez importants, car un proxy HTTPS transparent doit effectuer une attaque de l'homme du milieu et décrypter la connexion afin qu'il sache à quoi se connecter.

Zoredache
la source
Ça a du sens. Après enquête, il semble que vous ayez raison et le calmar est la voie à suivre. Il n'y a pas de backport de 3.1 avec le support ssl / https disponible pour Ubuntu 10.04 (lucid), donc une compilation personnalisée est requise. Je vais essayer ça. Merci!
Stefan Farestam
Avec Squid version 3.5, il est maintenant possible d'utiliser la fonction "peek and splice" pour implémenter le proxy HTTPS sans faire de man-in-the-middle ( wiki.squid-cache.org/Features/SslPeekAndSplice ).
Rafał Krypa