IPCop 防火墙配置指南(二)
原文:
zh.annas-archive.org/md5/E3FAB64B313E2DFA7B781CAB942544AE译者:飞龙
第八章:使用 IPCop 管理带宽
我们现在非常清楚 IPCop 不仅仅是一个基本的数据包过滤防火墙。我们已经看到了内置的入侵检测系统以及强大的 VPN 选项。我们还有另一个增加,就是通过几种不同的技术来管理流量,即流量整形和缓存。现在我们将看看如何在需要的地方使用这些技术来提高网络的性能。
带宽问题
目前大多数网络中通常会提供和使用多种不同的服务,并且可能会有多个链接到其他网络。由于有这么多的服务,我们可以很快地用尽带宽。确保您的网络上有足够的带宽供所有服务和用户使用的最简单方法是购买低争用率的快速链接。这是一个很好的理论,但经济现实要复杂一些,因为带宽可能很昂贵,可能是服务的主要开销。为了应对这一问题,我们可以与我们拥有的服务合作,尝试减少它们的带宽使用。
最初可以通过使用尽可能节省带宽的协议来减少带宽使用;然而,有时我们别无选择,必须使用由应用程序、供应商或用户指定的特定协议。这时,我们可以考虑减少该应用程序对网络的负担。我们可以使用一些技术和设备来做到这一点,每种技术和结果都有所不同。然而,IPCop 本身有一些简单的选项,可以帮助我们管理带宽。
HTTP 问题
在整个互联网上,最常用的协议之一是 HTTP(尽管点对点文件共享应用程序正在迅速赶上)。大多数企业都有一个基于 HTTP 运行的网站作为他们的基本互联网存在,几乎没有不使用 HTTP 的互联网用户。我们可以非常有信心地认为这将是我们网络上使用的协议之一。
当涉及带宽时,HTTP 给我们带来了一个重要的问题——用户期望 HTTP 几乎是即时的。由于带宽拥塞而导致用户的网页浏览体验出现延迟,远非理想的情况,可能是网络用户首先会注意到(并抱怨!)缺乏带宽的地方。幸运的是,IPCop 为我们提供了非常强大的选项,以减少 HTTP 对网络的影响。
解决方案:代理和缓存
虽然代理本身并不是节省带宽的措施,但它是与带宽控制和监控相关的功能。代理允许您监视、修改和控制对 Web 内容的请求。您可以选择要记录和/或拒绝的流量,以及在通过代理时修改这些请求。由于代理位于 Web 客户端和 Web 服务器之间,它还可以执行一些其他功能,比如缓存。
在同一网络上的用户通常会访问一些相同的网站。这意味着每当用户访问网站时,他们将下载页面上的所有 HTML 和图像。如果这些内容只下载一次,然后以某种方式存储以供后续请求相同内容的客户端呈现,那对我们的网络显然是有利的。我们的浏览器在本地级别为我们做到了这一点,因此如果我们多次访问同一页面,我们的浏览器可能已经为我们缓存了本地副本。
这正是缓存代理会为我们提供的,但它会为所有人缓存。每当用户下载页面及其图片时,代理将在内存中保留一份副本(和/或将其写入磁盘)。每当出现对相同内容的请求时,代理不会将其传递给原始网站,而是为客户端提供文件的缓存版本的副本。我们可以大大减少带宽,特别是如果我们的用户访问许多相同的网站。这并不意味着您获取的信息将过时;网站可以要求代理不缓存时间相关的信息(股票信息、天气等)。
Squid 简介
Squid是最有用和功能强大的 Web 代理和缓存系统之一。它是免费和开源的,这就是为什么它可以与 IPCop 一起使用。Squid 本身有相当复杂的配置文件,并执行各种代理和缓存功能。正如我们所期望的那样,IPCop 很好地抽象了这种复杂性,并让我们相对轻松地配置 Squid。
Squid 诞生于 Harvest Cached 的分支,Harvest Cached 是一个代理/缓存项目,并于 1994 年发布了其第一个版本,因此 Squid 的开发时间跨越了 10 多年。这导致了一个相当稳定和功能齐全的代理和缓存应用程序。原始的 Harvest Cached 项目已不再开发。
配置 Squid
IPCop 中的 Squid 配置屏幕非常易于操作,您只需点击几个框即可进行基本配置。
在这个例子中,我们只有一个绿色接口;但是,我们可以在所有其他接口上启用代理——除了红色接口,即互联网连接。
第一步非常明显;我们通过点击第一个复选框在需要的接口上启用代理,然后选择代理监听的端口(在 IPCop 中默认为 800,尽管 Squid 通常在端口 3128 上运行)。我们还可以勾选启用日志框,这是接口非特定的,因此我们要么记录所有内容,要么不记录任何内容。如果我们想要在某个时候监视代理,启用这个选项是个好主意。我们还可以通过配置上游选项将此代理链路通过我们的 ISP 提供的代理,例如,这些选项可能由 ISP 或其他代理服务提供商提供。可能需要连接的主机端口,以及用户名和密码。
透明代理需要更多的解释。传统上,代理在机器上的特定端口上监听,客户端必须配置为连接到此端口。例如,代理可以在 IP 地址 10.0.0.1 上监听端口 800。在这种情况下,我们将配置所有的 HTTP 客户端连接到此代理。Firefox 和 Internet Explorer 有网络设置对话框,我们可以在其中配置代理访问。Firefox 代理配置屏幕如下图所示:
这是一种简单的使用方法,但如果我们必须像这样配置所有的应用程序,这可能会变得乏味,特别是如果我们有许多需要以相同方式配置的机器。这就是透明代理变得有用的地方。代理不再监听一个端口并转发请求,而是监视通过机器的所有流量,并在检测到 HTTP 流量时尝试进行缓存。这也有一个缺点,即一些其他协议可能看起来像 HTTP,并且尝试缓存这些协议可能会破坏它们。如果我们启用了透明代理,不久后某个应用程序开始出现问题,关闭透明度作为初始步骤是值得的。这是一个罕见而具体的问题,但可能很难追踪。
缓存管理
缓存大小:我们希望缓存占用磁盘多少空间?这默认设置为 50MB,对于大多数小型网络来说是相当合理的。如果我们有很多用户,可能需要将其增加到几百兆字节。除非是真正大型网络,否则很少需要超过 1GB。此外,如果这个数字明显大于 IPCop 机器上可用的内存,那么我们将有大量的磁盘读/写,这可能会减慢速度。
最小对象大小:有时我们不希望缓存真正小的文件,因为这可能效率低下。然而,通常将其设置为零是一个好主意,因为这些文件的重复 HTTP 开销可能会影响性能。
最大对象大小:同样,我们可能不希望缓存过大的文件,因为这将很快填满我们的缓存,并导致我们陷入磁盘读/写问题,这是我们希望避免的。
通常应该使用前两个选项的默认设置,除非我们有特定的需求需要更改,例如用户不断下载相同的大文件。
传输限制
我们还可以控制系统中文件传输的最大和最小大小。除非有特定的情况需要这样做,否则这不是一个好主意,因为这可能会让用户非常沮丧。如果我们想要防止用户下载诸如 ISO 之类的非常大的文件,这将非常方便,以防止滥用网络带宽进行个人使用。
在没有缓存的情况下管理带宽
HTTP 并不是我们网络上唯一需要足够带宽的协议。例如,如果我们在网络上有在线游戏或语音和视频通信,这些服务通常由于其对时间敏感的使用而需要比其他服务更高的优先级。你不会希望因为网络上的某个用户正在下载大文件而与客户进行声音不连贯的对话,或者在家庭网络上,你不会希望因为有人决定开始收听在线广播电台而失去在线游戏中的高分。这就是流量整形的用武之地。
流量整形基础知识
为了确保服务质量(QoS),我们必须控制流量,使高优先级的流量被视为高优先级!通过流量整形,我们可以使用与数据包过滤相同的参数;然而,我们不是决定是否传递流量,而是对哪些流量享有最高优先级做出更复杂的决定,因此首先处理或给予比网络上使用的其他协议更多的带宽。
流量通常用于控制媒体服务。视频和音频服务严重依赖低延迟和充足的可用带宽,因此在网络中引入流量整形以适应这些服务是很常见的。
注意
ISP 利用流量整形
一些 ISP 像我们在这里描述的那样使用流量整形,以提供更好的服务给依赖带宽和延迟的服务。
还有另一种商业用途,即服务提供。ISP 可以进行流量整形(有些确实这样做),以便一个内容提供商的服务比另一个更好。例如,ISP 可以收费进行优先整形,如果 Google 为此服务付费,他们将确保他们的内容和服务比他们的竞争对手如 Yahoo!和 MSN 更快更具响应性。
这是一种有效地排挤竞争对手的方法,因为 ISP 的用户可能会选择更好的内容提供商。显然这并不完全符合 ISP 用户的利益,但对于 ISP 和可能为这些服务付费的内容提供商来说,这肯定是一项有利可图的投资。
流量整形配置
流量整形配置页面非常简单,可能会给我们提供更多选项,但我们有能力基于使用的端口进行整形,这使我们足够具体以区分大多数服务以进行流量整形。
流量整形旁边的复选框用于启用该服务。然而,在我们定义一些流量整形规则之前,这对流量不会产生任何影响。
我们还必须提供上行和下行速度。这是我们的网络可以传输数据的速度。常见上传和下载速度的快速参考如下表所示,这可能对我们的设置并不完全准确。建议我们测试自己的速度或咨询我们的 ISP 以获取更准确的信息。
| 连接类型 | 上行(kbit/秒) | 下行(kbit/秒) |
|---|---|---|
| 拨号 | 48 | 56 |
| 电缆(1 兆) | 256 | 1000 |
| T1 | 192 | 1540 |
可以在这里找到更完整的不同服务及其上传和下载速度的指南:en.wikipedia.org/wiki/List_of_device_bandwidths。
添加流量整形服务
为了添加一个服务,我们填写三个必填字段,然后选择启用。点击添加会在底部窗格的流量整形服务中添加一行新的行。在这种情况下,我们已经添加了端口5060 UDP(SIP)作为高优先级,这将确保该服务在网络上优先处理。这些是相当基本的流量整形选项,我们没有能力定义端口范围或按 IP 地址进行整形。我们只能限制为三个优先级——低、中、高,并且端口一次添加一个。不需要列出所有将通过 IPCop 的端口,因为未指定的端口将默认以中等级处理。要删除此规则,我们只需点击右侧的垃圾桶;我们还可以使用操作标题下的复选框启用或禁用添加的规则。
编辑流量整形服务
为了编辑我们已经添加的服务,我们可以点击操作标题下的铅笔,这应该显示如下屏幕:
我们可以看到,我们的规则现在以黄色突出显示,以便清楚地知道我们正在编辑哪个规则,并且我们在上面的配置框中有原始参数。添加按钮也已更改为更新。我们现在修改任何我们需要的值,然后点击更新按钮,这将保存规则并将我们带回初始的流量整形屏幕。
对于 IPCop 还有其他可用的模块,可以进一步扩展这些功能,如果您有一些严肃的流量整形工作要完成,这是值得考虑的。
摘要
在本章中,我们已经介绍了使用 IPCop 进行缓存和流量整形以及如何配置这些功能。即使在最小的网络中,这也可能很有用,因为我们优先考虑服务访问,允许网络上的用户保证使用中的关键服务获得最佳的服务。在 IPCop 中进行这样做的选项相当基本,我们在控制方面受到限制。然而,我们已经看到,可以对服务产生影响,以改善我们的带宽利用率。
第九章:定制 IPCop
IPCop 是市场上功能最齐全的 SOHO 防火墙之一,到目前为止,您应该已经熟悉了大部分功能,但您可能已经注意到了一些不足之处。也许有一些地方 IPCop 没有以恰当的方式执行某个功能,或者没有我们需要的特定功能。那么我们该怎么办呢?我们可以使用一些必要的插件来定制 IPCop。
插件
在其核心,IPCop 是一组基于 Linux 的工具,通过令人印象深刻的基于脚本的粘合剂粘合在一起。因此,毫不奇怪,我们可以修改、扩展和改进系统以满足我们的需求。这就是开源软件社区部分变得重要的地方,因为我们发现系统的用户已经开发了各种插件,可以安装和使用在 IPCop 上。
插件通常由第三方开发,即 IPCop 开发人员以外的人。它们通常是为了填补用户在软件中发现的某些空白而开发的,然后发布,以便其他用户可以从这项工作中受益并解决类似的问题。
我们将查看一些常见的插件,它们提供了什么,以及我们如何使用它们。我们可以在 IPCop 网站上找到插件的链接:ipcop.org/modules.php?op=modload&name=phpWiki&file=index&pagename=IPCopAddons。
防火墙插件服务器
防火墙插件服务器允许我们使用简单、用户友好和基于 Web 的系统来管理一些 IPCop 的插件。为了在本章中使用插件,有必要安装它。
我们可以从firewalladdons.sourceforge.net/下载防火墙插件服务器包。
在撰写本文时,我们将使用文件:heanet.dl.sourceforge.net/sourceforge/firewalladdons/addons-2.3-CLI-b2.tar.gz
对于以后的版本,此位置可能会更改,与文件名相关的以下命令应更改以反映下载文件的名称。
首先,我们使用scp命令将此文件复制到服务器,指定端口 222,这是 IPCop 默认的 SSH 访问端口,并指定 root 用户。
$ scp -P 222 addons-2.3-CLI-b2.tar.gz root@10.0.0.200:/
我们将被提示输入 root 帐户的密码,这是我们在安装 IPCop 机器时设置的密码。
现在文件已经就位,我们可以登录 IPCop 机器并对其进行设置。
$ ssh -p 222 root@10.0.0.200
注意
P 与 p
请注意,使用ssh时小写-p用于端口,而使用scp时大写-P用于端口。这种差异可能会变得非常恼人,并且可能导致难以发现的拼写错误。如果无法连接,请检查您是否对命令使用了正确的大小写。
输入 root 密码后,我们应该看到以下提示:
root@ipcop:~ #
现在,我们输入以下命令来设置插件服务器:
# mv /addons /addons.bak
# tar xzvf /addons-2.3-CLI-b2.tar.gz -C /
# cd /addons
# ./addoncfg -u
# ./addoncfg -i
命令完成后,我们登录到 IPCop Web 界面,应该会看到页面顶部的菜单中新增了一个选项。
我们将查看我们的 Web 界面现在具有的一些新页面,以及它们提供的附加选项。
ADDONS-NEWS页面显示有关防火墙插件服务器及其提供的插件的更新。除了我们想要查看多少新闻之外,这里没有配置选项。它作为一个通用信息页面,使用从插件网站下载的重要新闻。
ADDONS页面提供有关已安装的插件和当前可用的插件的信息,并允许我们安装或删除插件。
ADDONS-UPDATE页面向我们提供有关插件更新的信息,方式与ADDONS页面提供有关插件本身的信息相似,显示可用内容,并为我们提供了安装更新的方法。
安装插件
现在我们熟悉了防火墙附加组件服务器的界面,我们可以开始安装和使用附加组件。我们将从 SquidGuard 开始,你可能已经注意到它在之前的截图中已经安装了。要安装附加组件,我们转到附加组件页面,向下滚动直到看到我们想要安装的附加组件。然后点击右侧的信息超链接,这将带我们到附加组件的详细信息和下载页面。对于 SquidGuard,这个页面是firewalladdons.sourceforge.net/squidguard.html。
在这个页面上,我们可以获得有关插件的详细信息,并提供当前版本的下载链接;在撰写本文时,当前版本是:heanet.dl.sourceforge.net/sourceforge/firewalladdons/SquidGuard-1.2.0-GUI-b11.tar.gz。这可能会更新,因此首先检查之前的链接!
我们下载附加组件,它以一个 GZIPPED TAR 存档的形式提供。然后我们返回到附加组件页面,点击浏览按钮,浏览到我们刚下载的文件,点击上传,附加组件就安装到服务器上了。
注意
注意:有时在上传附加组件时,特别是像 SquidGuard 这样会重新启动 Web 服务器的附加组件,我们可能没有页面自动刷新和/或连接可能会超时。点击刷新,或者在浏览器中点击停止然后刷新应该会把我们带回附加组件页面。
对于使用防火墙附加组件服务器安装的所有其他附加组件,流程是相似的,因此当我们查看其他附加组件及其工作原理时,我们无需重复这些步骤。
常见附加组件
现在我们将查看一些常见附加组件的配置以及它们的使用方式。由于我们已经安装了 SquidGuard,我们可以从这个附加组件开始。我们不会在本文中涵盖所有的附加组件,因为它们相当多。但是,我们将涵盖最常见和重要的附加组件。建议我们至少熟悉其他可用的附加组件,因为它们可能满足我们以后可能认识到的需求。
SquidGuard
SquidGuard 是一个内容过滤插件,可以与 Squid 一起安装。它主要用于阻止不适当的网络内容,并可以配置一组动态规则,包括对各种主题的全面禁止和/或根据它们对我们网络上的受众的适用性进行黑名单和白名单设置。
SquidGuard 配置屏幕如下:
正如我们所看到的,我们可以根据 SquidGuard 配置中预定义的各种主题进行过滤。
在上面的截图中,我们选择了过滤广告、色情、暴力和赌博相关网站。
我们还配置了一些其他选项来帮助控制我们的网络使用。我们已经确定 IP 地址为10.0.0.201的机器是一个特权机器(可能是我们自己或管理员的机器),允许它绕过过滤器并无差别地访问网站。10.0.0.202处于被禁止的 IP 范围,是一台不允许通过这个 Web 代理访问任何互联网资源的机器。网络 IP 范围表示网络上的所有其他用户将受到之前配置的其他规则的约束。请注意,网络 IP 范围包括机器200-250;所有其他范围可以类似地指定,允许我们在必要时在规则中包含多个 IP 地址。
我们还有一些其他重要和强大的配置选项。如果我们允许白名单,然后点击编辑框,我们会看到以下屏幕:
通过输入 URL 并单击添加,我们允许访问该域,而不管其他规则如何。在这种情况下,URL www.reboot-robot.net 已被列入白名单。
黑名单配置屏幕与之前完全相同,列出的任何域都将被 SquidGuard 阻止,除了特权 IP 地址。
除了直接配置要阻止和不要阻止的内容之外,我们还有一些其他需要解释的选项。
-
**启用日志记录:**允许我们记录 SquidGuard 允许和拒绝的连接
-
**启用广告日志记录:**允许更详细地记录被阻止的广告
-
**邮件日志:**记录通过防火墙的邮件信息
-
**自动更新:**从 SquidGuard 网站下载用于阻止的 URL 的自动更新
-
**邮件服务器:**发送邮件给管理员时要使用的服务器
-
管理员电子邮件:发送日志的电子邮件地址
-
**邮件用户名:**如果邮件服务器需要身份验证,则使用的用户名
-
**邮件密码:**之前使用的密码
注意
邮件设置
您将注意到这些邮件设置作为任何提供与网络管理员通信的插件的一部分。值得随时保留这些信息,并可能专门为我们的 IPCop 机器创建一个电子邮件帐户/地址。
此页面上唯一需要的框是我们的网络 IP 范围和我们的管理员电子邮件;其他所有内容都可以选择配置(可选字段旁边有蓝色星号)。
在页面底部,我们有启动/重新启动 SquidGuard按钮,当我们已经根据需要配置了服务,并希望保存和在运行的机器上使用配置时,可以使用该按钮(诚然,这并不直观)。更新黑名单按钮允许我们下载更新的黑名单以供内容过滤选项使用。
配置完 SquidGuard 后,我们现在应该有一个有效的内容过滤系统,以确保网络上的用户不会访问被认为是不良的网站。
如果我们想要监视并控制怎么办?细心的读者可能已经意识到,当我们启用日志选项时,可能应该有访问这些日志的权限,可能是在 Web 界面中。如果我们将鼠标移动到日志上方,我们确实会看到SquidGuard 日志;点击这将给我们:
这使我们能够在类似于系统上默认日志的界面中查看 SquidGuard 日志。
增强过滤
增强过滤插件是最有用的插件之一,它解决了 IPCop 默认严重缺乏的一个功能。IPCop 的默认安装将允许从绿色接口到其他接口的所有流量出站,而没有任何过滤。通常希望控制用户可以从绿色接口访问的端口和 IP 地址。例如,我们可能希望阻止除网站运行的端口之外的所有出站连接。这将允许默认阻止点对点文件共享程序和即时通讯程序。这是防火墙的首选默认设置,我们在第三章中讨论过。增强过滤还允许对无线连接进行基于 MAC 的过滤。
注意
基于端口和 IP 的阻止并不完全有效
请注意,阻止应用程序使用的端口并不会阻止用户在另一个端口或通过位于 IPCop 受保护网络之外的代理服务器上使用该应用程序。同样,使用代理可以克服基于 IP 的阻止。应用层过滤增加了这种保护,但如果没有对网络上的内部资源进行严格控制,大多数网络级别的过滤机制都可以被绕过。
有关更多信息,请参阅增强过滤网页:firewalladdons.sourceforge.net/filtering.html。
在撰写时使用的版本是从以下 URL 下载的,并且安装方式类似于 SquidGuard:
heanet.dl.sourceforge.net/sourceforge/firewalladdons/EnhancedFiltering-1.0-GUI-b2.tar.gz
以下图显示了增强过滤配置屏幕,可以通过单击**防火墙|增强过滤:**来访问:
在这里,我们可以启用增强过滤或禁用它,以及在 GREEN 网络接口上设置默认拒绝。当我们介绍防火墙时,我们讨论了默认拒绝以及为什么它是一种更易管理和更安全的设置。
我们还可以为网络之间的连接添加特定的防火墙规则。我们必须提供源和目标 IP 地址,源子网掩码和目标子网掩码,网络和目标端口。
一个例子是只允许我们的邮件服务器向我们的 ISP 邮件服务器发出邮件,以便为网络中继邮件。我们将指定源 IP地址为我们的邮件服务器的 IP 地址,目标 IP地址为 ISP 的邮件服务器的 IP 地址,并设置端口为25。这意味着我们的邮件服务器可以向 ISP 中继邮件,但网络上的其他机器不能。这将有助于防止我们的用户使用外部邮件帐户,并防止带有恶意软件的机器发送恶意软件或垃圾邮件,而不经过我们的邮件服务器和潜在的邮件过滤软件。
正如我们现在所看到的,主要优势是我们可以非常具体地控制本地网络机器可以访问哪些服务器和这些服务器上的服务,这是 IPCop 本身默认不提供的功能。
蓝色访问
增强过滤插件提供的另一个选项是根据 IP 地址和 MAC 地址过滤蓝色(无线)接口。这是一种粗糙但相当有效的方法,可以限制对具有特定 MAC 地址的机器的无线接口的访问。MAC 地址是唯一的网络接口卡,并且是识别卡的相当有用的方法。MAC 地址过滤绝不是加密无线连接的替代方法,但是是一个有用的辅助措施。
注意
MAC 欺骗
MAC 地址很容易被欺骗,大多数常见操作系统都有工具来修改网卡的 MAC 地址。MAC 地址并不是在设备本身中修改,而是在操作系统中修改。例如,Linux 可以使用其默认网络配置工具ifconfig来做到这一点,而 Windows 存在许多工具来完成相同的任务。IPCop 有一个插件,可以在 GUI 中为红色接口提供 MAC 欺骗功能。
蓝色访问配置屏幕可以通过单击**防火墙|蓝色访问:**来访问。
源 IP 和源 MAC 地址填充了被允许从这个接口访问网络的机器的信息,当启用复选框被勾选时,只有匹配列表的机器才能访问任何网络资源。蓝色设备列表中的机器是已被允许访问的机器。
LogSend
LogSend 是一个插件,允许我们将日志从 IPCop 机器发送到各种管理员和/或 DShield 服务。这很有用,因为它允许我们使用外部工具更深入地分析我们的日志,而无需配置 syslog 服务器。
LogSend 网页位于:firewalladdons.sourceforge.net/logsend.html。
撰写时使用的当前版本是:heanet.dl.sourceforge.net/sourceforge/firewalladdons/Logsend-1.0-GUI-b3.tar.gz。
LogSend 配置页面通过单击日志 | LogSend访问。
LogCheck的配置相对简单;我们可以选择启用服务,启用DansGuardian(由 Cop+插件提供)日志、代理日志和Snort日志的邮件发送。每个日志都可以发送到不同的管理员,但通常会使用相同的电子邮件地址,如上图所示。
注意
DShield
DShield选项可能需要一些解释。DShield (www.dshield.org) 是由 SANS(系统管理、网络和安全研究所:www.sans.org)提供的服务。它汇总和分析来自世界各地数千个系统的日志,以获取关于最常被攻击的端口和最严重的攻击 IP 地址的详细信息。这是为了让系统管理员随时了解互联网的当前状态。发送到 DShield 的任何日志都将添加到该数据库中,如果我们注册了 DShield 帐户(发送日志不需要),我们还可以使用其在线分析工具来监视来自我们自己的入侵保护系统的数据。
LogSend 中的 DShield 配置功能使我们可以轻松使用 DShield 服务发送我们的日志。所需的只是启用 DShield,并设置发送日志时使用的时区和返回电子邮件地址。如果我们还提供我们的用户 ID,我们可以确保日志归属于我们的帐户,并在 DShield Web 界面上可用。DShield 管理员是任何日志信息将被发送到的地址。
我们还有熟悉的邮件服务器选项,可以提供要使用的邮件服务器、发件人和所需的任何身份验证凭据。我们在 IPCop 的其他领域也看到了这些选项。
Copfilter
Copfilter 将 IPCop 从防火墙扩展为类似于 Symantec 和 MacAfee 提供的安全设备,试图保护我们的网络免受各种恶意软件的侵害。Copfilter 将监视 Web、FTP 和电子邮件流量,以便检测并阻止其中发现的恶意软件。
Copfilter 网页是:www.copfilter.org。
撰写时使用的版本是:heanet.dl.sourceforge.net/sourceforge/copfilter/copfilter-0.82.tgz。
Copfilter 安装是直接进行的,而不是通过插件界面。它的安装方式与防火墙插件服务器的安装方式非常相似。
$ scp -P 222 copfilter-0.82.tgz root@10.0.0.200:/ # provide password
$ ssh -p 222 root@10.0.0.200 # provide password
# cd /
# tar xzvf copfilter-0.82.tgz
# cd copfilter-0.82
# ./install
然后我们应该看到以下输出:
============================================================
Copfilter installation -- Version 0.82
============================================================
WARNING:
This package is NOT an official ipcop addon. It has not been approved
or reviewed by the ipcop development team. It comes with NO warranty or
guarantee, so use it at your own risk.
This package adds firewall rules, proxies, filters, virus scanners
and precompiled binaries to your ipcop machine,
Do NOT use Copfilter if firewall security is an issue
Continue ? [y/N]
它警告我们安装 Copfilter 会重新配置防火墙,并可能改变一些功能,可能会降低安全性。
注意
复杂性和安全性
这引入了一个重要的观点,我们在安装插件时应该考虑。我们向防火墙添加的代码和功能越多,出现问题的可能性就越大。软件错误会导致崩溃,更重要的是安全妥协。在我们用各种插件填充系统之前,重要的是要权衡功能带来的价值与系统中额外代码的潜在风险。
Copfilter 现在应该安装,当它设置自身时,我们会看到一些消息滚动。当 Copfilter 完全安装时,我们应该看到以下消息:
Copfilter 0.82 installation completed successfully !
如果我们现在登录到 Web 界面,我们应该看到新的菜单选项添加到 IPCop 配置站点。我们将在接下来的几节中看一下它们。
状态
Status屏幕为我们提供了有关使用 Copfilter 安装的工具的信息(又一个简单包中强大工具的集合!)。您可以在此处启动和停止所有服务。通过单击Virus Quarantine和Spam Quarantine按钮,您可以查看扫描软件保存的项目。
monit:允许我们比 IPCop 提供的基本状态信息更详细地监视系统,管理服务是一个重要的补充(www.tildeslash.com/monit/)。
p3Scan:用于扫描恶意软件的电子邮件代理服务器(POP3)(p3scan.sourceforge.net/)。
ProxySMTP:类似于p3scan,但用于扫描 SMTP。
HAVP:用于 HTTP 代理,允许扫描网站上的恶意软件(www.server-side.de/)。
Privoxy:另一个 HTTP 代理,更专注于隐私和广告(www.privoxy.org)。
frox:透明的 FTP 代理,允许针对 FTP 协议的功能类似于HAVP和Privoxy(frox.sourceforge.net)。
Spamassassin:非常强大和可定制的反垃圾邮件软件。这是 ISP 常用的反垃圾邮件解决方案之一(spamassassin.apache.org/)。
ClamAV:用于与其他软件配合提供病毒扫描引擎的防病毒软件(www.clamav.net/)。
Renattach:识别和重命名危险的电子邮件附件,如.exe,.bat和.pif,以防止用户意外或无意中打开危险文件(freshmeat.net/projects/renattach/)。
Rules Du Jour:用于保持 SpamAssassin 规则的最新状态(www.exit0.us/index.php?pagename=RulesDuJour)。
P3PMail:类似于前面提到的 p3Scan;但是它检测电子邮件中的危险 HTML 并将其删除(www.exit0.us/index.php?pagename=RulesDuJour)。
电子邮件
我们希望为本书的目的启用所有服务,但如果我们现在尝试这样做,许多服务将失败,因为我们尚未配置我们的电子邮件设置。如果我们点击Copfilter | Email,将会出现熟悉的Email选项屏幕,我们可以相应地填写。
填写完这些内容后,我们可以开始启用和配置服务。
监控
monit在 Copfilter 中非常容易设置,并且是一个功能强大且可靠的工具。如Monitoring屏幕(点击Copfilter | Monitoring)所示,monit将不断监视运行的服务,并将在 60 秒内重新启动任何失败的服务。手动停止服务将导致该服务的监视被关闭。要为所有服务重新打开监视,需要重新启动monit本身。
我们可以在此配置窗口中打开monit。我们现在应该打开它,以便它可以监视其他服务,因此在下拉框中选择On,然后单击Save按钮。
POP3 过滤
POP3 是常用的邮件协议,用于接收邮件。如果我们有用户从 ISP 的邮件服务器下载电子邮件,那么我们可以配置此屏幕以通过 POP3 过滤任何传入的邮件,并根据我们的需求进行调整。
在隔离电子邮件或附件时,我们应该小心,因为这很快就会开始占用硬盘空间。如果我们为使用 IPCop 盒子而配置了低规格的机器,那么我们可能会在硬盘空间上遇到问题。如果这开始引起问题,只需备份 IPCop 配置并重新安装到更大的硬盘上。
按照上一图所示的方式配置此屏幕,然后点击“保存设置(并重新启动服务)”按钮。这将启用 POP3 扫描。通知将发送到我们在之前的电子邮件屏幕中配置的电子邮件地址。
SMTP 过滤
乍一看,这个页面与 POP3 页面相同,但具有 SMTP 倾向(在这里我们应该配置相同)。然而,当我们向下滚动时,我们会看到:
这为我们提供了一些额外的选项,主要与我们网络上的电子邮件服务器有关。我们之前讨论过使用 DMZ 和 IPCop 使用橙色网络作为 DMZ。如果我们的电子邮件服务器在 DMZ 中,我们可以将端口 25(或特定 IP 上的端口 25)配置为转发到我们的电子邮件服务器。由于这是 SMTP 过滤部分而不是端口转发部分,因此在电子邮件接近我们的服务器之前,我们也可以过滤所有电子邮件。这使我们能够保护我们 DMZ 中的机器免受攻击,并随后保护我们的用户,因为带有恶意软件的电子邮件永远不会触及他们的收件箱!
所示的配置选项是相当合理的水平,除非我们需要白名单或具体的隔离要求。
HTTP 过滤(和 FTP)
Copfilter 的最消耗资源的功能之一是 HTTP 过滤,主要是因为 HTTP 流量涉及大文件和相当详细的扫描,而且 HTTP 是大多数网络上使用的最流行的协议之一。
将 HTTP 代理配置为透明通常是一个好主意,因为这不需要重新配置客户机器。正如在此屏幕上所指出的,如果防火墙变得非常忙碌,这可能会对通过防火墙的应用程序产生不利影响。在繁忙的网络上使用 HTTP 过滤可能不是一个好主意,除非 IPCop 机器非常强大。如果在使用互联网时遇到缓慢的情况,请将 HTTP 过滤禁用为初始故障排除步骤之一。
FTP 过滤器设置非常简单,只需要从关闭切换到打开。它的工作方式与透明 HTTP 过滤器大致相同。FTP 过滤器使用较少,因为它比 HTTP 协议不太流行,现在有许多其他比 FTP 更受欢迎的文件传输方法。
反垃圾邮件
除了与恶意软件作斗争,我们还在每天邮箱中不断地与垃圾邮件的泛滥作斗争。幸运的是,Copfilter 对垃圾邮件的选项相对简单。
一旦启用,我们可以配置将电子邮件视为垃圾邮件的分数。每条消息都会被检查是否具有各种类似垃圾邮件的特征;它具有的特征越多,得分就越高。如果我们将此阈值设置得太高,那么我们将允许一些垃圾邮件通过,如果设置得太低,我们增加了误报的机会。默认设置效果非常好,应该使用,除非有大量垃圾邮件通过。我们还可以在此页面上配置贝叶斯过滤。但是这可能会消耗大量资源,不建议在提供许多其他功能的盒子上使用。打开德国规则将阻止德语垃圾邮件通过过滤器;这是因为最近发送的垃圾邮件大量使用德语。启用Razor, DCC, DNSBL选项将基于已知垃圾邮件站点的数据库进行阻止,这些数据库可能相当大,并且如配置屏幕上所述,它们可能会降低性能。
反病毒
ClamAV 在 Linux 系统上非常常用作病毒扫描器。然而,它涵盖了各种操作系统的病毒,显然其最大的签名数据库与 Windows 平台相关。因此,它非常适合保护网络上的 Windows 客户端免受病毒攻击。ClamAV 被用作 Copfilter 中其他工具的扫描引擎,因此当我们使用它时,其他服务已经在使用它了。
我们可能希望调整自动更新的应用时间,以及在安装后不久执行 ClamAV 的手动更新。我们还可以从这个菜单中向renattach配置文件添加其他文件扩展名,比如 WMF。这些文件将被重命名,以便不会因为双击而自动执行。
注意
WMF 和媒体文件漏洞
最近,微软 Windows 出现了一个非常严重且备受关注的漏洞,如果用户查看 WMF 格式的图像,就可以利用这个漏洞。这突显了一个经常被忽视的事实,不仅可执行文件可以包含可执行代码。
测试和日志
Copfilter 插件有自己的日志区域,遗憾的是选择不像其他插件那样在日志菜单中添加选项。在这个区域,我们可以查看和下载各种格式的日志;然而,它们太多了,不值得在这篇文章中进行覆盖。日志相对容易阅读和理解,而前面提到的项目网站上的文档将提供更多关于这些日志的信息。
这里还有三个重要的功能是测试按钮。
- 发送测试病毒邮件: 这个按钮发送一封带有 EICAR 测试病毒的邮件。
注意
EICAR
EICAR 是一个测试病毒定义,所有防病毒软件都能识别。它被用作校准工具,以确保我们的防病毒解决方案在不必通过网络发送病毒的情况下工作。
www.eicar.org/anti_virus_test_file.htm
-
发送测试垃圾邮件: 发送一封应该被垃圾邮件过滤器拦截的邮件。
-
发送测试邮件+危险附件: 通过电子邮件发送一个危险的附件,以测试 renattach 的功能。
在信任设置保护我们网络资源之前,运行每个测试以及可能进行一些手动运行以通过过滤器发送测试非常重要。
运行中!
如果我们现在看一下状态屏幕,我们应该看到所有的服务都已经启动,并且正在被监控和控制。
总结
我们已经看到 IPCop 不仅仅是一个简单的 NAT 防火墙。它可以处理多个网络区域,并独立对待每个区域。我们可以真正控制这些网络段如何相互通信。防火墙不仅仅可以进行过滤,它还可以控制、监控并报告网络的状态,为我们提供一个网络功能的全面视图,而 IPCop 可以满足这些要求。
我们还将 IPCop 视为类似于许多供应商昂贵商业产品的网络设备。在这方面,IPCop 可以处理高级防火墙和一些应用层或第七层过滤。我们之前讨论过这一点以及 IPCop 的第七层不足之处。现在我们看到了如何解决这个问题以及其他问题,以创建一个真正有用和强大的边界设备。
我们看了一下 IPCop 可用的各种附加组件,并对一些常用的和有用的选项进行了比较详细的了解。我们已经看到使用 IPCop 等开源软件的一些直接好处,比如它的简单可扩展性或“可黑客化”。我们介绍了一些使用 SquidGuard 的高级代理选项及其在 IPCop 上的使用。我们还看了 Copfilter——IPCop 最受欢迎的附加组件之一,它可以过滤许多常见的恶意软件和其他不良流量的协议。然而,我们只是浅尝辄止 IPCop 的附加组件,因为还有更多的附件组件。从在 IPCop 上安装 Nmap 到 SETI 客户端,应有尽有!值得探索可用的选项,因为这里介绍的只是常见应用的概述。
第十章:测试、审计和加固 IPCop
在本章中,我们将研究对安全和补丁管理的一些常见态度,并讨论在 IPCop 的背景下我们可能如何处理这些主题。我们还将讨论一些常见的安全风险,一些常见的安全和审计工具和测试,并找出下一步该去哪里。
安全和补丁管理
安全,非常宽泛地说,是保持我们的系统处于一种状态的过程,要么被认为是不可行的入侵,要么是对保持这些系统运行所带来的漏洞和风险的理解、管理,并且进行补偿或接受。与常识相反(对于一些人来说,也与直觉相反),没有绝对安全的系统。
在安全社区中有一个广为人知的格言,“安全是一种旅程,而不是目的地。”
世界上最好的安全顾问、程序员或 IT 专业人员只能够根据他们所使用的硬件和软件的能力来保护计算机系统。即使是一个完美设置、按教科书部署的安全软件包也存在风险,因为应用组件、操作系统组件或硬件可能出现故障,从而危及系统的安全。软件故障可能导致各种问题,它可能允许入侵者获取信息,导致系统功能异常,甚至控制系统。
一个相对无害的故障,仅仅提供给攻击者信息,可能会为他或她提供进一步研究计算机系统上运行的软件的其他漏洞所需的信息,导致进一步的妥协,可能导致控制系统。
此外,无论任何供应商、专业人士或开发者告诉你什么,都没有解决方案,无论是闪亮的新软件、闪亮的新硬件、陈旧的安全专家,还是聪明的配置更改,都能解决你所有的安全问题。它们(可以)都有所贡献,但没有什么是万能药*。
我们所能做的就是牢记这些原则,分层设置我们的环境,尽可能不依赖任何一种安全措施,并使损害得到限制。事实上,类似 IPCop 的防火墙在较大的组织中被用来隔离不同的网络和子网,正是出于这个原因。
使我们的系统尽可能安全的过程有两个重要的组成部分,我们在这里关注。
第一个,也是最基本的,是保持我们系统上运行的软件是最新的。如果我们运行的软件过时,因此存在漏洞,那么全面的防火墙策略、优秀的权限设置和强大的密码几乎毫无意义。虽然我们使用的大多数软件包中可能存在尚未被发现的安全漏洞,但如果我们(以及软件开发者)不知道它们的存在,入侵者知道的可能性也会降低。如果开发者知道这个漏洞(更糟糕的是,如果它已经被修补),我们应该自动假设任何想要入侵我们系统的攻击者也知道它。未打补丁的系统比打了补丁的系统要难以保护得多。
第二个,更困难的步骤是系统加固的过程。这可能涉及一系列步骤,从更改文件系统权限和制定防火墙策略,到在我们的系统周围设置入侵预防系统、物理安全措施(如锁和闭路电视),甚至定期备份(能够回溯并检查我们的系统看起来是非常重要的,通常对我们认为可能受到威胁的系统进行分析至关重要)。
为什么我们应该关注
对于一些读者来说,这个话题可能显而易见,而对于其他一些人来说,他们习惯于从不同的角度思考 IT 和计算机,可能并不明显。作者的经验是,非常有能力的经理、IT 专业人员和计算机科学家经常对计算机如何被滥用、这种滥用可能造成多大的损害以及这些事情有多容易实现毫不知情。
然而,暂且不考虑这种误解,有许多善意的经理、家庭用户和 IT 专业人员确实明白计算机可以被入侵,并且意识到他们可以做更多来保护他们的系统。这产生了一个广泛流传的最大谬论之一,这种观点通常由组织中具有很大影响力的人坚定地持有。这是一个错误的观点,对于任何重视赚钱能力并使用计算机来实现这一目标的组织(现在几乎是每个人),或者任何使用个人电脑进行诸如会计、在线银行业务或在线购物等活动的家庭用户。这种错误观点是基于这样的前提:计算机的唯一威胁是特定攻击者根据其身份选择公司,而作为家庭用户、小型企业或无聊的制造公司,一个人是免疫的。
当然,病毒、蠕虫、广告软件和间谍软件——安全和 IT 专业人员正在处理的四个最常见问题——与公司被针对无关,一些最大的(也是最昂贵的)事件处理结果导致形象丧失或法律责任,这是入侵者利用公司系统作为突破口进入其他系统的结果。这些问题对于家庭用户来说可能是毁灭性的,他们的信用卡被盗刷,遭受身份盗用,或者因为有人滥用他们的在线拍卖账户而承担法律责任。
在网络上对灾难恢复的许多论文进行快速调查,一遍又一遍地出现了不同版本的相同统计数据——X%的公司经历 Y 天的停机时间后永远无法恢复 [灾难]。X 和 Y 在不同的论文中有所不同,但 X 总是一个两位数,Y 总是一个个位数。这一点就足以让你保护系统免受可能抹去你的数据并破坏你的业务能力的入侵者的影响——无论业务是指经营一家实际公司还是简单地能够报税。
所有这些都假设我们没有监管要求——探讨诸如 ISO 17799 之类的标准远远超出了我们的范围,许多法规和标准(包括 ISO 17799)包括有关业务连续性和灾难恢复规划的规定。
你有这本书并且正在阅读本章节的这一部分,可能意味着这段文字是在说已经被说服的人,但至少——希望你如果遇到还没有被说服的人,你可能会有一些有用的观点!
设备及其对我们管理 IPCop 的影响
现在我们已经简要探讨了安全性和灾难恢复的概念,我们可以继续讨论这实际上如何影响我们对 IPCop 的持续管理和保护。进入 IT 中另一个常见的失败,防火墙(以及打印机、交换机和路由器等网络设备)是一些最不受关注的设备。大多数中小型企业根本不对这些设备进行任何例行管理,经常留下可能暴露在互联网上的交换机和路由器,其软件版本可能存在入侵者可以利用的漏洞!诸如简单网络管理协议(SNMP)之类的服务,通常默认使用公共/私有社区字符串(类似于密码),经常允许入侵者悄无声息地完全控制设备(有时比通过设备的网络配置界面更有力)。
另一个常见的先入之见是,因为设备不是个人电脑,没有屏幕、键盘或鼠标,所以它不是计算机,也不需要更新。互联网的广泛用户群以及设计为路由器、防火墙等设备的产品数量并没有帮助改变这种忽视。
设备,一个不是计算机的计算机,对此有很大影响。设备广泛来说,是设计为在没有正常软件中心服务器所需的管理和更新的情况下运行的计算机。不幸的是,许多这些设备都基于类似于非设备设备的软件,尽管设备通常比设置为执行相同工作的等效服务器更加严格地锁定和保护,但它们并不免于类似的安全问题。
我们的 IPCop 系统设计为类似于一个设备。它完全由一个团队(IPCop 团队)设计和更新,它运行在个人电脑上,并且基于一个定制的正常操作系统,以提供非常特定的功能(并且几乎不暴露操作系统的运行情况)-因此在某种程度上我们需要将其视为一个设备。我们应该(与任何设备一样)通过固件更新我们的系统,并且如果我们希望它保持运行(并且可支持),我们仍然需要避免过多地研究防火墙的运作方式,但是了解其内部运作和工作原理对我们保护 IPCop 非常有益。
基本防火墙加固
首先,我们需要考虑 IPCop 在外部世界中的表现。任何黑客、渗透测试人员、IT 专业人员或分析师在评估特定设备构成的威胁时,无论他们打算修复它还是通过它进行入侵,第一步都是对该设备进行概要分析,以了解以下一些信息:
-
设备是什么
-
它运行的操作系统是什么
-
它可能运行在什么样的硬件上
-
服务器运行的服务,因此可以推断出...
-
服务器运行的软件(服务)以及基本操作系统之外的内容
-
以上任何内容(特别是服务)是否存在不安全的情况
作为合法的审计员、经理和 IPCop 系统的维护者,我们大部分信息都可以从记忆中获取,也可以从我们的文档或者登录到主机本身获取。对于攻击者来说,这些信息非常有价值,但情况并非如此,因此我们需要了解入侵者如何收集这些信息,以防止其这样做。
检查我们的防火墙对客户端的暴露
在评估我们的 IPCop 盒子在外部的样子时,最基本的工具是端口扫描器。正如我们在本书的前面所了解的,服务器可以打开任意数量的端口,以允许用户连接到其运行的服务。我们还应该知道,IPCop 可能默认情况下至少打开一个端口供内部客户端使用——端口 445,这是 HTTPS 通过 Web 界面进行配置的端口。端口扫描器非常简单地尝试连接到许多不同的端口,并查看它从哪些端口收到回复,将这些定义为打开的(即在另一端有活动)。
对于基础设施如防火墙进行端口扫描是进行安全审计或定期检查的重要练习,原因有几个。其中最显著的是我们可能并不总是知道我们的服务器在运行什么。我们可以通过在 shell 中使用netstat命令或通过 Web 界面查看我们的防火墙认为自己打开了哪些端口的列表。然而,如果我们之所以扫描我们的服务器是因为我们相信恶意入侵者可能已经在我们的防火墙上安装了软件进行不正当目的,那么这种软件有一个打开的端口(例如,允许入侵者重新连接并通过后门获得访问权限)可能会被netstat命令和操作系统的某些部分隐藏起来。
在这种情况下独立扫描系统是检测此类活动的少数方法之一,因此如果你对安全性很重视,定期进行这种扫描是一个好习惯;你永远不能太谨慎。
注意
通过互联网进行端口扫描
许多互联网服务提供商对通过其网络进行端口扫描有相当严格的政策,并会将任何此类活动视为非法,即使对自己的服务器进行端口扫描并不违法(而许多人认为对非自己的系统进行端口扫描是法律上的灰色地带,尽管越来越多地被视为犯罪活动)。更为合理的 ISP 将区分对自己系统进行端口扫描(显然是有同意的)和对他人进行端口扫描。然而,有些则更加武断(有些人会使用不自由这个词!)。
对于在 ISP 网络中传输此类活动进行密集扫描是非常耗费资源的,而且 ISP 很少会对不是发送到他们服务器(或者一般高价值系统)的流量进行扫描,因为这需要很大的开支。然而,在你考虑这样做并把自己置于不便或责任的风险之前,最好先检查你的 ISP 的条款和可接受使用政策!这些几乎总是可以在 ISP 的网站上找到,或者可以向 ISP 要求提供。
例如,BT(英国电信)宽带服务的 AUP(可在www.abuse-guidance.com/上找到)中对端口扫描的规定如下:
“你不得运行”端口*扫描“软件,访问远程机器或网络,除非得到这些远程机器或网络的管理员或所有者的明确事先许可。这包括使用能够扫描其他互联网用户端口的应用程序。[...]”
“如果你打算运行端口扫描应用程序,你必须向 BT 提供从扫描目标获得的书面同意的副本,授权该活动。这必须在运行应用程序之前提供给 BT。”
这与大多数 ISP 发布的 AUP 类型相似,尽管有点官僚主义。
使用扫描器 Nmap 进行的示例扫描可能看起来像这样:
james@horus: ~ $ sudo nmap 10.10.2.32 -T Insane -O
Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2006-05-02 21:36 BST
Interesting ports on 10.10.2.32:
(The 1662 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
22/tcp open ssh
MAC Address: 00:30:AB:19:23:A9 (Delta Networks)
Device type: general purpose
Running: Linux 2.4.X|2.5.X|2.6.X
OS details: Linux 2.4.18 - 2.6.7
Uptime 0.034 days (since Tue May 2 20:47:15 2006)
Nmap finished: 1 IP address (1 host up) scanned in 8.364 seconds
从这次扫描中可以看到,Nmap 版本 3.81 默认扫描的 1663 个端口中有一个是开放的—端口 22,也就是 SSH 运行的端口。由于这是一个没有防火墙的 Linux 主机,Nmap 还可以检测系统的正常运行时间(使用 TCP 时间戳,RFC1323,www.faqs.org/rfcs/rfc1323.html)。我们还可以猜测机器上次重启的时间,并且基于机器对 Nmap 在扫描过程中发送的各种非标准数据包的响应方式的特点,Nmap 可以对主机进行操作系统指纹识别(通过使用-O标志请求),准确度相当高。
Nmap 是一个非常强大的工具,也是全球最常用的 IT 安全工具之一。(新编写的)手册页(man Nmap,或者从网站上—www.insecure.org/nmap/man/)不仅非常详细地介绍了工具的使用方法,还介绍了工具的工作原理和原因。
您可能想尝试其他扫描器,特别是在 Windows 平台上(Nmap 在该平台上安装有些麻烦,并且经常被服务包和补丁阻止工作),包括 Superscan(www.foundstone.com/index.htm?subnav=resources/navigation.htm&subcontent=/resources/proddesc/superscan.htm)。
从内部网络查看 IPCop 防火墙的默认配置(即如果您从绿色区域对服务器进行端口扫描,或者如果员工、孩子或客户连接到公司网络进行了防火墙扫描),我们只会看到端口 445 是开放的。
许多端口扫描器(包括 Nmap)并不会扫描服务器上可能连接的每个端口,正如我们从前面的扫描中所看到的—Nmap 默认扫描 1663 个常用端口。这样做有两个原因:首先,我们发送(和接收)的数据越少,扫描速度越快;其次,我们发送和接收的数据越多,扫描就越容易引起怀疑(或者引起网络问题)—希望对于 Nmap 这样的合法用户来说不是一个问题!
由于通常只扫描众所周知的端口,因此,我们已经实施了一个实际的加固措施的实例—从 443 端口更改为 445 端口(这不是一个常见的服务端口)。这可能是“通过混淆来增加安全性”,但这*并不是坏事—除了使对该端口进行的任何连接更加明显(它们必须来自有意的连接尝试,而不是意外浏览或自动蠕虫通过 HTTPS 影响 HTTP 服务器),它确实会减少(微妙的)入侵者网络侦察的有效性。
端口扫描使我们能够从内部网络确定防火墙上运行的服务。
那么在外部呢?嗯,端口扫描在这里同样有价值(甚至更有价值)。
外部端口扫描允许我们测试互联网在我们的防火墙外部接口上看到的开放端口是否与我们在防火墙外打开的任何端口转发或漏洞对应。出于与内部主机端口扫描相同的原因,这是积极的安全策略的重要部分。
尽管我们可以通过 IPCop GUI 检查我们允许进入网络的端口,但端口扫描是另一种验证我们的端口转发是否转发到适当位置的方法。我们已经转发到网络内部主机的端口,如果在端口扫描中没有显示(被过滤),也可以通过这种方式进行识别;尽管我们可以在 Web 界面中查看哪些端口被转发,但我们无法验证这些端口被转发到任何地方。在一个大型环境中,我们可能不知道所有转发的端口,这可能是识别防火墙中不需要的漏洞(我们可以删除)的一种方式。
一些网站,如 Sygate 的(scan.sygatetech.com/),将自动(免费)为您的主机进行端口扫描,并通过 Web 向您呈现结果。如果您的 ISP 有限制或者您没有另一台直接连接到互联网的计算机进行扫描,这将非常有用!
我们的防火墙上正在运行什么?
除了审计我们的防火墙以查看它正在监听哪些端口之外,我们还可以定期审计它,以确定防火墙上正在运行哪些进程。有几个软件包可以帮助我们完成这项工作。
在最简单的情况下,像ps命令这样的 binutils,可以列出系统上运行的进程,可以用来确定我们的系统在做什么。top命令可以实时显示进程,并可用于监视系统上的进程(例如监视不可预测的进程并找出导致性能不佳的原因)。
然而,ps命令并不适合这些情况。主要原因是:入侵者很容易用不显示恶意进程的版本替换ps命令(执行此类任务的一组工具通常被称为rootkit)。另一个原因是,比较ps输出相当耗时,并且需要对系统上的进程有相对详细的了解(即使ps输出没有直接被修改,许多恶意进程也可能伪装成合法进程)。
幸运的是,我们还有许多其他应用程序可以用来预防和检测系统被篡改的情况。其中第一个,也是在 Unix 和 Linux 系统上使用的较旧的工具之一,叫做 tripwire (sourceforge.net/projects/tripwire)。Tripwire 是一个主机入侵检测系统(HIDS),它将监视系统上的特定文件(如系统二进制文件如ps和配置文件)。Tripwire 不是实时监控,而是在事后寻求检测这些更改。Tripwire 可以为我们提供这些事件的警报,用于安全目的和其他目的(如变更管理或仅仅是正常的 IT 流程的一部分)。
Tripwire 是一个开源工具,可以作为 IPCop 的附加组件使用。
对于这些情况的另一个有用工具是 chkrootkit (www.chkrootkit.org/)。与 tripwire 一样,chkrootkit 检查系统上的文件,但 chkrootkit 是一个在用户请求时启动的脚本,专门用于扫描被识别为恶意的文件。尽管定期运行以进行验证进程很有用,但预防胜于治疗的古老格言仍然成立,负面扫描并不意味着系统是干净的。由于 chkrootkit 是一个脚本,您可以使用wget命令下载脚本,或者使用scp (www-hep2.fzu.cz/computing/adm/scp.html)将其上传到服务器,并在服务器上直接运行新下载的副本。
注意
SCP
SCP,或安全复制,是包含在 IPCop 中的 SSH 服务器/客户端的功能的子集。在 Unix/Linux 命令提示符下使用scp命令,或在 Windows 上使用诸如 WinSCP(winscp.sourceforge.net)之类的工具,您可以访问 IPCop 系统上的文件系统并远程操作文件系统。尽管非常有用,但scp很容易被用于不良目的,因此应谨慎保护和保护 shell 访问。
高级加固
到目前为止,我们已经意识到可以对 IPCop 的操作和设置进行两个重大改变,以使其更加安全。首先,审计开放端口,使我们能够减少防火墙和系统对互联网的暴露。其次,利用某种形式的入侵检测或事后扫描系统,如 tripwire 和 chkrootkit,使我们更有可能检测到任何突破我们防御的人。
然而,加固我们的主机远不止是安装服务或运行一些端口扫描软件这么简单。保持加固系统涉及删除我们不需要的任何功能,以及对系统安全进行深思熟虑的更改。在这方面,IPCop 已经得到了相当大的加固,使其比任何主要发行版的默认 Linux 安装都更加安全。为了使 IPCop 更加安全,已经采取了一些步骤,包括以下内容。
堆栈破坏保护程序(Propolice)
堆栈破坏保护程序(SSP)(www.research.ibm.com/trl/projects/security/ssp/)是用于创建 IPCop 和许多其他开源应用程序中的二进制可执行文件的 GCC 编译器的补丁集,由 IBM 的 Hiroaki Etoh 开发。SSP 有助于保护计算机软件中操纵堆栈的漏洞,堆栈是添加和删除数据的区域,如缓冲区溢出攻击。
在缓冲区溢出攻击中,攻击者可能利用软件中的漏洞将数据写入与分配给该数据的内存区域相邻的内存区域(如堆或堆栈)。当存在这种情况时,可能编写恶意应用程序以允许攻击者在系统上运行自己的(恶意)代码,从而一般会破坏安全性。
SSP 通过验证堆栈是否被篡改来保护堆栈免受攻击,并导致发生这种情况的任何应用程序出现分段错误并退出。因此,在 IPCop 上编译了这一功能的所有软件都受到一定程度的保护,以防止常用于利用系统的某些攻击类型。
服务加固
IPCop 默认删除了不必要的服务-许多操作系统,包括广泛部署的 Linux 版本和旧版本的 Windows 操作系统,运行了许多不必要的服务,这些服务对正常运行是不必要的。这些常见的例子包括 Windows 上的 IIS 服务器和 Linux 上的 Apache 服务器等 Web 服务器,以及在大多数部署中不使用的进程,如 finger、nfs、portmap、telnet 等。
由于每个这些进程都存在利用缓冲区溢出等漏洞来入侵系统的风险,因此消除的每个服务都关闭了潜在入侵的另一扇门。入侵可能是从 2001 年利用 IIS Web 服务器中的缓冲区溢出的 Code Red 蠕虫,到 2002 年利用 OpenSSL 握手过程中的缓冲区溢出来威胁 Apache Web 服务器的 Slapper 蠕虫,一直到恶意入侵者进行更精确的攻击。
如果我们不需要包括 SSH 或 Squid 在内的 IPCop 提供的服务,或者通过附加组件安装的服务,最好的做法是不启用它们,并最好将它们从系统中完全删除。虽然像 SSH 和 Apache 这样的服务通常暴露在互联网上,比起像 Squid 这样不常暴露的服务,风险要小一些,但任何不需要的服务都应该被移除。
日志文件和监控使用
作为良好安全管理的一部分,保留注意行为和信息系统使用趋势的能力非常重要,这使我们能够主动注意到变化。代理服务器使用、内存使用或 CPU 负载的变化可能表明一些无害的事情,比如用户活动增加或需要升级硬件、硬件故障,甚至是恶意活动。
通过图表建立基线
因此,建立服务器行为的基线是非常重要的,以便能够识别特定行为何时变得不寻常。IPCop 通过提供图形工具来监视(和绘制)代理连接和 CPU 使用率等统计数据,极大地帮助了我们。定期审查这些数据并解释任何主要的突变或行为变化对于您的主机的安全非常重要。
作者已经意识到了几种情况,其中系统已被入侵并用于恶意目的,并且在系统上游路由器的流量监控表明流量增加。随后的调查随后揭示了恶意活动,并导致服务器被关闭和清理。
日志文件
日志文件是安全管理的另一个重要部分,也是恶意活动的常见指示。管理员需要阅读他们的日志文件,并建立服务器产生事件的基线。例如 Apache web 服务器日志和/var/log/auth.log文件存储了认证事件,这些日志非常重要,通常提供有关尝试入侵系统、猜测密码或收集系统信息的宝贵信息。这可能包括尝试通过 SSH 服务器或 IPCop 管理界面等 HTTP 服务器使用暴力破解来发现用户名和密码。
注意
审计 SSH 日志事件
由于恶意蠕虫在线,对默认端口 22 的 SSH 服务器进行粗暴的暴力破解尝试是在线生活中非常常见的一部分。几乎任何连接到互联网的 SSH 服务器都很可能生成大量的日志事件,例如尝试使用 root 和 admin 等常见系统帐户登录失败。这些是相对正常的,并且有力地证明了将 SSH 移动到替代端口(IPCop 默认情况下)以区分这样的尝试和真正的入侵尝试是有道理的。
/var/log/auth.log中由 SSH 服务器上的暴力破解尝试引起的日志示例可能如下所示:
Apr 30 09:34:48 firewall sshd[28936]: Illegal user library from 217.160.209.42
Apr 30 09:34:48 firewall sshd[28938]: Illegal user test from 217.160.209.42
Apr 30 09:34:50 firewall sshd[28944]: Illegal user admin from 217.160.209.42
Apr 30 09:34:50 firewall sshd[28946]: Illegal user guest from 217.160.209.42
Apr 30 09:34:50 firewall sshd[28948]: Illegal user master from 217.160.209.42
Apr 30 09:34:53 firewall sshd[28960]: Illegal user admin from 217.160.209.42
Apr 30 09:34:53 firewall sshd[28962]: Illegal user admin from 217.160.209.42
Apr 30 09:34:53 firewall sshd[28964]: Illegal user admin from 217.160.209.42
Apr 30 09:34:54 firewall sshd[28966]: Illegal user admin from 217.160.209.42
Apr 30 09:34:55 firewall sshd[28972]: Illegal user test from 217.160.209.42
Apr 30 09:34:55 firewall sshd[28974]: Illegal user test from 217.160.209.42
Apr 30 09:34:56 firewall sshd[28976]: Illegal user webmaster from 217.160.209.42
Apr 30 09:34:56 firewall sshd[28978]: Illegal user username from 217.160.209.42
Apr 30 09:34:56 firewall sshd[28980]: Illegal user user from 217.160.209.42
Apr 30 09:34:57 firewall sshd[28984]: Illegal user admin from 217.160.209.42
Apr 30 09:34:58 firewall sshd[28986]: Illegal user test from 217.160.209.42
Apr 30 09:34:59 firewall sshd[28994]: Illegal user danny from 217.160.209.42
Apr 30 09:35:00 firewall sshd[28996]: Illegal user alex from 217.160.209.42
Apr 30 09:35:00 firewall sshd[28998]: Illegal user brett from 217.160.209.42
Apr 30 09:35:00 firewall sshd[29000]: Illegal user mike from 217.160.209.42
日志文件通常相对容易理解,而在这不成立的情况下,相关软件的文档(如 OpenVPN (www.openvpn.net)、OpenSSH (www.openssh.com)和 Apache web 服务器 (www.apache.org))通常非常好。
使用和拒绝服务
并非所有安全风险都源自软件和凭据的妥协。许多安全风险通常被称为拒绝服务或DoS攻击,影响计算机系统提供的服务质量,可能与系统妥协一样具有破坏性。如果您的防火墙关闭,无法向客户发送电子邮件确认业务交易,那么收入损失可能会大于如果您的防火墙被入侵者知晓交易的情况。
确保我们系统的安全性的一个极其重要的方面是确保它们运行的硬件是足够的,因此性能监控,如第五章中提到的,应该定期进行,并且应该对异常活动,如高网络或 CPU 使用率,进行核算。这样的管理是确保我们的防火墙不仅对简单攻击进行了保护,而且还能够抵御 DoS 攻击和使用量激增的重要部分。
如果一个性能计数器(或多个)出现异常高或最近急剧上升,我们可以做一些事情来排除问题。可能是,特别是如果我们的硬件规格较低(Pentium II 或更低)而我们的网络相对较快(五 Mbit 或更快),那么机器可能只是负载过重—使用 IDS(Snort)或代理服务器(Squid)将增加处理器的负载和内存使用。
CPU 和内存使用情况
如果 CPU 使用率很高,我们可以首先查看哪个应用程序正在使用 CPU!虽然通过 Web GUI 没有太多有用的诊断信息,但幸运的是我们可以使用top实用程序来查看系统上正在运行的进程,以及它们正在使用的内存和 CPU 时间的百分比等统计信息。
虽然看起来可能有点吓人,但top命令的输出相当合乎逻辑,并且在您查看时会动态更新。上面的top输出来自一个干净的 IPCop 1.4.10 系统(没有配置代理服务器或 IDS),大多数列出的进程都是不言自明的。
以字母k开头的进程都是(在本例中)内核进程。sshd,毫不奇怪,是 SSH 服务器进程(d代表守护进程,在 Unix 和 Linux 术语中基本上意味着服务器进程)。httpd是提供基于 HTTP 的 GUI 的进程;dnsmasq既是 DNS 又是 DHCP 服务器。syslogd保留系统日志,mingetty和bash都是处理和提供基于文本的控制台的进程。
在这种情况下,CPU 使用率非常低—99.6%空闲,**0.4%**的实际使用率仅归功于top!因此,我们可以得出结论,这个系统没有性能相关的问题(或者它们是如此普遍,以至于top本身受到影响并提供虚假输出—这几乎是不可能的,除非系统已被入侵,top本身被攻击者替换)。
在下面的例子中,我们可以看到 CPU 使用率为29.7%—有第二个 root 登录(通过 SSH 登录的每个用户将会出现一个新的bash和sshd进程),负责运行grep命令(在文件或大量文件中查找特定的文本),这个命令使用了大量的 CPU 时间(可能也使用了大量的磁盘时间)。这是本例中的第二次登录,运行的grep命令(它将消耗 CPU 时间并使用磁盘,但不应该破坏任何东西)是从文件系统的根目录运行的(在命令行中cd/)。
了解系统上正在运行的进程是一个好主意。虽然许多入侵行为将涉及替换二进制文件,比如运行ps和top的文件,但通常情况下,即使入侵者没有对系统进行 root(管理员)访问,也会有通过ps或top可见的正在运行的进程。不可见的进程,或者像ps和top这样的二进制文件的修改版本,可能会被 chkrootkit 等应用程序检测到。
如果您的 Squid 代理、HTTP 服务器或其他进程大量使用 CPU 或内存,您可能会遇到需要关注的问题(或者可能是攻击者)。我们还可以使用ps命令列出系统上运行的进程,尽管 IPCop 中包含的ps命令是 busybox 工具包的一部分,比大多数 Linux 系统中包含的真正(binutils 版本)ps命令功能更弱。
已登录用户
我们可以使用w命令查看通过 SSH 登录的用户,如下图所示:
正如我们所看到的,有三个root用户登录的实例:第一个在tty1上,登录到 IPCop 主机本身的物理终端上,而pts/0和pts/1终端都是虚拟终端,通过 SSH 访问。WHAT列显示用户当前交互运行的进程——在第二个会话中,是w(w 将在枚举系统上运行的进程时检测到自身在运行),而其他两个会话都在bash,这是命令行本身的名称(即另外两个用户要么处于空闲状态,要么在命令行上输入而没有特定的应用程序在前台)。
Linux 系统管理的掌握是复杂的,但 IPCop 配备了一些简单的工具,如top, ps, w, netstat和route,它们可以分别显示实时和快照的进程信息、已登录用户、网络连接和路由表。对这些工具的了解以及对网络和 Linux 操作系统架构的基本理解将在诊断问题、分析入侵和解决性能问题方面帮助我们很多。
其他安全分析工具
除了我们提到的工具之外,还有许多其他工具可以帮助我们分析防火墙的状态并寻找安全漏洞。许多较小的实用程序,如 Nmap,具有非常具体的目的,而一些工具的范围更广。作为一个安全扫描程序,Nessus 由于其使用范围而值得特别关注。Nessus 汇总了许多不同的安全漏洞,并有能力在一个主机或整个网络上寻找这些漏洞。
Nessus 报告的一些漏洞可能是误报,而在这些情况下,Nessus 可能不确定是否存在特定的不安全配置。或者,误报可能是一个应该被禁用的已启用功能,但实际上正在使用。无论哪种情况,Nessus 虽然有用,但是需要谨慎使用,特别是在像 IPCop 这样的系统上,它被精心设计成不以相当正常的方式进行维护。
然而,在您的 IPCop 系统以及其他系统(如服务器、工作站、打印机、交换机和无线接入点)上,Nessus 能够发现各种各样的安全漏洞和常见的配置错误。在www.nessus.org/了解更多关于 Nessus 的信息。
下一步去哪里?
你可能觉得自己生活在一个真空中,无法获得有关安全等问题的帮助,也没有足够的信息来进一步了解这些话题。幸运的是,情况并非如此,在线资源中有大量关于安全话题的信息。这里已经提到了一些很好的例子。
Full-Disclosure
如果有一个在线安全社区的中心,你可以很有说服力地认为它是 Full-Disclosure。
作为对其他经过审查的邮件列表的回应,这些列表中的信息并不是自由可得的,审查是在线安全讨论的例行部分,Full-Disclosure 的概念提倡信息的完全可得性,正如列表的名称所暗示的那样,邮件列表提倡这些理念。
因此,根据这些原则,该列表完全没有经过审查(除了极少数高度反社会行为,如垃圾邮件或重复且令人不快的冒犯行为),并且促进了有关安全的所有信息的全面可用性。Full-Disclosure 是一个繁忙的列表,由来自安全社区各个领域的人员组成。有关 Full-Disclosure 宪章的更多信息,请访问lists.grok.org.uk/full-disclosure-charter.html。
维基百科
尽管维基百科通常不被视为安全专用信息来源,但许多有关技术主题如 TCP/IP、防火墙和计算机安全的文章都非常好,而计算机安全文章是一个很好的起点,因为它链接到了维基百科文章和非常全面的第三方资源(参见en.wikipedia.org/wiki/Computer_security)。
SecurityFocus
尽管不是供应商中立(SecurityFocus 归杀毒软件供应商赛门铁克所有),SecurityFocus 是一个很好的门户网站,有许多由知识渊博的贡献者撰写的好文章。SecurityFocus 也是许多好的邮件列表的主页,包括著名的 Bugtraq(请参见www.securityfocus.com)。
文学
有许多关于安全的好书,涵盖了广泛的主题。其中一些非常广泛,很快就会过时,而一些则涵盖了极为详细的主题。关于不同主题的(相对)备受推崇的书籍的随机选择如下:
Counter Hack Reloaded: A Step-by-Step Guide to Computer Attacks and Effective Defenses, ISBN 0-13-148104-5
这本由 Ed Skoudis 和 Tom Liston 撰写的备受赞誉的书籍代表了对计算机安全的相当全面的概述,从网络开始,涵盖了 Unix 和 Windows 环境中的操作系统安全,网络侦察,软件缺陷以及各种攻击和黑客技术。这是一本很好的、严肃的、易于理解的技术性安全入门读物。
The Art of Deception: Controlling the Human Element of Security, ISBN 0-47-123712-4
这本由 Kevin Mitnick 撰写的非技术性书籍涵盖了社会工程学的主题,即通过操纵人来破坏计算机系统。这包括电话呼叫、冒充员工、假装来自公用事业公司,甚至贿赂,以获取对计算机系统的物理和逻辑访问以及有关它们的信息。
Hacking Exposed 5th Edition, ISBN 0-07-226081-5
这本第五版的相对技术性书籍代表了对多种不同技术的黑客行为的广泛观点。尽管它的封面和态度稍微有些耸人听闻,它不会在一夜之间教会你所有关于黑客或计算机安全的知识,但它确实涵盖了一些安全领域的基本主题,并且实际上演示了计算机是如何被破坏的,对于新手来说是一个不错的起点。
TCP/IP Illustrated 3 Volume Set, ISBN 0-20-177631-6
这本由 Richard W. Stevens 撰写的经典书籍经常被誉为 TCP/IP 网络的the书籍,并且是关于 TCP/IP 工作原理的极好(尽管在某些地方非常技术性)的入门读物。除了在网络章节中提到的 IBM 红皮书第七章之外,对于任何对安全感兴趣的人来说,这都是值得一读的,因为(特别是关于防火墙)了解网络工作原理对于理解网络计算机系统的安全至关重要。
Linux Server Security, Second Edition, ISBN 0-59-600670-5
这本相对技术性的书籍是关于 Linux 服务器安全的极好入门读物,从文件系统权限和数据库安全到 iptables。对于任何对运行 Linux 服务器感兴趣的人来说,这都是值得一读的。
《网络安全监控之道:超越入侵检测》,ISBN 0-32-124677-2
这本由安全公司创始人 Richard Bejtlich 撰写的相对技术性的书籍不仅涵盖了传统入侵检测的缺陷,还涵盖了对网络、安全或防火墙管理员至关重要的许多技能,比如使用tcpdump和 IDS 分析工具。
总结
最重要的技能不是掌握如何保护(或仅仅管理)任何计算机系统,而是在需要时能够尽可能短的时间内找到所需信息的能力。往往这些信息是可以在线获取的——如果你知道去哪里找——而且像这样的书籍通常会为你提供足够的知识,让你能够自行学习更复杂的主题。类似于我们之前提到的网站,比如维基百科和 SecurityFocus,以及 Full-Disclosure 和 SecurityFocus 邮件列表等邮件列表,都是很好的起点,每天都会发布广泛的用户和内容类型。
即使你不成为常规用户或发帖者,如果你对安全有丝毫认真的话,订阅 Full-Disclosure 一个月或两个月是值得的!
我们已经审查了一些常见的安全态度,审查了 IPCop 提供的一些安全措施,以及我们可以采取的一些技术和操作安全措施,并为感兴趣的读者提供了一些学习更多安全知识的起点。
计算机安全是一个令人愉快、复杂、备受关注且颇具时尚感的话题,因此作为进一步研究的来源非常具有吸引力!
第十一章:IPCop 支持
我们现在已经涵盖了 IPCop 的主题,并且意识到了它在我们的网络中的用途,以及 IPCop 是否对我们特定的网络和组织有用。IPCop 的推动力是其开源性质和背后的社区,这一点我们在本书中一直试图强调。
我们已经看到了如何使用相当简单的工具集创建非常复杂和强大的系统。我们也知道如何使用 IPCop 界面配置这些工具,以及如何管理和增强 IPCop 本身。这一切都是可能的,因为 IPCop 背后有强大的开源社区。包括所有用户和开发人员,他们不断推动 IPCop 的发展,以创建一个真正有效的 SOHO 路由器、防火墙和强大的网络设备。正如我们一直展示的那样,所涉及的工具很多,有许多开发人员和用户参与其中。将所有涉及 IPCop 的工具的开发人员结合起来,很容易就能达到数千名高技能人员,他们创造了我们使用的产品。
然而,事情并不止于此,经过所有这些工作之后,他们仍然为我们提供更多。这些编写系统、编译、测试、调试和发布它的开发人员也提供他们的时间来帮助支持使用它的用户。
支持
与大多数开源软件一样,IPCop 也有许多支持机制。其中最容易访问的是 IPCop 网站本身www.ipcop.org,其中包含文档、教程和常见问题解答。如果用户在使用其他支持机制之前先查看 IPCop 网站以获取答案,这将极大地帮助任何开源项目,避免分散其他用户或开发人员的注意力。如果我们遇到了这本书没有解决的问题,并且在我们喜欢的搜索引擎上搜索或在 IPCop 网站上搜索后仍然找不到解决方案,那么我们可以考虑其他支持机制。
用户邮件列表
有两个邮件列表需要特别注意:
-
公告: 这个邮件列表偶尔会发布与 IPCop 相关的公告,通常限于新版本的通知或重要的安全更新。它可以在
lists.sourceforge.net/mailman/listinfo/ipcop-announce找到。 -
用户: 这是一个繁忙的 IPCop 用户讨论列表,用户可以在这里相互寻求支持,通常也可以从 IPCop 开发人员那里获得支持。您应该在这里提出关于新功能的想法,帮助解决当前功能的问题,或者在您认为已经发现了 IPCop 软件中的错误时进行初步检查。该列表可以在
lists.sourceforge.net/mailman/listinfo/ipcop-users找到。
Internet Relay Chat (IRC)
IRC 是与开源软件相关的快速支持查询的最常见位置,而托管#ipcop 频道的 Freenode 网络有各种官方支持频道。你会经常发现大约 50 名用户在线——作者们经常是其中的常客。这个频道的大多数用户互相帮助,并且经常讨论产品,将其与其他产品进行比较,并经常讨论功能请求或“愿望清单”。
您可能无法在常规支持区域获得有关附加组件的支持。直接去找源头,也就是附加组件的开发人员,获取他们产品的全面支持通常更好。
回馈支持
许多人感到有必要或义务回馈他们发现有用的项目,IPCop 提供了这样的途径。
支持开源软件最明显的方式是推动软件开发。用户可以为 IPCop 开发插件,就像许多用户所做的那样,或者为 IPCop 核心编写代码,这通常受到当前开发人员的欢迎,因为它减轻了负担,并确保 IPCop 可以在所有需要关注的领域得到发展。
IPCop 有两个开发邮件列表:
-
IPCop-Devel:这是开发邮件列表,讨论应该或不应该包含在 IPCop 中的补丁,并为在 IPCop 上工作的开发人员提供帮助。可以在
lists.sourceforge.net/mailman/listinfo/ipcop-devel找到。 -
IPCop-CVS:这是一个不会聊天的 CVS 公告列表,用于通知开发人员有关 CVS 的任何更改,而无需他们登录到 CVS 系统。可以在
lists.sourceforge.net/mailman/listinfo/ipcop-cvs找到。
您不能直接向 IPCop 捐赠现金,因为这会增加处理慈善捐赠的复杂性,成为 IPCop 开发人员的职责,并需要额外的、不必要的管理。但是,您可以选择支付给开发人员,以便他们继续开发 IPCop。这是支持他们努力的最简单方式。
没有义务以任何方式支持该项目,但我们大多数人意识到,如果我们喜欢一个项目并支持它,通常可以帮助它变得更好或帮助维护它。支持的另一个例子是编写书籍和其他文档,例如本书,通过降低所需的技能门槛并确保一切得到充分解释,吸引更多用户参与项目。
编写代码通常被视为对开源软件项目做出贡献的唯一真正方式,但正如您所看到的,还有许多其他选项,所有这些选项显然都受到 IPCop 开发团队的欢迎。
总结
作为 IPCop 的用户,您可以以任何方式使用该软件,甚至可以重新分发它,甚至可以修改它,如果需要的话。该软件可以朝着另一个方向发展,就像 IPCop 自己的创建一样,它是从 Smoothwall 分叉出来的。这确保了软件的存在并且在未来几年内仍然有用,因为您可以相信会有足够的用户成为开发人员,以保持项目的持续发展。
您可以利用本书中获得的知识,创建符合您规格的网络设备,并根据需要进行修改和调整。有各种选择和选项,而且该软件受到 GPL 的保护,可以使其在遇到任何问题时得以生存。这意味着您可以对软件的选择非常有信心,因为您的网络不依赖于公司的生存,而是依赖于全球成千上万的用户和开发人员,表明他们可以并且将会共同努力,以创建真正卓越的软件。