[squid-users] HEAD over HTTPS

Amos Jeffries squid3 at treenet.co.nz
Thu Mar 31 03:54:48 UTC 2016


On 31/03/2016 10:36 a.m., Dick Visser wrote:
> On 26 February 2016 at 00:38, Amos Jeffries wrote:
>> On 26/02/2016 11:47 a.m., Dick Visser wrote:
>>> Hi
>>>
>>> I'm trying to set up an acl to allow a link checker tool to do its
>>> work through squid.
>>> This tool is a Wordpress plugin.
>>> The whole reason I have squid is so that Wordpress itself cannot
>>> retrieve random stuff from the Internet.
>>>
>>> I had come up with the idea of allowing HEAD method, so the link
>>> checker plugin can do its job while at the same time not allowing
>>> malicious content to be retrieved.
>>> This appears to work well.
>>>
>>> However, when the plugins tries to check HTTPS URLs it uses CONNECT,
>>> which is then denied by squid.
>>
>> The tool is setup to relay TLS "HTTPS" through an *HTTP* proxy. To have
>> any more control than what you already found with that particular
>> layering will require MITM'ing that traffic with Squid SSL-Bump feature.
>>
>> However, Squid is capable of recieving TLS connections in its role as
>> explicit/forward proxy. If the tool can be updated to use TLS to secure
>> its connection to the proxy, then to deliver its https:// messages to
>> the proxy over that (instead of using "HTTPS") you will get better
>> control without any loss of security.
>>
> 
> I checked and the tool does not support TLS to the proxy...
> It is not a problem here to use SSLbump, but I don't understand how to
> configure squid to allow *only* HEAD request on HTTPS.
> Because that is done using the CONNECT method.
> The HEAD method doesn't go 'inside' the CONNECT method - or am I
> mixing things up?

Yes you are mixing things up. The CONNECT is "outside", and the HEAD is
"inside" the encryption layer.

Squid normally only sees the "outside". But SSL-Bump ('bump' action for
full decryption) lets Squid see the "inside" as well.


So for configuration:

 # let the tool send CONNECT requests (only to SSL ports)
 # NP: this is separate from the default "deny CONNECT SSL_ports" line
 #  which should come first.
 acl tool src <ip address of the tool>
 http_access allow CONNECT SSL_ports toolip

 # let HTTPS HEAD requsts happen
 acl HEAD method HEAD
 acl HTTPS proto HTTPS
 https_access allow HEAD HTTPS

 http_access deny all

... plus the usual http_port and ssl_bump settings for bumping.

I used tool IP address and src ACL above to be simple. You may have some
other way to identify the tools CONNECT requests.

Amos



More information about the squid-users mailing list