日期:2009-03-07  浏览次数:20956 次

附录 C:网络安全的最佳方案
Steve Riley,Microsoft Communications Industry Solutions Group Consulting Practice

2000 年 8 月 7 日

这篇短文论述了网络设计和安全的最佳方案。尽管网络的设计和安全保护方法很多,但只有某些方法和步骤深受许多业内人士的喜欢。

筛选路由器 — 第一道防线
应当使用筛选路由器来保护任何面向 Internet 的防火墙。这种路由器只有两个接口:一个与 Internet 相连而另一个与外部防火墙(或必要时与负载平衡的防火墙群集)相连。所有攻击中,将近 90% 涉及到 IP 地址失窃,或改变源地址以使数据包看起来如同来自内部网络。传入数据包没有什么理由可以来自内部网络。另外,由于一个网络的安全性通常取决于所连接网络的安全性,因此最好能避免您的网络被用作假数据包的来源。筛选路由器是实现这些目的的理想方法。

应当将筛选路由器配置为“allow all except that which is specifically denied”(允许通过特别拒绝以外的所有通信)状态。这样,ACL 就执行下列操作:

定义一个进入筛选器,它拒绝任何源地址为内部网络地址的传入通信。
定义一个外出筛选器,它拒绝源地址非内部网络的传出通信。
拒绝 RFC 1918 中所确定的任何专用地址范围内源地址或目标地址的所有传入或传出通信。
允许所有其它的传入和传出通信。
这可阻止大多数攻击,因为窃取内部地址几乎是所有攻击的基本条件。将筛选路由器后面的防火墙配置为“deny all except that which is specifically allowed”(拒绝除特别允许之外的所有通信)状态。

(这部分信息的依据为 RFC 2267,“Network ingress filtering: Defeating denial of service attacks which employ IP source address spoofing”,1998 年 1 月。)

对可用性要求较高的环境,可使用两个筛选路由器,并将二者连接到一对防火墙负载平衡设备上。

防火墙 — 分层保护
典型的非军事区 (DMZ) 有两个防火墙。外部防火墙配置为只允许 Internet 和 DMZ 之间连接所需的通信。内部防火墙的配置要能够保护内部网络不受 DMZ 的影响 — DMZ 是非信任网络,因此有必要对内部网络实施保护。

什么是 DMZ?看看世界上仅有的政治方面的 DMZ:南北朝鲜之间的区域。DMZ 由其保护边界确定 — 在这种情况下,两个地理边界,分别由单独的保护实体进行监视和保护。网络中的 DMZ 与此非常类似:某单独的网络部分经过单独的物理防火墙与(通常)两个其它网络相连。

DMZ 与屏蔽子网。常见的方法是使用具有多个接口的单一物理防火墙。一个接口连接 Internet,第二个接口连接到内部网络,第三个接口连接到通常称为 DMZ 的区域。这种体系结构不是真正的 DMZ,因为单个设备负责多个保护区域。这种方案的确切名称是屏蔽子网。屏蔽子网具有严重缺陷 — 单个攻击就可破坏整个网络,因为所有网络段都与该防火墙相连。

DMZ 的优点。为什么部署 DMZ?网络攻击日趋增加 — 有些只是出于好玩、炫耀自己的恶作剧能力,还一些是严重的、有目的的公司间谍和破坏。有效的安全体系结构是攻击的一道屏障,同时该结构具有可调整能力。真正的 DMZ 结构具有下列优点:

具有针对性的安全策略。每个防火墙实施与保护对象对应的策略。
深入防御。在安全遭到破坏时,设备的多个物理构件为安全管理员提供更多时间来做出反应。这是为什么要部署真正的 DMZ 而不是屏蔽子网的唯一、也是最重要的原因。
改进性能。两设备间通信检查的职责分开,每个特定保护区配置一台设备。
可扩展性。可根据需要扩展防火墙 — 外部防火墙处理的负载通常必须比内部防火墙高很多。像 RadWare's FireProof 这样的技术可以跨防火墙农场而平衡负载。
消除故障点。为了获得高可用性,应当至少部署与一对防火墙完全适用的一对防火墙负载平衡器。这样防火墙即可与 DMZ 核心交换机完全匹配。

防火墙类型
目前有三种防火墙:

基本数据包筛选器。
状态检测数据包筛选器。
应用程序代理。
基本数据包筛选器。把简单的数据包筛选作为一种防火墙已不常见,因为几乎所有的路由器都可执行此功能。数据包筛选只是简单地按照一组规则比较传出和传入数据包的端口、协议和地址。不符合规则的数据包被防火墙终止。基本的数据包筛选提供很少的安全性,因为很多种攻击可轻易地绕过它。

状态检测数据包筛选器。这些防火墙除检查单独的数据包外还对流程进行检查。状态检查引擎跟踪每个连接的启动并确保启动与某个先前登录的连接相应的所有通信。符合防火墙规则但无法映射到任何连接的未经请求数据包将被终止。状态检查比基本数据包筛选更为安全,但还是可能受到能够通过防火墙可用协议(如 HTTP)的入侵的袭击。两类数据包筛选器都无法分析任何数据包的内容。另外,两类数据包筛选防火墙几乎都无法在按照规则集进行计算之前将碎片数据包重新组装起来。于是,某些类型的攻击得以用高超技巧制作的数据包碎片进行成功传递。

应用程序代理。应用程序代理提供最高的安全级别。连接不通过代理,而传入连接在代理处被中截,并由代理实现与目标服务器的连接。应用程序代理检查有效载荷并可确定它是否符合协议。例如,正常的 HTTP 请求有确定的特征。通过 HTTP 传递的攻击将与这些特征有所出入(最显著的是通过 HTTP 请求传递的通信具有过多传入信息量),并将被终止。应用程序代理还不易受到碎片的攻击。由于为应用程序代理施加了负载,因此它在三类防火墙技术中速度最慢。

如此说来,哪种技术最好呢?答案取决于您所需的安全级别。一些状态检查防火墙开始加入应用程序代理功能;Checkpoint 的 Firewall-1 就是这样的实例。

基于主机的防火墙保护。彻底防御应当是任何安全方案的设计目标。筛选路由器和传统的 DMZ 提供三层保护,它们通常足以保护大多数网络服务。对于高度安全的环境,基于主机的防火墙还可提供另一层的保护。基于主机的防火墙允许安全管理员确定详细周全的安全策略,以使服务器的 IP 栈只对该服务器上应用程序所要求的端口和协议开放。一些基于主机的防火墙还实施传出保护,以帮助确保某台遭到破坏的机器不会影响同一网络上的其它机器。当然,基于主机的防火墙确实增加了普通系统管理的负担。应考虑仅对那些包含至关重要数据的服务器增加基于主机的保护。

DMZ 体系结构 — 安全和性能
另一类常见的攻击是从线路上窥探数据包。尽管有最近出现的防窥探工具(可能经常不可靠),但用简单集线器构建的网络还是很容易受到这种攻击。(并且反防窥探工具也可能使它成为一项重要议题。) 使用交换机替代集线器可消除此弱点。在共享介质网络(即用集线器构建的网络)中,所有的设备可看见所有的通信。通常网络接口对非发给它的数据帧不进行处理。混杂模式的接口将把每一帧的内容向上传到计算机的协议栈。该信息对于有协议分析器的攻击者可能非常有价值。

交换网络可以实际杜绝这种情况的发生。交换网络中任何机器的网络接口将只能看到特别发给该接口的那些帧。在这里混杂模式没有什么不同,因为 NIC 不识别其它任何网络通信。攻击者窥探交换网络的唯一已知方法是:攻击者破坏交换机本身并更改其操作,这样交换机至少在一个端口充斥了所有通信。破坏交换机很难,并且很快会被网络管理员发现。

交换网络还免去了使用双主机 DMZ 服务器的必要。双主机提供不了更多的附加保护;附加的 NIC 不能防止来自已破坏计算机的攻击。但是在需要高可用性或高性能情况下,使用两个 NIC 可能更加适合。

消除故障点。在需要高可用性的环境中有必要使用两个 NIC。一种切实可行的设计方案是在核心部分包括两台交换机,并在每台服务器中包括两个 NIC。一个 NIC 连接到一台交换机,另一个 NIC 连接到另一台交换机。

内部网络的情况如何?出于同样的原因,内部网络也应当用交换机来构建。如果需要高可用性,请遵照 DMZ 中同样的原则。

群集互连。无论在 DMZ 还是在内部网络中,都使用集线器连接所有群集。Microsoft 不建议使用跨接电缆,因为它们不能提供确保介质敏感型操作正常工作所需的电子信号。

IPSec — 信任 DMZ 的一种更安全的选择
如果所有的服务器都在运行 Windows 2000,则应当使用 Internet 协议安全 (IPSec) 来保护 DMZ 和内部网络之间所有通讯的安全。IPSec 提供下列功能:

身份验证。 可以确定这样的策略,使得只有那些需要彼此通讯的计算机才可以互相通