无法让用户通过 Squid 代理访问某些站点

arm*_*ani 0 proxy squid regex

我们在 RHEL 服务器上运行 Squid。我们希望阻止用户访问 Facebook,而不是几个特定站点,例如我们组织的页面。不幸的是,如果不让所有 Facebook 都通过,我就无法解锁这些特定页面。

[squid.conf]

# Local users:
acl local_c src 192.168.0.0/16

# HTTP & HTTPS:
acl Safe_ports port 80 443

# File containing blocked sites, including Facebook:
acl blocked dst_dom_regex "/etc/squid/blocked_content"

# Whitelist:
acl whitelist url_regex "/etc/squid/whitelist"

# I do know that order matters:
http_access allow local_c whitelist
http_access allow local_c !blocked
http_access deny all
Run Code Online (Sandbox Code Playgroud)

[blocked_content]

.porn_site.com
.porn_site_2.com
[...]
facebook.com
Run Code Online (Sandbox Code Playgroud)

[白名单]

facebook.com/pages/Our-Organization/2828242522
facebook.com/OurOrganization
facebook.com/media/set/
facebook.com/photo.php
www.facebook.com/OurOrganization
Run Code Online (Sandbox Code Playgroud)

我最大的弱点是正则表达式,所以我不能 100% 确定这是否全部正确。如果我删除 http_access 规则的“!blocked”部分,所有 Facebook 都可以正常工作。如果我从blocked_content 文件中删除“facebook.com”,则所有Facebook 都可以正常工作。

现在,访问 facebook.com/OurOrganization 会在 Internet Explorer 中出现“网站拒绝显示此网页/HTTP 403”错误,在 Chrome 中出现“错误 111(net::ERR_TUNNEL_CONNECTION_FAILED):未知错误”。

WhereGoes.com 告诉我该 URL 的 URL 重定向如下所示:

facebook.com/OurOrganization --> [301 重定向] --> http://www.facebook.com/OurOrganization --> [302 重定向] --> https://www.facebook.com/OurOrganization

我尝试使用“debug_options ALL,6”从鱿鱼中调出调试流量,但我无法缩小/var/log/access.log 和/var/log/cache.log 中的任何内容。我知道每当我对任何文件进行更改时都会发出“squid -k reconfigure”。

Chr*_*s S 8

首先想到的是“不要阻止网站”。这基本上是一个管理/人力资源问题,而不是技术问题。如果你真的遇到员工搞砸而不是完成工作的问题,那就是新员工的时间了。不,这不是一个愉快的过程,但我绝对保证,从长远来看,您会更快乐、更高效、更有利可图。

此外,你不能阻止员工搞砸,如果 Facebook 被屏蔽,他们只会使用他们的智能手机;或者只是盯着他们的办公桌一个小时,看起来他们在做工作,午餐后可能还有一个小时。在给定的一周内,他们可能只做大约 15 分钟的实际工作。

如果你只是告诉他们不要,我非常怀疑你所有的 200 多名员工都会使用 Facebook 或类似的工具。你现在阻止它,检查你的日志,我敢打赌 90%+ 甚至从未尝试过 FB。即使是真的,你的所有员工都被搞砸了,如果你用想要做他们工作的高效员工代替他们,公司仍然会处于更好的状态。奖励:您不会在阻止网站上浪费时间,并且可以专注于支持盈利活动。

你的工作也是为管理层提供建议。你不是盲目的,你不只是遵循指示。如果是这种情况,机器人可以做同样的事情,而且成本更低。有大量关于统计和情感原因(两个主要的决策动机)的研究,为什么阻止网站对底线、道德、效率等不利。

  • `如果你真的遇到员工搞砸而不是完成工作的问题,那就是新员工的时间。`我想起了我的工作场所,我们的网络过滤激励员工阅读平装书和玩纸牌游戏,而不是无效率的网上冲浪。为解决问题而不是解决问题而欢呼三声。 (4认同)
  • @HopelessN00b 在每一个过度热心的过滤系统背后都有一个经理,他无法区分消息和携带它的媒体之间的区别。 (4认同)