我正在尝试让 Squid Proxy (v3.5) 在 HTTP 和 HTTPS 透明模式下运行。我也需要在此启用过滤。
现在,HTTP 和 HTTPS 都可以正常工作,HTTP 过滤也可以正常工作。但是,HTTPS 过滤似乎没有任何效果 - 所有网站都允许通过。
这是我的配置。
squid配置文件
visible_hostname squid
# Handling HTTP requests
http_port 3129 intercept
acl allowed_http_sites dstdomain .bbc.com
http_access allow allowed_http_sites
# Handling HTTPS requests
https_port 3130 cert=/etc/squid/ssl/squid.pem ssl-bump intercept
acl SSL_port port 443
http_access allow SSL_port
acl allowed_https_sites ssl::server_name .bbc.com
acl step1 at_step SslBump1
acl step2 at_step SslBump2
acl step3 at_step SslBump3
ssl_bump peek step1 all
ssl_bump peek step2 allowed_https_sites
ssl_bump splice step3 allowed_https_sites
ssl_bump terminate step3 all
http_access deny all
iptables
*nat
:PREROUTING ACCEPT [9:588]
:INPUT ACCEPT [3:228]
:OUTPUT ACCEPT [68:4947]
:POSTROUTING ACCEPT [68:4947]
-A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3130
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3129
COMMIT
从上面来看,只有 *.bbc.com 网站应该能够通过,HTTP 就是这种情况。我看不出 HTTPS 有什么问题,那么为什么所有网站都允许通过,而不仅仅是 *.bbc.com 呢?
答案1
ssl_bump terminate step3 all
将该行改为ssl_bump terminate all
,你就好了。