麻烦让用户通过Squid代理访问某些网站

我们有一个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 

[blocked_content]

 .porn_site.com .porn_site_2.com [...] facebook.com 

[白名单]

 facebook.com/pages/Our-Organization/2828242522 facebook.com/OurOrganization facebook.com/media/set/ facebook.com/photo.php www.facebook.com/OurOrganization 

我最大的弱点是正则expression式,所以我不能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的URLredirect如下所示:

facebook.com/OurOrganization – > [301redirect] – > http://www.facebook.com/OurOrganization – > [302redirect] – > https://www.facebook.com/OurOrganization

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

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

此外,你不能阻止员工被扼杀,如果Facebook被封锁,他们只会使用他们的智能手机; 或者只是盯着他们的办公桌一个小时,看起来他们正在做的工作,大概是午饭后一个小时。 在一个给定的一周里,他们可能只做大约十五分钟的实际工作。

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

你的工作也是build议pipe理层。 你不是盲目的,你不仅遵循指示。 如果是这样的话,机器人可以做同样的事情,更便宜。 有大量的研究可以用统计学和情感原因(两个主要的决定动机)为什么封锁网站对底线,道德,效率等是有害的。

我使用pfsense,只是阻止整个fb子网,然后允许特定的URL在鱿鱼白名单。 pipe理起来越来越容易和快捷,一旦他们意识到他们的FB被阻塞了,他们就把整个事情都弄丢了

你根本不可能有两种方式:东西被阻塞,或者不是。
如果你开始打针孔,人们会发现你的方块。 用户可能并不是圣诞树上最亮的灯泡,但是在获得他们的Farmville修复方面他们相当足智多谋。

如果您希望某些员工可以轻松地访问Facebook,那么您大概都可以使用用户名/密码对Squid进行身份validation。 即使你现在不这样做,很容易让某些用户这样做。 给他们一个单独的,限制较less的白名单,你就完成了。


正如ChrisS所说的,这可能不是一个问题 – 如果是这样的话,那么一个整体块(或一个具有特定员工例外的块)就是解决这个问题的方法。 (需要说服pipe理层?向他们展示其他业务关键项目的列表,因为你正在处理这个问题,所以你没有处理这个项目)。 或者根本不要屏蔽它,并将代理日志拉几周:任何人发现在Facebook上花费“过多”的时间会得到正式的谴责(pipe理层可能会定义“过度”)。

这两种解决scheme都浪费您的时间,并且在人力资源部门/经理人员面前解决问题。