级别: 初级 Judith M. Myerson (jmyerson@bellatlantic.net), 系统架构工程师
2004 年 12 月 03 日 在本系列的第 5 部分,Judith M. Myerson 讲述了在面向服务的体系结构(SOA)中如何集中管理您的防火墙,以便更好地控制和监控用于多个 Web 服务以及其它相关的服务和应用的防火墙。她还阐述了为什么用户需要为多个 Web 服务设置足够多的防火墙以防止恶意的攻击,这些攻击能够进入防火墙并对服务级别协议(SLA)中规定的保证产生负面影响。
引言
在本系列的
第 4 部分,我讨论了怎样建立访问控制列表 (ACL) 以及 ACL 入口大小对服务级别协议(SLA)保证中规定的正常运行时间可用性的影响。还论述了用户可以如何集中安全管理来更好地控制面向服务的体系结构中的多个 Web 服务及其相关的其它服务和应用程序的 ACL。
在“
Web 服务上下文中使用 SLA,第 1 部分:利用 SLA 来保证您的 Web 服务”一文中,我提到 ACL 作为 Web 服务的特性之一,应该在公开 Web 服务前进行测试。现在将防火墙作为另外一个需要测试的特性。并不是 ACL 中的所有用户都是防火墙用户或管理员。我重点研究 SOA 中与其它应用程序交互的 Web 服务的多个防火墙这方面的问题,因为他们会影响 SLA 中保证的正常运行时间可用性。
防火墙检查经过它的每一条消息的源地址和目的地址。它同时还记录被拒绝、绕行或中止的数据包以及允许通过和重定向的数据包。一方面,它允许 Intranet 的 ACL 用户从外部的 Internet 访问许可的资源,另一方面,它又保护并隐藏计算机集群避免来自 Internet 的破坏行为和拒绝服务(Dos)。
要满足特定需求,您可以增加、删除甚至重新设定防火墙的配置选项。当您这么做的时候,测试防火墙以确保正常运行时间的可用性保证保持在 SLA 许可的级别。
防火墙管理员
为了更好地了解防火墙之间怎样进行交互,让我们实现一个多层次的防火墙管理员体系。如
图 1 所示,企业防火墙管理员是层次结构中的超级防火墙管理员、本地管理员,代理用户是有层次差别的,企业管理员为所有级别的管理员制定策略用于管理 Web 服务、非 Web 服务和企业应用集成(EAI)应用程序的多个防火墙间的传输流。
图 1. 防火墙管理员的层次结构
消除通信障碍
您可以修改层次通道,例如,允许企业防火墙管理员越过超级管理员和本地管理员而直接与代理用户通信。这意味着,当直接与代理用户进行交互时,企业管理员可以代行超级或本地管理员的职权。
在
图 2 所示的另一个实例中,超级管理员 B 从企业管理员处获得与代理用户直接通信的许可,而这个代理用户正常情况下由本地管理员 A 和超级管理员 A 负责。企业管理员将超级管理员 B 的行为的报告发送给超级管理员 A。
图 2. 直接与代理用户通信
定义防火墙管理员
不像防火墙管理员,代理用户无法访问防火墙机器。尽管本地防火墙管理员可以创建或修改代理用户的定义,但它们却无法创建或修改其它本地防火墙管理员。而且本地管理员不能够本地登录操作系统- Windows 或 Linux 。虽然超级管理员拥有上述两项功能,但他们不能够创建或修改其它超级防火墙管理员的定义。只有企业管理员具有这个特权。
您需要一个用户帐户策略来定义每个防火墙管理员的通常职责。策略需要包含一些额外的功能,本地和超级管理员需要实现这些功能以满足特定的部门需求。策略还应该包含允许企业管理员可以直接与本地管理员通信的特权,以满足正常运行时间的可用性保证。
安全性策略
应用程序之间和操作系统之间的安全性策略不相同,这一点也很重要。根据 IBM® SecureWay Firewall for Window NT(参阅
参考文献),用户作为授权管理员,需要配置客户来定义安全策略(和定义网络对象以及登录防火墙)。例如,您可以使管理员在最低限度执行以下策略:
- 允许域名系统(DNS)查询
- 拒绝将消息广播到不安全的接口
- 拒绝连接不安全的适配器
在 Windows XP Service Pack 2 中,需要在单独的控制面板组件(防火墙)中设置安全性策略。使用 Linux 时,需要利用 iptables(参阅
参考文献)来定义对传入数据包的响应策略,是接收、丢弃还是拒绝。用户必需充分定义所有的安全性策略以确保正常运行时间的可用性保证,而没有或很少有中断阈值。
企业管理员
用户应该与企业管理员合作。主要原因在于许多 Web 服务,包括长期运行的和短期运行的应用,在 SOA 中要跨越防火墙与其它的服务和 EAI 应用程序进行交互。多重防火墙后的一些 Web 服务必需访问授权的 Internet 资源,他们可能需要这些资源来完成某个任务或一组任务。用户应该向企业管理员建议哪些地方有必要在层次体系中包括新型防火墙管理员,开发 Web 服务时需要这种管理员。
建立过滤标准
企业管理员必需从管理的层次上建立过滤标准策略,用来控制和监控多个源地址和目的地址间的传输。下面是一个规则实例,指定入站数据包要:
企业管理员还必须对打开或关闭哪些端口和程序进行过滤。另一实例是基于每个 Web 服务或其它 SOA 服务的 Internet Protocol (IP) 会话,设置允许哪些传输流能通过防火墙的规则。
在 Linux 操作系统中,所有的过滤条件和 Internet 控制消息协议(ICMP)的使用都可以利用 iptables 在命令行中找到(参见
参考文献)。在 Windows XP Service Pack 2 中,利用图形用户界面(GUI)对话框向防火墙异常清单中添加程序、端口甚至是 Web 服务的单独连接。虽然增加一些程序可以使他们运行得更好,但同时也增加了安全风险。
防火墙应用程序
部分防火墙包含 3 种应用程序:传输控制协议/网络协议 (TCP/IP)、用户数据报协议 (UDP) 和 ICMP 。代理用户连接代理服务器时,代理服务器使用其中的一个 TCP/IP 应用程序(例如,FTP 和 HTTPS )。这个代理服务器依次连接代表用户的远程主机,同时对防火墙外部的其它用户隐藏网络结构。
相反,用户数据报协议/ Internet 协议(UDP/IP)应用程序不需要建立连接就可以发送无状态数据。要使网络上的计算机共享错误、状态和重定向信息,您可以使用 ICMP 应用程序,如 Personal Internet Gate (PING) 来实现管理功能。
日志文件中的中断阀值
标准的日志文件显示了丢弃的数据包和成功的入站出站连接。要判断包丢失是否严重,需要开发一个中断阀值,就像在我的文章“
将 Web 服务集成到带 SLA 保证的 EAI,第 3 部分”中所讲述的。我建议修改日志文件的格式,用一列来自动记录每次包丢失时自动计算得到的明显的中断阀值,另一列记录一些影响到 SLA 的正常运行时间可用性保证的紧急问题,以此提醒管理员。
由于中断阀值可能会受到一些不适当的负载平衡计划的影响 ,企业管理员可以将日志文件当作工具来确定如何在多个 IBM 防火墙间更好地分配负载,而用户不需要知道哪个防火墙在为他们的当前请求服务。这就意味着本地管理员 A 甚至与超级管理员 A 都不需要了解超级管理员 B 所能访问的防火墙上的服务器负载。
结束语
在异构 SOA 环境中,防御 Web 服务不是一件容易的工作。需要牢记的最重要的事情是在发布有防火墙的 Web 服务之前,要对它们的效率进行测试 。可以通过与防火墙管理员直接对话来完成这一任务,特别是由于丢失数据包及其它负面因素的影响而引起的中断阀值问题。
参考资料
关于作者
对本文的评价
|