Search squid archive

Re: getting https pages from peer on ssl-bump mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 08.10.2012 01:16, Oguz Yilmaz wrote:
I am trying with ssl-bump. I am using squid 3.1.21.

First of all I got the CANNOT FORWARD error page. When I debug I found:

2012/10/07 14:27:49.380| fwdConnectStart: Ssl bumped connections
through parrent proxy are not allowed
2012/10/07 14:27:49.380| forward.cc(286) fail: ERR_CANNOT_FORWARD
"Service Unavailable"


Then, I added always_direct rule and reached to https site.

acl HTTPS proto HTTPS
always_direct allow HTTPS


According to message above and a reply from Amos in another thread,
squid stopped getting https over peers, because "it does not again
encrypt ssl connection for the peer". Capability of getting https
pages over peers was previous behaviour and I did not understand why
squid does not get pages from peers instead of direct? I assume it is
about software architecture.

Without SSL-bump the HTTPS us seen by Squid as a CONNECT request with encrypted binary data. The CONNECT request and data can be safely sent to a peer and the reply shunted straight back to the client. This is otherwise known as a blind tunnel / binary tunnel through the HTTP proxy. This can be done safely whether the peer supports SSL or not. Or even whether your proxy supports SSL or not.


With SSL-bump the CONNECT wrapper request is removed, the encrypted data decrypted. THEN Squid handles the decrypted request almost as if it was sent in to a https_port. Squid does not support adding the CONNECT request wrapper back when passing the request to non-SSL peers. If the request were relayed out to peer this would result in HTTPS be decrypted then sent "in the clear" to any peers - seriously breaking the security on HTTPS. (you say earlier Squid did that, we know, that got fixed pretty soon after it was found but there are still a few releases which do it). In reverse-proxy we can safely assume that peers are part of a trusted backend system for the reverse-proxy. For the corporate situations where SSL-Bump is used we CANNOT make that assumption safely even if the peer has the SSL connection options configured and must, for now, block relaying to peers.




Is this the current situation(3.HEAD). Are there any project to
implement getting SSL pages over peers?

All current Squid releases share the above behaviour. SSL-Bump in 3.1 was experimental and rather limited in what it can do. I recommend using at least 3.2 for less client annoyance, preferably use 3.3 for the best SSL-Bump behaviour (server-first bumping fixes a few other security problems).

As to work underway; I made some effort to work towards re-wrapping CONNECT on outbound requests for another project unrelated to SSL-Bump but sharing the same requirement. It is still in the planning stages with no timeline for any code. Any contributions toward that would be welcome.


Because this mode obligate me
to choose between:
a- do https filtering in squid and does not forward https to
dansguardian (I use https domain name filtering on dg)
b- dont do https filtering and continue with https domain name
filtering on dansguardian.


So far as I'm aware anything you can do in DG can also be done in Squid. So (a) is your best option.




2012/10/07 14:35:50.142| peerSelectCallback: https://www.haberturk.com/
2012/10/07 14:35:50.142| Failed to select source for
'https://www.haberturk.com/'
2012/10/07 14:35:50.142|   always_direct = -1

Hmm. -1 here is strange. It means some lookup (authentication, or IDENT or external ACL) is being waited for. Scan your whole config for always_direct lines and check their order carefully.

The "always_direct allow HTTPS" should have produced "1" there and made your Squid use DNS results for www.haberturk.com instead of ERR_CANNOT_FORWARD.


Amos

2012/10/07 14:35:50.142|    never_direct = 0
2012/10/07 14:35:50.142|        timedout = 0
2012/10/07 14:35:50.142| fwdStartComplete: https://www.haberturk.com/
2012/10/07 14:35:50.142| fwdStartFail: https://www.haberturk.com/
2012/10/07 14:35:50.142| forward.cc(286) fail: ERR_CANNOT_FORWARD
"Service Unavailable"
        https://www.haberturk.com/
2012/10/07 14:35:50.142| StoreEntry::unlock: key
'31F6E0CCC4924D82F5F0070DE9555597' count=2
2012/10/07 14:35:50.142| FilledChecklist.cc(168) ~ACLFilledChecklist:
ACLFilledChecklist destroyed 0x91502d0
2012/10/07 14:35:50.142| ACLChecklist::~ACLChecklist: destroyed 0x91502d0
2012/10/07 14:35:50.142| forward.cc(164) ~FwdState: FwdState
destructor starting
2012/10/07 14:35:50.142| Creating an error page for entry 0x9152990
with errorstate 0x91504a0 page id 13
2012/10/07 14:35:50.142| StoreEntry::lock: key
'31F6E0CCC4924D82F5F0070DE9555597' count=3
2012/10/07 14:35:50.142| errorpage.cc(1075) BuildContent: No existing
error page language negotiated for ERR_CANNOT_FORWARD. Using default
error file.

Best Regards,



--
Oguz YILMAZ



[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux