题 HTTPS流量的开源过滤


我们使用配置的过滤/代理设置,以便通过基于Unix的系统路由大约500个用户,该系统使用SquidGuard运行SQUID,以阻止可疑内容并记录用户正在做什么。我们发现有些人可以通过使用HTTPS协议的免费在线代理来绕过该区块。我找不到阻止HTTPS流量而不会完全禁用它的方法,这对于购买和HR(或具有银行网站的普通用户)无效。

有没有办法使用SQUID / Squidguard阻止或过滤HTTPS流量?还是其他一些开源监控程序?其他人如何在不借助商用电器的情况下处理它?

编辑:我们不是想看 交通。我们正在努力监控 网址 并根据需要阻止他们。我们不想要信用卡号等......我们想知道Johnny何时访问 https://schoolssucksoweproxyforyou.com/playboy.com,将域添加到块文件,并阻止它们再次执行。看下面的一些评论......

EDIT2 :(回复:谈到人力资源,银行等......)你可能不会这么想,但我们有一个人在做采购,我们的地区覆盖了分散在全县各地的7栋建筑物,所以我们有一个负责人分发材料和库存,我们有相同的人员检查和银行记录,我们有工作人员的工会和教职员工,我们有人负责处理人力资源信息,如保险和伤害索赔和责任..在学校上学的很多事情我认为普通大众都没有想过。此外,我们确实存在这样的问题:人员/教师无法进行网上银行业务,或者甚至学生无法访问某些网站(例如网络任务),这些网站有时需要SSL连接才能工作,因此禁止HTTPS直接在路由器上是不可行的。

无论如何,继续关于仅阻止某些人的建议,我没有看到一种方法来集成每个用户的身份验证功能;如果凭证可以由Windows传递,那么用户不需要继续使用另一个密码进行身份验证,这将是一个可行的解决方案,但我找到的任何东西都是kludgey并且无法可靠地工作。然后是让人们记住另一个密码(或学生/员工窃取/共享密码)的问题。我个人喜欢对员工和学生进行公平的过滤,而不是让教师可以做X的问题而学生被认为不足以做同样的事情。

最后,我找不到让服务器可靠地对Active Directory进行身份验证的方法(集中用户管理并减少密码以便记住),或者如果我使用不同的身份验证方案,则意味着另一个数据库要保持同步有...什么,最后统计,〜1200用户左右?因为每年我们都有孩子进出区,毕业,还有新的孩子进来?


5
2017-07-29 12:46






答案:


我不打算在这里进入道德规范 - 也许你想在你不“知道”域名的所有网站上这样做......无论如何,除了道德问题:

 可能,肯定需要为squid2添加位,但AFAIK squid3将开箱即用。和一些商业网络过滤器供应商一样。 MITM风格攻击通常是唯一的方法。


1
2017-07-29 13:55



我们是一所学校,所以它要求用户被政府(美国)过滤,并且学生们正在使用SSL代理来浏览有问题的色情和游戏网站,我们将对此负责。 - Bart Silverstrim
巴特,我有点偏颇,我为一个商业网站内容过滤装备工作 - Smoothwall(访问www.smoothwall.com,如果你想尝试一下,Alex Nemeth就是那个可以说话的人)。无论如何 - 尽管我有偏见,我认为在这个阶段“自建”一个HTTPS过滤器是一个很大的问题,除非你愿意等待squid3稳定 - 这将更加容易。我知道CIPA是一个艰难的饼干 - 我们在英国有BECTA,这同样是规定性的。 - Tom Newton
巴特,fwiw,你可以做到 域 阻止而不诉诸MITM,你也可以使用其他技术(例如证书验证)来阻止绝大多数SSL代理,这可能会减轻其他一些海报的道德恐惧! - Tom Newton
我们在阻止域名时遇到的麻烦是,重定向的流量没有看到域名;服务器中的路由根本没有看到该流量。甚至重定向适当的端口流量而不是80,因此它无法匹配域名。可能是一个实施问题? @Tom Newton-我之前使用过Smoothwall进行家庭项目。这是一个很好的产品。 - Bart Silverstrim
啊......你是想透明地做这件事吗?这将使生活变得更加艰难。我不确定有任何产品可以做到这一点......我们希望在下一个版本中,但我们还没有弄清楚如何。建议您在网关处阻止443并让想要使用SSL的人设置非透明代理。或者完全不透明并使用proxy.pac。 Dang,在评论中使用我最好的答案而不是没有人投票;)也试着四处询问 edugeek.net - Tom Newton


HTTPS流量的全部意义在于它在服务器和最终用户之间进行了加密,因此没有其他人可以窥探它 - 包括您的过滤器。您将无法对其进行任何内容过滤。您可以做的唯一HTTPS过滤是阻止SSL端口到特定的IP地址。

如果您列入白名单,您将会遇到大量误报 - 您没有想到的银行,需要HTTPS登录或访问的有用网站等。 如果你列入黑名单,你就会有大量的漏报 - 每秒都会弹出新的代理网站。

这需要在政策层面解决,而不是技术层面。如果有人在工作中使用色情网站搞笑并使用代理来绕过你的过滤器,那么人力资源部门就应该在他们的手上打它们并威胁终止,如果它继续下去的话。


7
2017-07-29 12:51



政治部分是正确的,技术性的 - 不是必要的。有像finjan这样的产品解密流量,并将其发送给最终用户再次加密。这与在所有桌面上安装finjan的ssl证书一起 - 这样即使通过https [think banking]完成,也可以监控最终用户的在线活动。 - pQd
它可以做到并不意味着它应该。 - ceejayoz
虽然我欣赏人们的政治观点,但我们是 授权 由政府过滤流量和阻止可疑内容。如果你是美国公民,请与你的州代表一起讨论......否则,我们仍然在寻找阻止URL的方法,而不是在我们的用户财务和秘密网络邮件上扮演大哥。 - Bart Silverstrim
最后,我们确实在政策层面拥有它。很难向13岁的孩子解释这个概念,即学校的电脑不是他们喜欢的个人财产。但是,感谢您提供的信息。 - Bart Silverstrim
当你提到人力资源,采购和网上银行时,人们通常不会认为这是一所正在谈论的学校。为什么不完全阻止学生帐户的HTTPS,让员工开放。 - ceejayoz


这是一个由商业供应商实施的非常丑陋的解决方案:

  • 将浏览器的CA证书替换为您自己的CA证书

  • 当请求连接到未知地址时,代理会与其自己的客户端连接,并获取站点的证书

  • 然后为您自己的CA签名的该站点生成假证书

  • 代理然后有效地充当MITM(中间人)

你不能用股票Squid做到这一点,但是我需要大约一天的mod_perl黑客来实现Apache。


5
2017-07-29 13:40





什么解决方案可能是什么做IRC服务器有时做的,如果他们看到XXX.XXX.XXX.XXX的连接,他们将尝试连接到该IP,看看它是否是一个开放的代理服务器,如果它是阻止该IP。

这是我能想到的最接近的事情,那将是一个全自动的解决方案,但需要你的工作。结合其他有关白名单的建议或者只是手动查看日志查看然后检查https的远程IP并查看其托管网站是否是唯一的解决方案


3
2017-07-29 13:03





你必须  即使可以,也可以使用中间人技术监控HTTPS流量的内容。它会削弱整个事物的安全性,并且首先破坏使用HTTPS的重点。但是,您可以在外部监控HTTPS流量。

例如,您可以知道他们要连接的站点,因为通过Web代理的所有HTTPS流量都使用CONNECT方法启动,这是以明文形式传输的初始位。此信息可用于帮助确定是否允许连接继续。

您还可以监控HTTPS流量的带宽使用情况。这可以让您深入了解他们是使用它来流式传输视频,还是将其用于银行等在线交易。


2
2017-07-29 13:40



我们不想 监控 他们的交通。我们想 块 网站的URL。在SquidGuard中,我只是将名称添加到文本文件中并运行快速“重新编译”命令将列表重新加载到内存中然后被阻止。通过监控我的意思是我想知道人们访问的网站,因为我们必须按照委托人的要求运行报告。 - Bart Silverstrim
第二个注意:我们无法看到通过HTTPS的网站。当用户访问这些网站时,SquidGuard / Squid看起来很盲目。 - Bart Silverstrim
我不同意公司不得监控其网络上流动的HTTPS流量的内容。虽然这样的政策可能会引起对员工的不信任,但我不同意对流量的公开监控会破坏在第一个问题上使用HTTPS的重点。 - pcapademic
@bart:如果您只想通过URL阻止,请查看CONNECT方法。它是明文。 - sybreon
@EricJLN:HTTPS的目的是防止其他人窥探。否则,只需做普通的HTTP。因此,如果一家公司监控内容,它就会击败HTTPS的全部内容。员工的银行详细信息现在都是无担保的。 - sybreon


您可能需要一个http ssl代理 DeleGate作为Man-In-The-Middle代理 

编辑:添加一种新的方式可能工作

也许您可以尝试在ssl端口传递所有流量,然后通过平均时间启动进程来检测目标服务器是否是ssl代理(如果不需要身份验证,则可以检测到这一点),然后阻止它。

大多数基于内容的防火墙都使用这种策略,首先通过它,然后检查并阻止它。


1
2017-07-29 13:38



通过在组织层面上这样做,如果他们以银行业务为例,你也会不必要地暴露信用卡信息等信息。不是个好主意。 - sybreon
@sybreon:这很糟糕,但它确实有问题。有 没有  其他  办法。 - niXar
这取决于你想要达到的目标。我在回答中提到了其他几种方法。 - sybreon
@sybreon,对于你的“CONNECT”方式,如果你无法监控流量,你怎么知道它发送了CONNECT请求。 - Sam Liao


我知道这个问题很老,但我相信你应该使用DNS代理。因此,您可以将您不想要的所有域列入黑名单(无论是否为SSL)。

例如,dnsmasq运作良好。您可以将其配置为透明DNS代理。有一个名为“Endian Firewall”的开源Linux发行版。您可以使用它,并且它非常容易设置。

如果没有MITM,您肯定无法做到的事情是报告HTTPS站点(访问了多少,访问频率,由谁等)。


0
2018-03-04 04:29