在Linux机器上封锁一些网站

在我的办公室,所有使用Facebook和其他一些我们不想要的网站。 形成服务器电脑,我曾经通过/ect/rc.local文件共享我的networking。 我用这一行编辑文件:

 #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local echo 1 > /proc/sys/net/ipv4/ip_forward iptables -F iptables -X iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP iptables -A INPUT -j ACCEPT iptables -A OUTPUT -j ACCEPT iptables -A FORWARD -j ACCEPT iptables -t nat -A POSTROUTING -o eth+ -j MASQUERADE 

这样我的networking就被所有人共享了。 要做的过滤,以便没有人可以访问Facebook我修改rc.local file并添加这两行:

 iptables -I INPUT 1 -s facebook.com -j DROP iptables -I INPUT 2 -d facebook.com -j DROP 

我的/etc/rc.local文件现在是这样的:

 #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local echo 1 > /proc/sys/net/ipv4/ip_forward iptables -I INPUT 1 -s facebook.com -j DROP iptables -I INPUT 2 -d facebook.com -j DROP iptables -F iptables -X iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP iptables -A INPUT -j ACCEPT iptables -A OUTPUT -j ACCEPT iptables -A FORWARD -j ACCEPT iptables -t nat -A POSTROUTING -o eth+ -j MASQUERADE 

但服务器还不能阻止所有电脑的Facebook访问。 任何人都可以告诉我,我怎么能阻止从我的服务器的所有facebook访问

如果你是老板:

对这个问题的任何技术解决scheme都不能解决实际的问题,这是你的办公室里的人很无聊,想要浏览Facebook /看色情/什么,而不是工作。

这是一个pipe理问题,需要通过使用pipe理工具来解决,例如明确的企业可接受的互联网使用政策,明确详细说明什么是和不可接受的,以及如果它们被破坏会发生什么。 如果一个人整天都在用脸书而不是做他的工作,不要阻止脸书,把他的屁股烧掉。

*尽pipe有司法/地方法律环境和限制。

如果你是老板要求的技术人员:

这真是狡猾的地方。 没有很多的资源,专业知识和控制,你不能有效地审查互联网。 最终会发生什么是你会实施一些破解(你的iptables发布表明你可能没有所需的专业知识),你的用户将解决它,现在你有一个愤怒的老板谁要求知道为什么你不能做你的工作。

你需要与pipe理层一起设定期望值,尽pipe你可以在给予你所拥有的资源和技能的情况下实施某些东西,但这可能不会有效,因此浪费你的时间。

如果你的用户很聪明,那么你的任务可能很难完全执行,而且iptables不能够轻松,可靠地做你想做的事情。 这里有一些考虑因素。

  1. 您的iptables规则阻止基于IP地址和端口的过滤stream量。 Facebook提供了多个IP地址,并可能会不时更改这些IP地址。

  2. 您的用户总是可以使用开放式代理访问Facebook,绕过基于IP地址的限制。

  3. 你应该制定一个公司政策,规定在工作场所使用互联网,并指定哪些用法被认为是适当的或不适当的。

  4. 如果您pipe理公司的DNS服务器,则可以获得一些控制权,这将使您能够为用户重新定义facebook.com的IP地址。 有一些体面的防火墙和服务提供分类(Fortinet Fortigate-60,OpenDNS,BlueCoat等)。 如果您正在寻找现有设备上的免费解决scheme,您也可以尝试使用像Squid这样的代理来执行此类过滤。

既然你的Linux机器是网关,为什么不把Squid设置成透明代理 ,然后将.facebook.com添加到一个鱿鱼黑名单文件中,如下所示:

在/ etc / squid / blacklist_domains中:

 .facebook.com .whatever.com 

在你的squid.conf中:

 acl BLACKLIST_DOMAINS dstdom_regex -i "/etc/squid/blacklist_domains" http_access deny BLACKLIST_DOMAINS 

如果在办公室的用户不是那么聪明的技术,你可以改变他们的主机文件,像这样的facebook.com 127.0.0.1并为www添加一行。

如果你正在和一个techi用户打交道,(他们可以用一个IP地址访问facebook),这样做比较困难。 因为@TryTryAgainbuild议解开可以做到这一点。

squid在squid.conf中需要“acl localhost src 127.0.0.1/8”这行上面的“acl lan src 202.51.176.42 192.168.10.1/24”。

这听起来像Untangle可能是你在找什么。 看看它,并提交给你的老板。

我一直在使用基于OpenDNS的DNS阻止系统。 尽pipe我公司的大多数用户并不是那种技术高超的人。