我想阻止某些网站的 HTTPS 版本并允许它们使用 HTTP。涉及的主要网站是 Youtube 和 Google 图片/视频。这是因为在 HTTP 版本上,我可以在这些平台上强制执行 Safesearch 过滤器,而我不能在 HTTPS 版本上。对我来说,这是一个非常严重的问题,它破坏了 Google 提供的 Safesearch 功能的许多优点。
有没有可以做到这一点的软件/配置?
我正在使用过滤软件 (K9 Web Protection),它在我提到的网站的 HTTP 版本上强制执行 Safesearch,但无法在 HTTPS 版本上执行此操作。
我想我需要在计算机级别实现它,因为从路由器绕过过滤解决方案非常容易,尤其是当它们依赖 DNS 配置时。
有两种方法可以做到这一点:
1) 根据目标 IP 地址和端口在防火墙处阻止它。例如,当我从我的位置查找 YouTube 时,我得到:
C:\Users\mark.henderson>nslookup
默认服务器:enetsdc2.enets.local
地址:192.168.161.2
> youtube.com
服务器:enetsdc2.enets.local
地址:192.168.161.2
名称: youtube.com
地址:2404:6800:800b::88
74.125.237.135
74.125.237.136
74.125.237.142
74.125.237.128
74.125.237.134
74.125.237.129
74.125.237.131
74.125.237.130
74.125.237.133
74.125.237.132
74.125.237.137
>
这为您提供了要阻止的内容的相当清晰的列表,显然 HTTPS 是 port 443。因此,如果您要阻止到这些 IP 地址的出站,那么443这就是一个开始。对每个域重复并冲洗。
这样做的问题是,这只会阻止初始访问。可能还有其他方法可以访问视频,例如通过使用不同 IP 地址的子域。例如,Google 地图由数十个子域提供服务,每个子域都可以有不同的 IP 地址。尝试和错误几乎是解决这个问题的最简单方法。
2) 中间人 SSL 检查。我相信 Microsoft TMG 防火墙可以做到这一点(尽管我没有实际检查过)。基本上,YouTube 和您的网络之间的 SSL 连接终止于您的防火墙。然后,防火墙解密会话,检查流量,应用其过滤器,然后使用自己的可信证书重新加密,并从原始证书复制详细信息。
为此,防火墙基本上充当其自己的 CA,为不属于它的域颁发证书。为了做到这一点,每个浏览器/客户端必须信任防火墙 CA,因为证书将由它颁发,而不是实际的证书。任何有一点知识的人都可以轻松检测到这一点(通过检查证书链)。如果设置不正确,会给每个用户一个证书错误。
总而言之,我建议使用第一种方法,原因很简单,这意味着您不会意外解密会计师的网上银行会话,因此,如果首席执行官保留的银行帐户中丢失了 100,000 美元,您也不会受到指责为了他的情妇。
除了您下面的评论之外,还有第三种选择,据我所知,只有 Google 提供。仅当您所在的网络运行其自己的 DNS 服务器并且您知道如何覆盖某些站点的公共 DNS 条目时,此方法才有效。
根据Google SafeSearch 和 SSL Search for Schools,您可以使用for覆盖A记录。这将执行初始 SSL 握手,但随后会立即将用户重定向回非 SSL 进行搜索。www.google.comcnamenosslsearch.google.com
这不适用于 YouTube 或其他服务,除非他们也提供此服务。
其他说明:您说得对,DNS 阻止是阻止访问的一种糟糕方法,因为它可以被绕过。但是,如果您位于公司网络上,则您可能在内部运行自己的 DNS,因此您始终可以阻止发往网络外部的 DNS 流量,除非来自您明确允许的内部 DNS 服务器。但另一方面,您只能使用 DNS 来阻止域,而不能使用协议。因此,您可以阻止 youtube.com,但不允许在 HTTP 上使用它,而在 HTTPS 上阻止它。
不过,您认为路由器是执行此操作的错误位置,这是错误的。事实上,如果您想获得最大的成功机会,这是唯一可以做到的地方。由于路由器(及其背后的防火墙)是进出网络的唯一途径,因此 99% 的情况是流向互联网的任何流量都会通过您的控制流出。(另外 1% 是将个人电脑与智能手机连接起来以访问互联网的人,但这是一个管理/社会问题,而不是技术问题)。