白名单 squid 代理的最佳 ssl_bump 配置

白名单 squid 代理的最佳 ssl_bump 配置

几天来,我一直在绞尽脑汁尝试让白名单 squid 代理正常工作。这是我第一次使用 squid 4.11,我不记得以前使用旧版本时遇到过这么多问题。任何指导都将不胜感激。

简单概述一下,我将其配置为传统的正向代理,您必须明确说明您想要使用代理而不是拦截(如果我能让它工作的话,这是下一步。如果可能的话,我希望代理支持这两种情况)。

问题:当我通过 curl 访问指定代理的网站时,出现以下错误:

<pre>(71) Protocol error (TLS code: SQUID_ERR_SSL_HANDSHAKE)</pre>
<p>Handshake with SSL server failed: error:1425F175:SSL routines:ssl_choose_client_version:inappropriate fallback</p>

通过谷歌搜索,我发现这是我能找到的最接近我所遇到的问题的:

http://squid-web-proxy-cache.1019090.n4.nabble.com/Problem-with-ssl-choose-client-version-inappropriate-fallback-on-some-sites-when-using-TLS1-2-td4688258.html

其中提到了密码的潜在问题并提出了一些解决方法,但它们都没有成功,而且似乎这个案例从未得到解决。

现在事情变得有趣了。经过进一步调查,我注意到了以下情况。如果我在谷歌上输入直卷曲,结果如下:

curl -k -v https://www.google.com --proxy 10.196.0.13:3128

密码套件是:

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

错误是

<pre>(71) Protocol error (TLS code: SQUID_ERR_SSL_HANDSHAKE)</pre>
<p>Handshake with SSL server failed: error:1425F175:SSL routines:ssl_choose_client_version:inappropriate fallback</p>

现在,如果我添加以下参数来控制 TLS 的最小/最大版本

curl -k -v https://www.google.com --proxy 10.196.0.13:3128 --tlsv1.2 --tls-max 1.3

密码套件是:

TLS_AES_128_GCM_SHA256

我得到了一个成功的 200 响应以及网页内容。我在多个网站上测试过,结果也是成功的。

所以我想问题是,这是一个简单的案例,只需将正确的允许密码添加到 squid 配置中,以确保这些导致问题的密码不被允许?还是我错了?

以下是精简的 squid 配置以及我控制密码的尝试,但到目前为止没有任何效果

coredump_dir /var/spool/squid                           #Core Dump Location
cache deny all                                          #Cache Deny
#dns_v4_first on

#Enabled Services
#http_port 3128
http_port 3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB \
   cert=/etc/squid/ssl/squid.crt \
   key=/etc/squid/ssl/squid.key \
   cafile=/etc/squid/ssl/squid.pem

tls_outgoing_options \
   min-version=1.2 \
   options=NO_SSLv3,SINGLE_DH_USE,SINGLE_ECDH_USE \
   cipher=SHA256,AES128

#Mandatory Deny
http_access deny !Safe_ports            #Deny unsafe ports
http_access deny CONNECT !SSL_ports     #Deny CONNECT whre not over SSL Port

#Allow Manager Local Only
http_access allow localhost manager     #Allow manager where local
http_access deny manager                #Deny manager all other times

#Allow localhost and localnet ACLs
http_access allow localnet      #Allow localnet ACLs
http_access allow localhost     #Allow localhost

#Allow Whitelisted URLs everything else
http_access allow allowed_http_sites            
http_access allow SSL_ports                     
ssl_bump peek step1 all                         
ssl_bump peek step2 allowed_https_sites         
ssl_bump splice step3 allowed_https_sites       
ssl_bump terminate step2 all                    

#Deny everything else
http_access deny all    #Deny All

相关内容