On Mon, Feb 13, 2017 at 12:04 PM, Eliezer Croitoru <elie...@ngtech.co.il> wrote:
>
> Hey Varun,
>
> Filtering content based on the URL level\layer of the connection is not 
> possible without SSL-bump.
> There for you must use for some aspect of the connections SSL-bump.
> However you can selectively choose which destinations would be bumped and 
> which are not.
> Most of the current browsers supports SNI which allows squid in some degree 
> to decide if to fully bump the connection to the URL level or to decide to 
> only proxy the connection in the TCP level.
> As simple as it sounds URL level filtering requires full SSL-bump and TCP and 
> basic TLS level filtering will not require you to fully utilize SSL-bump but 
> will require you to fully setup squid for SSL-bump.
>
> This is the place to clarify that SNI based filtering is not 100% bullet 
> proof and it could be exploited to override in a way your basic SNI based SSL 
> level filtering.
>
> Do you have specific sites that you want to filter in the URL level or just 
> globally?
> The answer to the above question will guide us towards what might be the 
> right path for your solution(which could be full SSL-BUMP or partial).
>
> Eliezer
>
> ----
> http://ngtech.co.il/lmgtfy/
> Linux System Administrator
> Mobile: +972-5-28704261
> Email: elie...@ngtech.co.il
>
>
> From: squid-users [mailto:squid-users-boun...@lists.squid-cache.org] On 
> Behalf Of Varun Singh
> Sent: Monday, February 13, 2017 5:37 AM
> To: Amos Jeffries <squ...@treenet.co.nz>
> Cc: squid-users@lists.squid-cache.org
> Subject: Re: [squid-users] Basic HTTPS filtering via CONNECT in Squid
>
>
>
> On Feb 12, 2017 5:43 PM, "Amos Jeffries" <mailto:squ...@treenet.co.nz> wrote:
> On 12/02/2017 11:51 p.m., Varun Singh wrote:
> > On Feb 12, 2017 2:21 PM, "Amos Jeffries" <mailto:squ...@treenet.co.nz> 
> > wrote:
> >
> > On 12/02/2017 7:40 p.m., Varun Singh wrote:
> >>
> >> The answer points to installing a CA on client.
> >
> > The question was about how to get browsers talking TLS *directly to a
> > Squid reverse-proxy*. Your Ubuntu package is not capable of that and you
> > are not using a reverse-proxy.
> >
> >> Does this mean even if I don't want Squid-in-the-middle approach, my
> >> clients would still have to install a certificate?
> >
> > No. It is irrelevant to yrou sitation.
> >
> >
> > You began this thread with a simple question:
> >
> >> Hi,
> >> I have a Squid 3 installed on Ubuntu 16.04. It works perfectly as an
> >> HTTP proxy server in transparent mode.
> >> I wanted to know whether it can be configured to run as HTTPS proxy
> >> server without ssl-bump i.e. without 'man in the middle attack'
> >> technique.
> >
> >
> > Everything you have been asking about since then is various ways to do
> > parts of the SSL-bump process. Which does not fit very well with the
> > "without ssl-bump" requirement.
> >
> >
> > Simply put; if you are not going to SSL-Bump then you can discard any
> > thoughts of doing things with the HTTPS messages or port 443 traffic.
> >
> > If you have changed your mind and want to use SSL-Bump now, please
> > re-describe what you want to actually happen now.
> >
> You have not described what you want to happen. Just asked how to do
> this unknown thing...
>
> I want to implement a URL filter using proxy server. My clients will use this 
> server either from their web-browsers or via strongSwan IPSec VPN server. If 
> they use the proxy server via VPN server, their VPN profile will have HTTP 
> and HTTPS proxy server configuration.
>
> This proxy server will filter HTTP and HTTPS websites based on ACL provided. 
> For security reasons, I want to avoid using SSL-bump.
>
>
> >
> > Hi,
> > Simply put, my question has three parts:
> > 1. Can Squid be configured as an HTTPS proxy server without SSL-Bump?
>
> * The term "HTTPS" is a generic term used to simultaneously describe two
> completely different traffic syntaxes (CONNECT tunnels, and port 443 TLS).
>
> * There are three proxy operating "modes" which may receive each of
> those types of traffic (explicit/forward, intercept/tproxy, and
> reverse/CDN/accel).
>
> * For each type of traffic one mode is invalid, leaving 2x2= 4 different
> sets of operations all called "proxying HTTPS".
>
> This means the combinations are:
> #1 CONNECT - explicit/forward
> #2 443 TLS - explicit/forward
>
> #3 CONNECT - intercept/tproxy
> #4 443 TLS - intercept/tproxy
>
> #5 CONNECT - reverse/CDN/accel
> #6 443 TLS - reverse/CDN/accel
>
> One of modes in each type is invalid. So, from Squid's HTTPS feature page, 
> looks like my scenario falls either in #1 or #3.
>
> * all 4 of those ways may be done with or without SSL-Bump feature.
>
> When not using SSL-Bump 2 of the ways of "proxying HTTPS" will work, 2
> will not.
>
> When using SSL-Bump the non-working ways of "proxying HTTPS" will start
> working, and the working ways will have an extra permutation of splice
> vs bump operation that can happen. Extending the possibilities to be 6
> ways of "proxying HTTPS".
>
>
> So the answer(s) to your first question are:
>
> yes, no.  yes, no.  no, yes.
>
>
>
> > 2. If yes, then what other configurations have to performed other than
> > "https_port XXXX"?
> For the cases where the #1 answer was "yes" and not "no".
>
> a) An explicit/forward or intercept proxy not using ssl-bump and
> receiving CONNECT requests does not need any special configuration to
> "proxy HTTPS". The proxy will simply enact the requested opaque tunnel
> in accordance to HTTP rules.
>
> So this means other than specifying "https_port XXXX" no other config is 
> needed.
> When I setup Squid with just "https_port xxxx" and configured Firefox to use 
> my proxy server for HTTP and HTTPS, it worked fine for HTTP but for HTTPS it 
> gave "Proxy server rejected connection".
>
> So either something is wrong in my squid.conf or my assumption is incorrect 
> that my scenario falls in #1 or #3.
>
>
> b) A reverse proxy requires the 'accel' mode flag, and the cert= option
> must load the cert for the domain you are hosting on that port, and the
> key= option must load the private key for that certificate.
>
> c) all other modes will not work without SSL-Bump feature.
>
>
>
> > 3. In this configuration, can Squid filter HTTPS requests from ACL?
> >
> That depends on the meaning of "this". There are 3 different
> configurations in the answer to #2.
>
> For (2a) - no. Only the CONNECT request can be filterd.
>
> From below links it looks like destination IP Address or hostname of a 
> CONNECT request is same as HTTPS request. Is that correct?
>
> https://en.m.wikipedia.org/wiki/HTTP_tunnel#HTTP_CONNECT_tunneling
>
> http://stackoverflow.com/a/11698002/548403
>
>
> For (2b) - yes. BUT, notice that it requires private key data for certs.
> This configuration is only usable when _you own the domain_ which the
> client is visiting.
>
> For (2c) - SSL-Bump feature is the mechanism which enables https://
> filtering for all traffic modes other than that described by (2b).
> Without using that feature - no.
>
>
> Do you understand now why every path you have tried ends up with how-tos
> for configuring SSL-Bump?
>
> Yes, thanks for the elaborate explanation.
>
>
> HTH
> Amos
>
>
>
>
>
>
>
>
>
>
>

Thanks for your reply Eliezer. As I understand, if I want to filter
HTTPS websites based on only hostname/IP-Address, I will still have to
configure SSL-bump. However, I may not have to use the complete
feature in order to do so. Moreover, I can choose which website to
apply SSL-bump to.
Am I correct in my assumptions?


> This is the place to clarify that SNI based filtering is not 100% bullet 
> proof and it could be exploited to override in a way your basic SNI based SSL 
> level filtering.

The SNI solution may work with web-browsers but my solution is also
targeting clients connecting via to proxy via VPN. I think SNI won't
work in that case. Is that right?

>
> Do you have specific sites that you want to filter in the URL level or just 
> globally?

I have a list of URL regexes. I have to filter HTTPS websites whose
URLs match the regex pattern.

> The answer to the above question will guide us towards what might be the 
> right path for your solution(which could be full SSL-BUMP or partial).



-- 
Thanks,
Varun
_______________________________________________
squid-users mailing list
squid-users@lists.squid-cache.org
http://lists.squid-cache.org/listinfo/squid-users

Reply via email to