如果你是老板:

如果你是老板:

在我的办公室里,所有人都在使用 Facebook 和其他一些我们不想使用的网站。从服务器 PC,我曾经通过文件共享我的网络/ect/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 -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,我修改了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

但服务器仍然无法阻止所有 PC 访问 Facebook。有人能告诉我如何阻止我的服务器访问所有 Facebook 吗

答案1

如果你是老板:

任何针对该问题的技术解决方案都无法解决实际问题,即办公室里的人感到无聊并想浏览 Facebook/看色情内容/做其他事情而不是工作。

这是一个管理问题,需要通过使用来解决管理工具,例如明确的公司可接受的互联网使用政策,详细说明什么是可接受的,什么是不可接受的,以及如果违反这些政策会发生什么。如果一个人整天都在使用 Facebook 而不是做他的工作,不要屏蔽 Facebook,而是解雇他*。

*尽管存在司法管辖权/当地法律环境和限制。

如果你是技术人员,老板要求你做这件事:

这确实是一个危险的领域。如果没有大量的资源、专业知识和控制权,你就无法有效地审查互联网。最终的结果是,你会实施某种黑客攻击(你的iptables帖子表明你可能不具备完成这项工作所需的所有专业知识),你的用户会绕过它,现在你有一个愤怒的老板,他要求知道你为什么不能做好你的工作。

您需要与管理层设定期望,虽然您可以利用您拥有的资源和技能来实施某些措施,但它可能不会有效,因此会浪费您的时间。

答案2

如果您的用户很聪明,那么您的任务可能很难完全执行,并且 iptables 无法轻松可靠地完成您想要的任务。以下是一些注意事项。

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

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

  3. 您应该制定一项公司政策来管理工作场所的互联网使用,并明确规定哪些使用方式被视为适当或不适当。

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

答案3

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

在 /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

答案4

Squid 需要 squid.conf 中此行“acl lan src 202.51.176.42 192.168.10.1/24”上方的“acl localhost src 127.0.0.1/8”。

相关内容