Come creare un proxy https trasparente con firehol e tinyproxy?


8

Ho una configurazione proxy trasparente in Ubuntu 10.04.4 con firehol e tinyproxy che funziona bene per http ma non riesco a farlo funzionare per https.

La connessione a tinyproxy funziona direttamente bene poiché i seguenti comandi completano ok:

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

Anche il proxy trasparente http funziona bene:

curl  http://www.google.com

ma quando accedi a google direttamente usando https, il comando si blocca e basta:

curl  https://www.google.com

Ecco i file di configurazione completi per firehol e tinyproxy. Si noti che non ho alcun interesse a utilizzare Firehol per tutto tranne che per il proxy trasparente.

firehol.conf:

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

tinyproxy.conf (tutti i valori predefiniti tranne il 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

Risposte:


11

Per quanto ne so, il tinyproxy semplicemente non supporta le connessioni HTTPS in entrata. Ti consentirà di accedere ai siti HTTPS utilizzando il metodo CONNECT , ma per poterlo utilizzare, il browser / client deve sapere che sta parlando con un server proxy e utilizzare i metodi di connessione corretti.

Le ConnectPortdirettive definiscono semplicemente a quali porte è consentito effettuare connessioni.

L'unico prodotto FOSS che supporta la connessione HTTPS in modo trasparente proxy è Squid e il supporto è relativamente recente. In introduce anche alcuni problemi di sicurezza piuttosto importanti poiché un proxy HTTPS trasparente deve eseguire un attacco man-in-the-middle e decrittografare la connessione in modo che sappia a cosa connettersi.


Questo ha senso. Dopo aver indagato, sembra che tu abbia ragione e che il calamaro sia la strada da percorrere. Non esiste un backport di 3.1 con supporto ssl / https disponibile per Ubuntu 10.04 (lucido), quindi è richiesta la compilazione personalizzata. Lo proverò. Grazie!
Stefan Farestam,

Con Squid versione 3.5 è ora possibile utilizzare la funzione "peek and splice" per implementare il proxy HTTPS senza fare man-in-the-middle ( wiki.squid-cache.org/Features/SslPeekAndSplice ).
Rafał Krypa,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.