我们曾经配置过一个过滤/代理设置,以便大约 500 个用户通过基于 Unix 的系统路由,该系统运行 SQUID 和 SquidGuard,以阻止可疑内容并记录用户的行为。我们发现,有些人可以通过使用 HTTPS 协议的免费在线代理来绕过阻止。我无法找到一种方法来阻止 HTTPS 流量而不完全禁用它,这对采购和人力资源(或银行网站的普通用户)不起作用。
有没有办法使用 SQUID/Squidguard 阻止或过滤 HTTPS 流量?还是其他一些开源监控程序?其他人如何在不使用商用设备的情况下处理它?
编辑:我们不是想看交通。我们正在尝试监控这些 url并在必要时阻止它们。我们不想要信用卡号码之类的......我们想知道 Johnny 何时访问https://schoolssucksoweproxyforyou.com/playboy.com,将域添加到块文件中,并阻止他们再次访问。请参阅下面的一些添加评论...
EDIT2:(回复:说到人力资源、银行等……)你可能不会这么想,但是我们有一个人做采购,我们区覆盖了分散在全县各地的 7 个建筑物,所以我们有一个人负责分配材料和库存,我们有相同的人来处理检查和银行记录,我们有一个负责员工工会的人,另一个负责教职员工,我们有负责处理人力资源信息的人,比如保险和伤害索赔和责任。 . 办学涉及到很多我认为公众从未想过的事情。另外,我们确实存在一些问题,即阻止员工/教职员工进行网上银行业务被认为是霸道的,
无论如何,继续您关于仅阻止某些人的建议,我没有看到一种方法可以将功能集成到每个用户的身份验证中;如果 Windows 可以传递凭据,因此用户不需要继续使用另一个密码进行身份验证,这将是一个可行的解决方案,但我发现的任何东西都是杂乱无章的,并且不能可靠地工作。然后是让人们记住另一个密码(或学生/员工窃取/共享密码)的问题。我个人喜欢为教职员工和学生公平地进行全面过滤,而不是让它成为教师可以做 X 的问题,而学生被认为不足以做同样的事情。
最后,我找不到让服务器可靠地针对 Active Directory 进行身份验证的方法(以集中用户管理并减少要记住的密码),或者如果我使用不同的身份验证方案,则意味着另一个数据库要保持同步与...什么,最后一次计数,大约 1200 个用户?每年我们都有孩子进出学区,毕业和新来的孩子,因此流失率很高?...
HTTPS 流量的全部意义在于它在服务器和最终用户之间进行了加密,因此没有其他人可以窥探它 - 包括您的过滤器。您将无法对其进行任何内容过滤。您唯一能够执行的 HTTPS 过滤是将 SSL 端口阻止到特定 IP 地址。
如果您将白名单列入白名单,您将有大量误报 - 您没有想到的银行、需要 HTTPS 登录或访问的有用网站等。如果您列入黑名单,您将有大量误报 - 新的代理网站弹出每秒都在上升。
这是需要在政策层面而不是技术层面解决的问题。如果有人在工作中在色情网站上偷偷摸摸,并使用代理绕过你的过滤器,人力资源部应该打他们的手,如果继续下去,威胁要解雇他们。
这是一个由商业供应商实施的非常丑陋的解决方案:
用您自己的内部证书替换浏览器的 CA 证书
当请求连接到未知地址时,代理会连接自己的客户端,并获取站点的证书
然后为该站点生成一个由您自己的 CA 签名的假证书
然后代理有效地充当 MITM(中间人)
你不能用普通的 Squid 来做到这一点,但我需要大约一天的 mod_perl hacking 才能用 Apache 实现它。
什么解决方案可能是 IRC 服务器有时会做的事情,如果他们看到来自 XXX.XXX.XXX.XXX 的连接,他们将尝试连接到该 IP 并查看它是否是一个开放的代理服务器,如果它是他们阻止该 IP。
那是我能想到的最接近的事情,那就是全自动解决方案,但需要您自己努力。这与有关白名单的其他建议相结合,或者只是手动查看日志以查看然后检查 https 的远程 ip 并查看其托管站点是否可能是唯一的解决方案
即使可以,也不得使用中间人技术监控 HTTPS 流量的内容。它将削弱整个事物的安全性,并且首先破坏使用HTTPS的点。但是,您可以从外部监控 HTTPS 流量。
例如,您可以知道他们正在连接哪些站点,因为通过 Web 代理的所有 HTTPS 流量都使用 CONNECT 方法来发起,这是明文传输的初始位。此信息可用于帮助决定是否允许连接继续。
您还可以监控 HTTPS 流量的带宽使用情况。这可以让您深入了解他们是使用它来流式传输视频还是将其用于银行等在线交易。
您可能需要像DeleGate 这样的 http ssl 代理作为中间人代理
编辑:添加一种新方法可能有效
也许您可以尝试通过 ssl 端口的所有流量,然后同时启动一个进程来检测目标服务器是否是 ssl 代理(如果不需要身份验证,可以检测到),然后阻止它。
大多数基于内容的防火墙使用这种策略,先通过,然后检查并阻止它。
我不打算在这里讨论道德问题-也许您想在所有您不“了解”该域的站点上执行此操作……无论如何,道德问题除外:
有可能,肯定需要为squid2 添加位,但 AFAIK squid3 会开箱即用。一些商业网络过滤器供应商也是如此。MITM 式攻击通常是唯一的方法。
我知道这个问题很老,但我相信你应该使用 DNS 代理。因此,您可以将所有不想要的域列入黑名单(无论是否为 SSL)。
例如,dnsmasq 运行良好。您可以将其配置为透明 DNS 代理。有一个名为“Endian Firewall”的开源 Linux 发行版。您可以使用它,而且设置起来非常容易。
如果没有 MITM,您肯定无法获得 HTTPS 站点的报告(访问量、访问频率、访问者等)。