Squid可以用作“ TLS终止代理”来使用客户端证书加密TCP连接吗?


8

抽象

我需要从多个客户端到Internet上单个端口的加密TCP连接。鱿鱼可以实现吗?

具体情况

我们在公司中使用监视和客户端管理解决方案,该解决方案可通过LAN和VPN访问。现在应该可以从不使用公司VPN的外部笔记本上访问。通信必须是加密的(TLS)。客户端身份验证必须使用客户端证书。通信由客户端启动,并使用单个TCP端口。

我的调查结果

NGINX Plus似乎提供了此功能,但我们的管理员更喜欢乌贼或apache。在鱿鱼Wiki上,我发现:功能:HTTPS(HTTP安全或SSL / TLS上的HTTP)提到了TCP加密。但是我也发现了这个警告:

重要的是要注意,通过CONNECT传递的协议不仅限于Squid通常处理的协议。实际上,使用双向TCP连接的所有内容都可以通过CONNECT隧道传递。这就是为什么Squid默认ACL以deny CONNECT!SSL_Ports开头的原因,并且您必须有充分的理由在其上方放置任何类型的允许规则。

类似问题

这个问题使用SSL加密与鱿鱼正向代理的客户端连接是类似的,但是不处理反向代理/ TLS终止代理。

我需要知道的

我对该技术只有基本知识,我们的管理员要求我提供一般可行性。

  • Squid可以用于保存TCP连接的加密吗?
  • 可以使用客户端证书的身份验证来实现吗?
  • 还是应该仅将其用于HTTPS连接?

Answers:


7

也许您的管理员不喜欢NGINX Plus它,因为它不是开源的,并且会接受另一个维护良好的开源产品。然后请他看一下漏斗。它专为满足您的需求而设计。

Wikipedia上引用一个隧道示例(用于SMTP,但这完全可以满足您的需要):

例如,可以使用隧道来提供与现有的不支持SSL的SMTP邮件服务器的安全SSL连接。假设SMTP服务器在端口25上期望TCP连接。可以配置一个通道来将SSL端口465映射到非SSL端口25。邮件客户端通过SSL连接到端口465。来自客户端的网络流量最初通过SSL传递到通道应用程序,它透明地加密/解密流量并将不安全的流量转发到本地端口25。邮件服务器看到非SSL邮件客户端。

stunnel进程可能与不安全的邮件应用程序在相同或不同的服务器上运行;但是,这两台计算机通常都位于安全内部网络上的防火墙后面(以使入侵者无法直接将自己的不安全连接建立到端口25)。


+1,听起来很有道理
marsh-wiggle

1
与任何HTTP代理相比,stunnel绝对更适合通过TLS连接中继通用TCP数据。
阿莫斯·杰弗里斯

2

CONNECT仅由HTTP客户端到HTTP代理使用,以通过代理建立隧道。HTTP中也没有用于加密连接到HTTP代理的方案。

我怀疑HTTP代理不是您在这里寻找的东西。

我不知道Squid是否支持带有TLS和客户端证书的TCP插件,但WinGate可以。它还具有将证书中的UserPrincipalName验证到Active Directory的能力。

免责声明:我为Winbate的作者Qbik工作。


那么Squid不能用于加密TCP连接(至少没有任何其他插件)?
marsh-wiggle

您将在加密的TCP连接上运行哪种协议?
阿德里安

具有未知有效负载的TCP
marsh-wiggle

好的,因此您需要一些不会尝试从中解析HTTP的东西,而不是HTTP代理。我找不到任何证据表明Squid可以作为通用插件守护程序运行,更不用说使用TLS和客户端证书了。
阿德里安
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.