CentOS-Italia.org - La Community degli Utenti Italiani di Linux CentOS Forum e Guide How To

Supporto Tecnico a Centos => Software => Topic aperto da: impression - 21 Agosto 2014, 13:56:59

Titolo: squid proxy transparent https con SslBump
Inserito da: impression - 21 Agosto 2014, 13:56:59
Buongiorno a tutti,
inizio subito illustrandovi il mio problema, ho installato squid da repository (quindi compilazione ecc tutto ok) e ho settato il tutto per realizzare un proxy http e https ma la parte https non funziona. Ma andiamo con ordine ho seguito le seguenti guide di wiki.squid

http://wiki.squid-cache.org/EliezerCroitoru/Drafts/SSLBUMP (http://wiki.squid-cache.org/EliezerCroitoru/Drafts/SSLBUMP)
http://wiki.squid-cache.org/Features/SslBump (http://wiki.squid-cache.org/Features/SslBump)
http://wiki.squid-cache.org/Features/DynamicSslCert (http://wiki.squid-cache.org/Features/DynamicSslCert)
http://wiki.squid-cache.org/Features/BumpSslServerFirst (http://wiki.squid-cache.org/Features/BumpSslServerFirst)

ecco i passi nel dettaglio

-installato squid
-creato la cartella ssl_cert dentro /etc/squid/
-dentro la certella ssl_cert lanciato i seguenti comandi per i certificati

openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 -keyout myCA.pem  -out myCA.pem
openssl x509 -in myCA.pem -outform DER -out myCA.der

-poi inizializato il db ssl

/usr/lib64/squid/ssl_crtd -c -s /var/squid/ssl_db

chown -R squid /var/squid/

- poi aggiunti al file squid.conf i seguenti parametri

http_port 3128 intercept
https_port 3129 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=16MB  cert=/etc/squid/ssl_cert/myCA.pem

sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/squid/ssl_db -M 16MB
sslcrtd_children 10
ssl_bump server-first all
#sslproxy_cert_error allow all
#sslproxy_flags DONT_VERIFY_PEER

-settato iptables per intercettare il traffico sia sulla porta 80 che 443

-avviato squid e tutto ok

-installato il certificato sul client

http va una meraviglia mentre https no
ecco il file cache.log

Citazione
2014/08/19 13:55:01| Startup: Initializing Authentication Schemes ...
2014/08/19 13:55:01| Startup: Initialized Authentication Scheme 'basic'
2014/08/19 13:55:01| Startup: Initialized Authentication Scheme 'digest'
2014/08/19 13:55:01| Startup: Initialized Authentication Scheme 'negotiate'
2014/08/19 13:55:01| Startup: Initialized Authentication Scheme 'ntlm'
2014/08/19 13:55:01| Startup: Initialized Authentication.
2014/08/19 13:55:01| Processing Configuration File: /etc/squid/squid.conf (depth 0)
2014/08/19 13:55:01| Starting Authentication on port [::]:3128
2014/08/19 13:55:01| Disabling Authentication on port [::]:3128 (interception enabled)
2014/08/19 13:55:01| Starting Authentication on port [::]:3129
2014/08/19 13:55:01| Disabling Authentication on port [::]:3129 (interception enabled)
2014/08/19 13:55:01| Initializing https proxy context
2014/08/19 13:55:01| Initializing http_port [::]:3128
2014/08/19 13:55:01| Initializing https_port [::]:3129 SSL context
2014/08/19 13:55:01| Using certificate in /etc/squid/ssl_cert/myCA.pem
2014/08/19 13:55:01| Logfile: opening log daemon:/var/log/squid/access.log
2014/08/19 13:55:01| Logfile Daemon: opening log /var/log/squid/access.log
2014/08/19 13:55:01| Squid plugin modules loaded: 0
2014/08/19 13:55:01| Adaptation support is off.
2014/08/19 13:55:01| Store logging disabled
2014/08/19 13:55:01| DNS Socket created at [::], FD 12
2014/08/19 13:55:01| DNS Socket created at 0.0.0.0, FD 13
2014/08/19 13:55:01| Adding nameserver 10.11.12.11 from /etc/resolv.conf
2014/08/19 13:55:01| Adding nameserver 10.11.12.12 from /etc/resolv.conf
2014/08/19 13:55:01| helperOpenServers: Starting 5/5 'ssl_crtd' processes
2014/08/19 13:55:01| HTCP Disabled.
2014/08/19 13:55:01| Finished loading MIME types and icons.
2014/08/19 13:55:01| Accepting NAT intercepted SSL bumped HTTP Socket connections at local=[::]:3128 remote=[::] FD 46 flags=41
2014/08/19 13:55:01| Accepting HTTP Socket connections at local=[::]:3130 remote=[::] FD 47 flags=9
2014/08/19 13:55:01| Accepting NAT intercepted SSL bumped HTTPS Socket connections at local=[::]:3129 remote=[::] FD 48 flags=41

ecco uno stralcio di access log

Citazione
1408618625.471  29808 10.11.13.169 TCP_MISS_ABORTED/000 0 POST http://tools.google.com/service/update2? - HIER_DIRECT/ -
1408618655.470  29924 10.11.13.169 TCP_MISS_ABORTED/000 0 POST http://tools.google.com/service/update2? - HIER_DIRECT/1 -
1408618687.470  29366 10.11.13.169 TCP_MISS_ABORTED/000 0 POST http://tools.google.com/service/update2? - HIER_DIRECT/-
1408618719.470  29367 10.11.13.169 TCP_MISS_ABORTED/000 0 POST http://tools.google.com/service/update2? - HIER_DIRECT/8 -
1408618757.471  29391 10.11.13.169 TCP_MISS_ABORTED/000 0 POST http://tools.google.com/service/update2? - HIER_DIRECT/1-
1408618787.471  29927 10.11.13.169 TCP_MISS_ABORTED/000 0 POST http://tools.google.com/service/update2? - HIER_DIRECT/1 -
1408618819.471  29355 10.11.13.169 TCP_MISS_ABORTED/000 0 POST http://tools.google.com/service/update2? - HIER_DIRECT/ -
1408618851.471  29357 10.11.13.169 TCP_MISS_ABORTED/000 0 POST http://tools.google.com/service/update2? - HIER_DIRECT/ -
1408618851.594     86 10.11.13.169 TCP_MISS/200 1417 POST http://tools.google.com/service/update2? - HIER_DIRECT/ text/xml
1408620094.278 3600000 10.11.13.169 TCP_MISS_ABORTED/000 0 GET http://www.google.it/? - HIER_DIRECT/ -

e sul client a volte mi avvisa che il server non è sicuro, se io dico che è affidabile carica all'infinito, mentra a volte mi da questo errore

errore di lettura
il sistema ha ristposto: error(104) connection reset by peer

con una pagina di squid

cosa può essere? dove sbaglio?

Grazie mille a tutti per l'aiuto
Titolo: Re:squid proxy transparent https con SslBump
Inserito da: smeserver - 21 Agosto 2014, 14:00:48
indipendentemente dai problemi tecnici, hai ben chiaro cosa implichi intercettare il traffico https?

in che contesto deve girare questa cosa?
Titolo: Re:squid proxy transparent https con SslBump
Inserito da: impression - 21 Agosto 2014, 14:04:52
ovviamente so cosa vuol dire, l'ambito è un iptetico proxy transparent per una rete wifi guest aziendale, quindi niente spionaggio o furti :)
Titolo: Re:squid proxy transparent https con SslBump
Inserito da: smeserver - 21 Agosto 2014, 14:09:46
"rete wifi guest", quindi l'ipotetico visitatore in azienda (il rappresentante, il tecnico ecc) si aggancia alla rete e tu gli "sniffi"/logghi tutto il traffico https..
notevole :-)
quindi se l'ipotetico navigatore aprisse il suo account gmail, tu loggheresti tutto.. mhhh... interessante :-)
Titolo: Re:squid proxy transparent https con SslBump
Inserito da: impression - 21 Agosto 2014, 14:32:15
allora l'ipotetico visitatore che si connette attraverso la rete guest (rete a cui si può connettere dopo che gli sono state date delle credenziali temporanee da inserire tramite un captive portal) non ha una navigazione aperta a tutto, ma potrà navigare solo in certi siti internet (ad esempio non può andare su facebook, che guarda caso usa https) filtrata con squidguard. Per fare ciò con https bisogna come ben sai mettersi in mezzo al tunnel ssl quindi attuare effettivamente un man-in-the-midle  per poter "controllare/vedere" che sito si stà visitanto e in caso bloccarlo, naturalmente il tutto il traffico è loggato come richiesto dalla legge, ed evitare problemi di ogni genere. Se ipoteticamente un visitatore accede al suo conto bancario online il sistema controllerà che il sito non risulti in blacklist e poi loggerà il tutto ovvio, ma se il visitatore va su un conto corrente con le credenziali "rubate" e dopo un pò viene la polizia postale a chiedere i log di navigazione in questo modo è possibile fornirli (e non è raro che accada).
(comunque l'ipotetico visitatore dovrebbe installare il certificato, quindi è consapevole di ciò che accada oltre a firmare per accettar le condizioni del servizio offerto)

Spero di essere stato chiaro e come già spiegato non ho intenzione di intercettare nulla.

ora idee per il problema tecnico?

ah se non si installa il certificato esce un banner rosso di allert https grande come una casa ;)
Titolo: Re:squid proxy transparent https con SslBump
Inserito da: impression - 22 Agosto 2014, 12:09:02
tra le altre cose è tutto scritto anche nei link che ho messo all'inizio del post ;)
Titolo: Re:squid proxy transparent https con SslBump
Inserito da: impression - 27 Agosto 2014, 14:35:03
qualche anima pia che possa aiutarmi??? io non so proprio cosa fare, non trovo info da nessuna parte...
Titolo: Re:squid proxy transparent https con SslBump
Inserito da: dankan77 - 01 Settembre 2014, 15:16:48
Ciao,
ho messo su uno squid proprio in questi giorni.
Non devi assolutamente intercettare il traffico o usare dei certificati x509 per gestire traffico https.
In access.log trovi sia la navigazione http e https.
E' sufficiente modificare la direttiva

http_port 3128 intercept
in
http_port 3128 transparent

eliminando : https_port 3129 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=16MB  cert=/etc/squid/ssl_cert/myCA.pem

Userai la porta 3128 per http e https e vedrai che funziona tutto.

Questo il mio "semplice" squid.conf


acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl localnet src "sostituisci con tua rete locale"
acl consentiti url_regex "/etc/squid/acl.txt"
acl SSL_ports port 443
acl ssl method connect
acl CONNECT method CONNECT
http_access allow consentiti
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny to_localhost
http_access deny all
http_port 3128 transparent
hierarchy_stoplist cgi-bin ?
coredump_dir /var/spool/squid
refresh_pattern ^ftp:      1440   20%   10080
refresh_pattern ^gopher:   1440   0%   1440
refresh_pattern -i (/cgi-bin/|\?) 0   0%   0
refresh_pattern .      0   20%   4320

P.S.
Tienici aggiornati

Ciao
Titolo: Re:squid proxy transparent https con SslBump
Inserito da: impression - 01 Settembre 2014, 17:31:22
ciao e grazie per la tua risposta, però la direttiva transpatent è deprecata ormai da tempo, come si legge sul sito di squid, e di cui riporno la nota:

Note: The "transparent" option has been deprecated by "intercept" option since 2010.

inoltre usare le opzioni http_port e https_port serve a poter gestire in autonomia http e https, nel mio caso anche assegnargli porte diverse (rispettivamente 3128 e 3129) in modo da dargli opzioni diverse in base alla natura del traffico, nello specifico:

http_port 3128 intercept --> equivalente alla tua direttiva, ma io a questa porta invio solo traffico http e so che funziona a dovere

https_port 3129 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=16MB  cert=/etc/squid/ssl_cert/myCA.pem --> qui invio tutto il traffico https e con la direttiva ssl-bump che fa ciò:
"   ssl-bump   For each intercepted connection allowed by ssl_bump
         ACLs, establish a secure connection with the client and with
         the server, decrypt HTTPS messages as they pass through
         Squid, and treat them as unencrypted HTTP messages,
         becoming the man-in-the-middle."
e utilizza il certificato e la key passati per paramentro (è lo stesso certificato se non specificato diversamente) ovviamente per gli scopi già citati ;) .

nel tuo caso il traffico https passa senza problemi, ma se buoi bloccare facebook ad esempio non puoi.
se ho scritto stupidagini o imprecisioni correggetemi :) farete la mia felicità grazie

p.s. problema non risolto, sono nella situazione iniziale, grazie a tutti per l'aiuto ;)
Titolo: Re:squid proxy transparent https con SslBump
Inserito da: dankan77 - 02 Settembre 2014, 23:35:50
Ciao,
quella che ti ho postato è una configurazione di un ambiente di produzione e malgrado il parametro deprecato direi che funziona bene.
Per quanto riguarda le ACL solitamente  creo un file : /etc/squid/acl.txt in cui indico solo  i siti che voglio sia  raggiungibili.
In questo modo ogni entry dell'acl deve essere richiesta e motivata.
Probabilmente non è la configurazione che interessa al tuo scopo ma gli utenti applicativi di quel servizio navigano http e https solo delle acl fornite di cui trascrivo i log senza intercettare il traffico che potrebbe crearmi problemi di violazione della privacy.


Ciao
Titolo: Re:squid proxy transparent https con SslBump
Inserito da: smeserver - 02 Settembre 2014, 23:52:07
l'OP vuole intercettare, decrittare e loggare tutto il traffico https verso i siti che rende disponibili... un man-in-the-middle in piena regola, su rete wifi guest.. ad accesso controllato tramite captive-portal e credenziali, vero..

certo che se ammettete il sito della ASL locale o di una qualsiasi banca e sniffate il MIO (generally speaking) traffico.. io (generally speaking) mi inc@##o parecchio..

e no, la storia del "tanto devi accettare il certificato e quindi sai cosa sta succedendo" non regge..

IMVHO, sbagli candeggio..
Titolo: Re:squid proxy transparent https con SslBump
Inserito da: dankan77 - 03 Settembre 2014, 09:37:01
Diciamo che la faccenda della privacy in Italia è molto seria, se pensi che c'è qualcuno che per violazione della privacy si stà facendo 13 anni di carcere ed altri che hanno commesso vere barbarie/atrocità hanno ricevuto una pena inferiore.
Fatti furbo e verifica bene anche con i legali dell'azienda quello che stai implementando.
Vedrai che ti faranno desistere.


Ciao
Titolo: Re:squid proxy transparent https con SslBump
Inserito da: impression - 08 Settembre 2014, 11:50:33
Grazie a tutti per l'aiuto, comunque dal lato legale non ho problemi, visto che l'azienda ha già un proxy server transtapent proprietario (un fortinet e un vecchio cisco) che filtra già http/https ma vogliono passare ad una soluzione open e meno costosa in termini di hw. continuo a fare prove, ma credo che il problema possa essere la generazione dei certificati, ringrazio ancora tutti coloro che mi stanno aiutando senza fare grosse polemiche  ;D
Titolo: Re:squid proxy transparent https con SslBump
Inserito da: LonelyWolf - 08 Settembre 2014, 14:04:39
Se vuoi una soluzione open esclusivamente per quello, prova a guardare pfsense.
Titolo: Re:squid proxy transparent https con SslBump
Inserito da: impression - 08 Settembre 2014, 14:15:50
Grazie potrebbe essere una valida alternativa... Devo solo verificare se è possibile effettuare un cluster di pfsense, oltre che fare un prova trasparente...
Se nel frattempo io continuo a provare con squid su centos :-[ :P
Titolo: Re:squid proxy transparent https con SslBump
Inserito da: mayers81 - 21 Luglio 2015, 23:27:03
Ciao scusami ma ho proprio affrontato il tuo problema in questi giorni.

Se usi solo la direttiva http il traffico gestito è solo escusivamente http esempio

Io ho creato un proxy trasparent e facebook ad esempio non riuscivo ad bloccarlo perchè è in https, se passavo da trasparent ad impostare il proxy nel browser mi compariva la schermata di errore il browser non è riuscito a recuperare la pagina e non la schermata di squid che il sito è in blacklist.

Soluzione

Squid3 e https con ssl e certificato

L'unica cosa che devi fare è installare il certificato su tutti i client per quanto riguarda internet explorer e google chrome ci sono riuscito con una policy, mentre per firefox momentaneamente ho dovuto installarlo a mano, ma sto cercando una soluzione.

Cosi loggo e blocco correttamente http e https in modalita proxy trasparent.