¿Cómo crear un proxy https transparente con firehol y tinyproxy?

8

Tengo una configuración de proxy transparente en Ubuntu 10.04.4 con firehol y tinyproxy que funciona bien para http pero no puedo hacer que funcione para https.

Conectarse a tinyproxy directamente funciona bien ya que los siguientes comandos completan bien:

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

El proxy transparente HTTP también funciona bien:

curl  http://www.google.com

pero al acceder a google directamente usando https, el comando simplemente se cuelga:

curl  https://www.google.com

Aquí están los archivos de configuración completos para firehol y tinyproxy. Tenga en cuenta que no tengo interés en usar firehol para otra cosa que no sea proxy transparente.

firehol.conf:

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

tinyproxy.conf (todos los valores predeterminados excepto el proxy ascendente):

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
fuente

Respuestas:

11

Por lo que puedo decir, tinyproxy simplemente no admite conexiones HTTPS entrantes. Le permitirá acceder a sitios HTTPS utilizando el método CONNECT , pero para que se utilice, el navegador / cliente debe saber que está hablando con un servidor proxy y utilizar los métodos de conexión correctos.

Las ConnectPortdirectivas simplemente definen a qué puertos está permitido hacer conexiones.

El único producto FOSS que admite la conexión HTTPS de proxy transparente es Squid , y el soporte para eso es relativamente reciente. También presenta algunas preocupaciones de seguridad bastante importantes, ya que un proxy HTTPS transparente tiene que realizar un ataque de hombre en el medio y descifrar la conexión para que sepa a qué conectarse.

Zoredache
fuente
Eso tiene sentido. Después de investigar, parece que tienes razón y el calamar es el camino a seguir. No hay backport de 3.1 con soporte ssl / https disponible para Ubuntu 10.04 (lúcido), por lo que se requiere una compilación personalizada. Probaré esto. ¡Gracias!
Stefan Farestam
Con Squid versión 3.5 ahora es posible usar la función "peek and splice" para implementar el proxy HTTPS sin hacer man-in-the-middle ( wiki.squid-cache.org/Features/SslPeekAndSplice ).
Rafał Krypa