[squid-users] Intercepted connections are not bumped

Andrea Venturoli ml at netfence.it
Mon Nov 27 15:59:11 UTC 2023


On 11/27/23 11:11, Amos Jeffries wrote:


First off, thanks for answering.



> For further assistance please also show your http_access and ACL config 
> lines. They will be needed for a better analysis of what is going on.

I'll start from here.
It's quite long, but a reduced example is:

acl localnet src 10.1.2.0/24
acl bumphosts src 10.1.2.18
acl SSL_ports port 443
acl SSL_ports port 563 801 3001 8443 19996 19997
acl Safe_ports port 80          # http
acl Safe_ports port 800
acl ftptraffic myportname ftpport
acl fetched_certificate transaction_initiator certificate-fetching
acl splicedom ssl::server_name_regex -i "/usr/local/etc/squid/nobumpsites"
acl step1 at_step SslBump1
ssl_bump splice !bumphosts
ssl_bump splice splicedom
ssl_bump peek step1
ssl_bump bump all
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny to_localhost
adaptation_access service_req deny ftptraffic
adaptation_access service_resp deny ftptraffic
http_access allow localnet
http_access allow localhost


For the sake of an example, let's say I connect from 10.1.2.18 to 
www.google.com.



> FYI, Intercepted traffic first gets interpreted as a CONNECT tunnel to 
> the TCP dst-IP:port and processed by http_access to see if the client is 
> allowed to make that type of connection.

Fine.
Traffic is in fact allowed.



> To guess based on the info provided above I suspect that the 
> fake-CONNECT raw-IP does not match your "bumphosts" ACL test. Causing 
> that "ssl_bump splice !bumphosts" to occur.

Not sure I understand what you mean: is raw-IP the source (in my case 
10.1.2.18) or the destination IP (142.251.209.36)?

"bumphosts" ACLs are local clients (those that SSLBump should be applied 
to): 10.1.2.18 is in this list (in fact it gets SSLBump if explicitly 
using the proxy).



This is what I see in the logs for an intercepted connection (after it's 
closed):

> 1701100166.601   2203 10.1.2.18 TCP_TUNNEL/500 6622 CONNECT 142.251.209.36:443 - ORIGINAL_DST/142.251.209.36 -



This is what I see using a proxy-aware application:

> 1701100243.374    172 10.1.2.18 TCP_MISS/200 49333 GET https://www.google.com/? - HIER_DIRECT/142.251.209.36 text/html





> That behaviour is why we typically recommend doing "peek" first, then 
> the splice checks can be based on whatever TLS SNI value is found.

I don't think it should matter: neither www.google.com nor 
142.251.209.36 are in any ACL.
Or did I understand wrong?
Is this needed for intercepted SSLBump?



>> I think it worked in the past: has anything changed in this regard 
>> with Squid 6?
> 
> 
> Changed since what version? Over time a lot of small changes can add up 
> to large differences.

I first noticed this on 6.4.
Unfortunately I don't remember which version I was using at the time I 
set this up, maybe 5.x, maybe even 4.x.



  bye & Thanks
	av.


More information about the squid-users mailing list