附录 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 提供下列功能:
身份验证。 可以确定这样的策略,使得只有那些需要彼此通讯的计算机才可以互相通讯。
加密。 已经侵入到 DMZ 的入侵者无法将通信解释进或解释出内部网络。
保护。 IPSec 保护网络避免重放攻击、人为干预攻击以及通过标准协议(如 ICMP 或 HTTP)进行的攻击(这些攻击可通过基本防火墙和状态检查数据包筛选器防火墙)。
启用 IPSec 后,内部防火墙必须只允许 IPSec、IKE、Kerberos 以及 DNS 通信,这样进一步加强了内部网络的安全性。内部防火墙中不会有其它漏洞。对于各种应用程序有漏洞的标准防火墙规则,入侵者可以通过 Firewalk 这样的工具确定防火墙的策略;而将所有通信封装在 IPSec 中并只许使用该协议,可隐藏对攻击者可能有用的实施细节(但是还应参见下面的“可能的安全含意”)。下表列出了应当在防火墙中开启的服务: 服务
位置
说明
Domain
端口 53/tcp 和 53/udp
域名服务
kerberos
端口 88/tcp 和 88/udp
Kerberos v.5 身份验证
isakmp
端口 500/udp
Internet 密钥交换
esp
协议 50
IPSec 封装的安全有效载荷
ah
协议 51
IPSec 验证的标头
请注意不需要证书授权;IPSec 策略将用 Kerberos (本机的 Windows 2000 身份验证机制)作为建立 IKE 主模式安全关联的基础。
可能的安全含意。如前所述,对 DMZ 和内部网络之间的通信加密后不可能再检查内部防火墙中的通信。并非所有的网络或安全管理员都对此方法满意。ESP 的加密提供了进入内部网络的封装路径,一旦某台 DMZ 机器被破坏,它就可能被利用。使用 IPSec AH 替代 ESP 将使较为简单的防火墙配置显示其优势,同时由于 AH 数据包有效载荷未经加密,还可进行通信检查。
入侵检测 — 早期的警告系统
入侵检测系统正在成为与 Internet 连接的任何网络的必要组件。尽管它不能替代防火墙详细不间断的检查和服务器日志,但是入侵检测系统能够提早识别潜在入侵,为您提供更多的时间以对事故采取相应措施。请在 DMZ 中安装入侵检测系统。
入侵检测系统和防病毒实用程序相似,它们都是在检测到它们识别的东西时向管理员发出警报。入侵检测系统包含一个攻击特征数据库,但是并非所有的入侵检测系统都同样可以识别不同类型的攻击或保持最新状态(各个 IDS 厂商都将他们的特征数据库和更新机制当作商业机密)。目前有两种值得关注的检测系统,它们是:RealSecure by Internet Security Systems (http://www.iss.net) 和 Network Flight Recorder ( http://www.nfr.net )。
基于主机的入侵检测。大多数入侵检测系统在网络级别工作,在网络被破坏后向管理员发出警报。最近出现了一种新的入侵检测系统类型:基于主机的入侵检测系统。这些工具本身在服务器上运行,并在特定计算机遭到破坏时向管理员发出警报。这种警报机制对于包含有重要操作数据的计算机(如后端数据库服务器)尤为重要。
将基于网络的入侵检测系统和基于主机的入侵检测系统结合起来,并且让训练有素的安全专家定期检查系统日志是保护网络、收集证据和处理安全事故的最有效方法。
DNS — 确保客户到达正确的地方
常见的 DNS 实施(包括如图所示的实施)称为拆分 DNS 实施。外部服务器用来解决 Internet 对 DMZ 中计算机的查询,并解决 DMZ 计算机对其它 DMZ 计算机的查询。内部服务器用来解决内部网络对内部计算机的查询,对 DMZ 中或 Internet 上计算机的查询将被转发到外部服务器。但是拆分 DNS 不能保护 DNS 高速缓存免受攻击。
在 DNS 高速缓存的侵害中,攻击者会破坏另一网络的 DNS 高速缓存。当受害者试图在破坏的网络中确定地址时,该高速缓存返回攻击者在高速缓存中放入的无效信息。通常攻击者这样做是为了把受害者重新定向到攻击者的计算机。
最安全的 DNS 实施称为 拆分 — 拆分 DNS 实施。在 DMZ 中有两台 DNS 服务器。一台服务器(例如 DMZDNS-IN)只接受对 DMZ 中计算机的传入查询 — 并只接受 Internet 上计算机的查询。另一台服务器(如 DMZDNS-OUT)只允许解决对 Internet 的传出查询,以及 DMZ 计算机对其它 DMZ 计算机的查询。DMZDNS-IN 是 DMZ 的 DNS 区域的主 DNS 服务器,DMZDNS-OUT 是辅助 DNS 服务器,使用 IPSec 进行区域传输。内部网络中的 DNS 服务器仅是内部网络的主 DNS 服务器,并且将对 DMZ 或 Internet 的请求转发到 DMZDNS-OUT。这消除了使网络易于受到已被袭击的 DNS 高速缓存攻击的条件。
来自 Internet 的 DNS 查询不可能通过 DMZ 进入内部网络来获取答案。一些近期的攻击使用 DNS 来传递其有效载荷。Internet 上的用户没有必要对内部网络上的服务器进行查询。
消除故障点。在高可用性环境中,只需简单倍增 DNS 服务器的数量即可。
硬件负载平衡 — 保持服务器的最佳性能
Windows 2000 Advanced Server 包括一种称为“网络负载平衡服务”或 NLBS 的功能。NLBS 为 Web 站点管理员提供了在相同配置的服务器农场中进行服务器负载分配的方法。NLBS 对不需要复杂状态维护或性能监视的应用程序来说非常适用。但对于需要这些工作的应用程序来说,则应选择硬件负载平衡。这些设备有时称为第 7 层交换机。
像 F5 网络的 BigIP Content Switch(非官方认可,只是行业中认同它是最好产品之一)这样的设备在 OSI 模型的第 2 到第 7 层工作。BigIP Content Switch 检测应用程序的状态和运行情况,在 Web 服务器之间提供负载平衡和真实容错。若要消除任何单一的故障点,需使用两个与所有 Web 服务器完全相符的负载平衡设备。F5 还提供了支持加密套接字协议层 (SSL) 的 BigIP Content Switch 版本。SSL 会话在 BigIP SSL Accelerator中终止,然后确定由哪台 Web 服务器执行该工作。BigIP Accelerator 进行下列操作:
卸载 Web 服务器的 SSL 处理,提高其性能。
集中管理证书。将证书安装在 SSL 加速器上,而不是每一台 Web 服务器上。它还可使多个 BigIP 控制器之间的证书同步。
启用 HTTP 主机标头。
解决 AOL 客户端 IP 地址共享问题。
消除故障点。如果目标仅仅是平衡服务器的负载,一台负载平衡设备足矣。但是若要提供真实容错功能,则需多台配置完全匹配的设备。
存储区域网络 — 对内部网络的集中存储
存储区域网络技术已非常成熟,只要是配备有大存储容量的地方都可使用。SAN 将存储功能从通用服务器移到为传输大量数据而特别设计的高速网络上。这有助于:
通过将磁盘阵列移出机柜来优化服务器机柜空间。
通过将数据存储在单独的、不易遭受目前所知类型攻击的网络中,增加数据的安全性。
通过在数据网络之外保留通信备份,提供不受 LAN 约束的备份。
最初,使用光纤通道仲裁环 (FC-AL) 来建立 SAN。较新的光纤通道交换机提供更高水平的吞吐量,并使管理员可以设计没有单一故障点的 SAN。
交换光纤通道 SAN 至少包括:
两台位于核心相互连接的 FC 交换机。
几台位于外围的交换机 — 每个 LAN 有一台与 SAN 连接的交换机。每台外围交换机都与两台核心交换机连接。
每台服务器中的 FC 接口与其本地的 SAN 交换机相连。
SAN 磁盘群集有一台交换机与两台核心交换机连接。
SAN 备份设备的一台交换机,与两台核心交换机连接。
消除故障点。倍增核心以外的所有设备:在每台服务器中使用两个光纤通道适配器、每个 LAN 中使用两台外围交换机、对 SAN 磁盘群集使用两台外围交换机,以及对 SAN 备份设备使用两台外围交换机。始终将两台外围交换机与两台核心交换机相连。
网络附加存储的有关情况?Microsoft 不支持 NAS 存储 Exchange 文件。Exchange 要求所有的文件都保存本地设备上。Exchange 在光纤连接的 SAN 设备上运行良好,这些设备对 Windows 2000 表现为本地设备。
2000 Microsoft Corporation。版权所有。
本文档所包含的信息代表了在发布之日,Microsoft Corporation 对所讨论问题的当前看法。因为 Microsoft 必须顺应不断变化的市场条件,故该文档不应理解为 Microsoft 一方的承诺,Microsoft 不保证所给信息在发布之日以后的准确性。
本文档仅供参考。在本文档中,MICROSOFT 不做任何明示的或默示的保证。
Microsoft、BackOffice、MS-DOS、Outlook、PivotTable、PowerPoint、Microsoft Press、Visual Basic、Windows、Windows NT 和 Office 徽标是 Microsoft 在美国和/或其它国家(或地区)的注册商标或商标。