我们在 RHEL 服务器上运行 Squid。我们希望阻止用户访问 Facebook,而不是几个特定站点,例如我们组织的页面。不幸的是,如果不让所有 Facebook 都通过,我就无法解锁这些特定页面。
# 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)
.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”。
首先想到的是“不要阻止网站”。这基本上是一个管理/人力资源问题,而不是技术问题。如果你真的遇到员工搞砸而不是完成工作的问题,那就是新员工的时间了。不,这不是一个愉快的过程,但我绝对保证,从长远来看,您会更快乐、更高效、更有利可图。
此外,你不能阻止员工搞砸,如果 Facebook 被屏蔽,他们只会使用他们的智能手机;或者只是盯着他们的办公桌一个小时,看起来他们在做工作,午餐后可能还有一个小时。在给定的一周内,他们可能只做大约 15 分钟的实际工作。
如果你只是告诉他们不要,我非常怀疑你所有的 200 多名员工都会使用 Facebook 或类似的工具。你现在阻止它,检查你的日志,我敢打赌 90%+ 甚至从未尝试过 FB。即使是真的,你的所有员工都被搞砸了,如果你用想要做他们工作的高效员工代替他们,公司仍然会处于更好的状态。奖励:您不会在阻止网站上浪费时间,并且可以专注于支持盈利活动。
你的工作也是为管理层提供建议。你不是盲目的,你不只是遵循指示。如果是这种情况,机器人可以做同样的事情,而且成本更低。有大量关于统计和情感原因(两个主要的决策动机)的研究,为什么阻止网站对底线、道德、效率等不利。
归档时间: |
|
查看次数: |
4312 次 |
最近记录: |