在 Linux 桌面系统上添加网页色情过滤和其他内容过滤
微软用户持续采用 Linux 操作系统,并且自然期望找到像他们在 Windows XP 中使用的内容过滤器。通常,新的 Linux 转换者会在家中的独立个人电脑上进行试验。由于许多人反对在互联网上轻易找到的某些信息和图像,内容过滤系统是首要任务——尤其因为父母经常与孩子共用电脑,而且持续的成人监督并非总是可行。
当父母不在家用电脑旁时,使用 DansGuardian 和 Tinyproxy 是一种监督互联网内容的方式。 DansGuardian 是一款通用的内容过滤器,是用于非商业环境的开源软件。如果您想在商业环境中使用 DansGuardian,您可以购买许可证或购买 SmoothGuardian。与 DansGuardian 一起工作的是 Tinyproxy,这是一个小型开源程序,可以理解和评估通过计算机的信息。它们共同提供管理控制,以阻止来自互联网的令人反感的内容。
DansGuardian 是通行过滤器的一个集合,用于阻止包含您不喜欢或不希望其他人看到的单词、短语和图片的互联网网页。 DansGuardian 中的过滤器充当客户端浏览器(如 Firefox)和互联网之间的中间程序。 Firefox 向 DansGuardian 发出信息请求。然后,DansGuardian 将信息传递给 Tinyproxy,Tinyproxy 与互联网通信。
来自互联网的信息在到达客户端浏览器之前,会通过 Tinyproxy 和 DansGuardian。只有经过批准的信息才能通过过滤器并出现在浏览器窗口中。 DansGuardian 会阻止受限网页,并将不需要的内容替换为浏览器窗口中显示的“访问被拒绝”安全屏幕。
这并不是对过滤过程的高级描述。事实上,Tinyproxy 和 DansGuardian 协同工作的方式既复杂又有趣。如果您想了解其工作原理,请查看 DansGuardian 的“事件流”页面(请参阅在线资源)。在这里,您可以找到关于过滤以及数据如何在每个程序和互联网之间传递的更详尽的讨论。
重要的是要知道您可以定义许多您希望 DansGuardian 阻止的单词、短语和特定位置。除了包含文本的网页外,DansGuardian 还可以过滤图片并阻止某些文件的下载。这种过滤组合优于其他仅阻止访问被禁站点列表的方法。
由于有 20 多个不同的配置文件,对于新的 Linux 用户来说,DansGuardian 的设置可能看起来很复杂。但是,配置文件包含关于如何根据您的需要编辑它们的清晰说明。在我的测试中,我不需要做很多更改,因为默认的过滤安排几乎非常适合家庭使用。
首先,您需要安装和配置 DansGuardian 和 Tinyproxy。其次,重要的是调整您的桌面设置,以防止用户轻易关闭内容过滤。
在安装之前,请浏览您的发行版的软件包存储库,以确保它包含 DansGuardian 和 Tinyproxy。安装程序的最简单方法是使用 GUI 软件包管理器,如 Novel SUSE 的 YaST 或 Synaptic。对于 Debian,root 用户输入apt-get install dansguardian tinyproxy.
如果您的软件包存储库中没有这些应用程序,您可以从它们各自的网页(请参阅资源)下载 DansGuardian 和 Tinyproxy。下载后,您将在名为 INSTALL 的文件中找到通用安装说明。
下一个任务是为 Tinyproxy 和 DansGuardian 定制配置文件。我使用 Ubuntu Dapper Drake 进行测试,因此目录和文件说明可能特定于此发行版。其他发行版以类似的方式组织文件;您可能只需要多查找一下才能找到安装目录。对于自定义功能,唯一必要的工具是简单的文本编辑器,例如 GNOME 的 gedit。
使用您的文本编辑器,以 root 用户身份,打开 /etc/dansguardian/dansguardian.conf。查看该文件并更改 filterport、proxyip 和 proxyport 以匹配下面显示的配置。根据您的发行版,可能还需要注释掉以 UNCONFIGURED 开头的行
# the port that DansGuardian listens to. filterport = 8080 # the ip of the proxy—default is the loopback (this server) proxyip = 127.0.0.1 # the port DansGuardian connects to proxy on proxyport = 3128
DansGuardian 通常默认连接到端口 3128,因为这是流行的代理 Squid 使用的端口。我们可以将其更改为 Tinyproxy 使用的默认端口 (8888),或者我们可以更改 Tinyproxy 端口。在本例中,我们执行后者并更改 Tinyproxy 使用的端口以匹配默认的 Squid 端口。
对于 Tinyproxy,以 root 用户身份编辑文件 /etc/tinyproxy/tinyproxy.conf。浏览此文件,并确保在必要时更改 User、Group、Port 和 ViaProxyName。重要的是更改 Tinyproxy 将用于匹配 DansGuardian 连接端口的端口,即 3128
# Port to listen on. # Port 3128
完成这些更改后,发出命令tinyproxy在您的终端中,或者如果基于 Ubuntu,则键入sudo /etc/init.d/tinyproxy start。这将启动代理,您现在可以准备通过调整浏览器首选项来完成安装。如果您想了解更多信息,请查看 DansGuardian 文档链接(请参阅资源)以获取对此过程的描述。
Ubuntu 附带 Firefox 作为首选客户端浏览器,因此此处的说明特定于 Firefox。其他客户端浏览器可能具有类似的功能和文档,以显示如何模仿这些说明。
最后一步安装步骤是将浏览器指向端口 8080,因此它仅通过 DansGuardian 和 Tinyproxy 发送数据。对于 Firefox,转到编辑→首选项→常规选项卡→连接设置以查看图 1 中显示的屏幕。如图所示,选择手动代理配置,输入 localhost 和端口 8080。这假定您将在每个工作站上安装和使用 DansGuardian 和 Tinyproxy。如果您在单独的服务器上设置 DansGuardian 和 Tinyproxy,则需要输入运行 DansGuardian 和 Tinyproxy 的服务器机器的名称或 IP 地址,而不是 HTTP 代理:行中的单词 localhost。
重新启动您的浏览器并测试过滤器的工作效果。
在测试新过滤器时,您应该看到类似于图 2 中显示的访问被拒绝屏幕。在继续操作之前,最好先查看您可能会在默认过滤器设置中发现的问题。例如,我经常下载 .tar 和其他可执行文件。默认配置文件会阻止这些文件的下载。要解决此问题,您需要编辑 bannedextensionlist.txt 文件,并放置一个 # 以注释掉您希望允许通过过滤器的文件扩展名。
为了彻底起见,您应该浏览 DansGuardian 的所有默认配置 .txt 文件,以定制您希望过滤器如何反应。您一开始不会知道您会遇到的所有情况,但这是一个很好的机会来了解此应用程序的强大功能。
没有哪个系统是完美的,并且有几种明显的方法可以击败 DansGuardian 和 Tinyproxy。最值得注意的是用户可以多么容易地绕过代理和过滤器。在没有进一步保护的情况下,用户可以将 Firefox 的首选项恢复为直接连接,这将绕过 DansGuardian 和 Tinyproxy。一旦逆转,用户就可以无限制地访问互联网。
但是,还有更多方法可以进一步保护 DansGuardian 过滤器,方法是强制所有与互联网的通信都通过端口 8080。 DansGuardian 文档网页上的链接解释了一种深思熟虑的方法,即使用 FireHol 在所有互联网要道上强制执行此条件(请参阅资源)。
对于新手用户来说,一种更简单的方法是设置一个过滤计划,其中包括受限用户权限、锁定的浏览器首选项,并确保代理过滤器在计算机每次重启时启动。
为了测试目的,我在 Ubuntu Dapper Drake 上创建了一个新用户帐户(图 3)。使用清单功能,我严重限制了用户测试的功能。虽然这些权限可能非常适合任何没有计算机经验或明显不可信任的人。诸如 update-rc.d 和 fcconf 之类的实用程序定义了在系统启动时启动的某些程序。我使用了一个名为 BUM 的启动管理器来使 DansGuardian 和 Tinyproxy 在每次启动时都启动。
最后,我决定锁定 Firefox 的首选项。限制 Firefox 的首选项并不像听起来那么困难。 Warren Togami 撰写的一篇较早的受版权保护的文章“HOWTO Lock Down Mozilla Preferences for LTSP”(请参阅资源)详细描述了如何执行此操作。虽然,我不想为了获得类似的结果而搞乱字节移位编码。
在浏览 Mozilla.org 的网站后,我选择将 lockPref 语句添加到我的 Firefox 配置文件中,以防止用户更改连接设置。我编辑了文件 /usr/lib/firefox/firefox.cfg,使其显示为图 5 所示。最后三行强制在 localhost 端口 8080 上手动选择代理。保存此文件并重新启动 Firefox 后,您无法重置连接设置。此外,没有管理权限的其他用户无法快速更改设置并绕过过滤器。
在根据您的喜好自定义过滤器后,重要的是要意识到某些设置会变得陈旧。黑名单站点和新短语可能比其他站点更快过时。您想要阻止的新网站经常上线,新的词语组合可能会使过去的短语过时。浏览 DansGuardian 网站上的 Extras 链接,您将找到有关黑名单的更多信息。此外,一些用户贡献了脚本来自动化黑名单生成和更新。
作为一种替代方案,URLblacklist.com 允许新用户免费下载他们的第一个文件。之后,您可以注册定期订阅以访问最新和最棒的信息。有关将新数据应用于 DansGuardian 的说明在网站上。
另一个考虑因素是代理和过滤器是否会减慢互联网冲浪和页面加载速度。某些用户在使用 Tinyproxy 时会在网页浏览性能方面受到轻微影响。在我自己的测试中,我注意到轻微的延迟,以及我的浏览器缓存的几个问题。使用 Ctrl-Shift-Del 清除 Firefox 缓存立即解决了缓存问题。有时,有必要重新启动 Tinyproxy。这样做之后,我的互联网性能得到了改善。虽然有时令人恼火,但这些小问题是可以接受的权衡。
DansGuardian 和 Tinyproxy 都为管理员制作日志文件以供查看。在 /var/log 中,您应该找到 DansGuardian 和 Tinyproxy 的目录。使用编辑器,打开文件并搜索数据以了解计算机上发生了什么。顺序存储的数据和清晰的注释字段使文件更易于理解。对于 DansGuardian,有一个用户贡献的附加脚本,用于搜索和以更用户友好的格式显示结果。
DansGuardian 中未找到的一个功能是将日志文件通过电子邮件发送给第三方进行审核的功能。如果某些人知道他们有一个负责任的伙伴在监视他们在互联网上的行为,这可能是一个真正的威慑。
在确定此内容过滤解决方案之前,请考虑您在未来几个月的总体要求。如果您只有一台计算机要处理,并且您不介意摆弄配置文件,那么 DansGuardian 可能是一个不错的选择。或者,SmoothGuardian 看起来是 90 美元的绝佳购买选择。此外,该软件还包括一个用户友好的基于 Web 的界面和非技术安装。
尽管如此,DansGuardian 和 Tinyproxy 的设置完全在新的 Linux 用户的能力范围之内,而且免费的价格非常适合大多数预算。使用本文及其参考文献作为指南,您不应该遇到太多启动和运行的困难。即使您确实遇到了一些问题,使用 Google 搜索答案也很容易。此外,还有一个链接到 DansGuardian 主页(请参阅资源)的 Web 内容过滤门户和一个 IRC 聊天位置。
总的来说,DansGuardian 和 Tinyproxy 是开源世界的领跑者,有助于缓解从 Microsoft Windows 环境的过渡。我认为您会发现灵活的过滤和轻量级代理开销使其成为小型网络环境的良好组合。
本文资源: /article/9291。
Donald Emmack 是 The IntelliGents & Co. 的管理合伙人。他广泛担任北美地区的作家和商业顾问。您可以通过 donald@theintelligents.com 联系他,或者在 Midwest 的 2 米业余 RF 波段巡航。