首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >采用SNI滤波的squid透明隧道HTTPS

采用SNI滤波的squid透明隧道HTTPS
EN

Server Fault用户
提问于 2021-08-06 05:26:19
回答 1查看 3.1K关注 0票数 2

我的要求是:

  1. 代理应该是透明的。
  2. 我应该能够过滤网站的域名。
  3. 我不想解密流量。我正在寻找一个基于SNI嗅探的解决方案--没有在客户端安装证书。

到处都有很多答案,但它们要么是不正确的(声称你需要解密才能做到这一点),要么是不完整的。

EN

回答 1

Server Fault用户

发布于 2021-08-06 05:26:19

这样做的方法是使用Squid3.5中引入的ssl特性。有关详细说明,请参见这里。请注意,您需要使用--with-gnutls--with-openssl进行编译(检查squid -v)。有些发行版把它们排除在外。

简而言之,相关的鱿鱼配置如下所示。

代码语言:javascript
运行
复制
acl denylist_ssl ssl::server_name google.com # NOT dstdomain
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump splice !denylist_ssl # allow everything not in the denylist
ssl_bump terminate all # block everything else
https_port 3129 intercept ssl-bump cert=/etc/squid/dummy.pem

(旁白:我不知道为什么我们只需要查看第一步而不是第二步,因为第二步只涉及接收服务器证书。医生们一点也不清楚这一点。按照他们的建议使用ssl_bump peek all使此停止工作)。

然后使用iptables进行通常的重定向端口443到3129的舞蹈(或者让鱿鱼直接收听443,如果您愿意的话)。

代码语言:javascript
运行
复制
-A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3129

您可以使用虚拟的任何证书,实际上我们从不使用它(因为我们没有解密通信量)。

像这样的东西很管用。

代码语言:javascript
运行
复制
openssl req -new -newkey rsa:4096 -sha256 -days 365 -nodes -x509 -keyout dummy.pem -out dummy.pem

资料来源:

1

2

3.

票数 4
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1073704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档