网络管理中,经常会面临如何过滤互联网中的有害内容或屏蔽特定网站,如果你使用pfSense,则可以通过Squid和SquidGuard来进行过滤。Squid是一个代理软件,SquidGuard是一个URL重定向软件。 Squidguard有两大优势:速度快、免费。

一、运行原理

过滤HTTP连接非常简单,由于这些连接是没有加密的,因此可以对它进行严格的检查,从而完全或部分阻止它们。但是现在越来越多的网站都使用HTTPS技术,用户浏览器和网络服务器之间使用加密连接,任何人都可以为他们的网站设置免费的证书。这本身是好事,因为它增加了安全性,使得许多***变得不可能或更加困难。但是,它也使得对不需要的内容进行过滤变得更加困难。

这个“问题”可以通过两种方式来解决:

1、中间人***

一种方法是有意识的中间人***。代理服务器解密HTTPS连接并重建它,允许查看连接并相应地对其进行过滤。大多数网页过滤解决方案都使用这种方法。这里的问题在于,这种对HTTPS连接的严重干扰意味着HTTPS提供的实际安全性不再得到保证,如果代理服务器的证书是可信的,用户很难识别差异。但这种安全性具有欺骗性,即使这是真实内容过滤的唯一方式。这种解决方案是危险、风险很大,也可能与国家现行法律要求(数据保护和隐私)不符合。因此出于安全和道德原因,不建议使用此方式。

2、通过SNI进行URL过滤

另一种可能性是通过SNI(Server Name Indication服务器名称指示)过滤。在浏览器和Web服务器之间查询证书并建立加密连接之前,浏览器会发送它想要查询的域名(FQDN)。这一部分还没有加密,因此可以通过(透明)代理读取并用于过滤。下图说明了TLS握手的过程。

可以很容易地看到SNI在密钥交换和实际安全连接之前发送。可以利用这一原则,除了HTTP连接的网页过滤器之外,我们还可以为HTTPS连接建立一个URL过滤器,而不会通过中间人***破坏HTTPS。

查看原文