建立你的防火墙规则集
建立一个可靠的规则集对实现一个成功的、安全的防火墙来说是非常关键的一步。Internet的安全管理员和专家在讨论什么样的平台和应用软件能构造最好的防火墙。我们基于过滤器、碎片、重新组装等来比较检测工作台和应用软件。但如果你的防火墙规则集配置错误,这一切便毫无意义。在我的安全审计中,我经常能看到一个巨资购入的防火墙由于一个规则配置的错误而将机构暴露于巨大的危险中。本文的目地是帮助你设计、建立和维护一个可靠的、安全的防火墙规则集。这里包含的信息适用于大多数的防火墙,以高阳信安的DS2000防火墙作为例子。不管你用的是那种类型的防火墙,设计规则集的基本原理是相同的。一、成功的关键 在我们深入探讨之前,我要强调一个简单的规则集是建立一个安全的防火墙关键所在。你的网络的头号敌人是错误配置。为什么当你意外地将消息访问协议(imap)公开时,那些坏家伙会试图悄悄携带欺骗性的、片断的信息包通过你的防火墙?保持你的规则集简洁和简短,规则越多,你或其他人就越可能犯错误。规则越少,理解和维护就越容易。通过保持简洁和简短,你已经成功了一半。一个好的准则是规则不要超过30条。有30条规则,理解将要发生什么相对简单。规则在30条至50条之间,事情就变得混乱起来,错误配置的概率以指数级递增。无论怎样,规则超过50条,你就会以失败而告终。我亲眼见过规则超过300条的机构,结果,没有人知道会发生什么。当你要从很多规则入手时,你就要认真检查一下你的整个安全体系结构,而不仅仅是防火墙。这段经历的教训是:规则越少,规则集就越简洁,错误配置的可能性就越小(系统越安全)。
规则较少的附带优点是性能的提高,只分析少数的规则,你的防火墙会减少CPU周期。尽管大多数防火墙效率极高,你几乎看不出差别,但它没有任何坏处。
二、建立你的规则集
那么,我们如何建立一个安全的规则集呢?我们将在下文讲述这个问题。我们将逐步构造并建立一个防火墙规则集。我们从一个虚构机构的安全策略开始。基于此策略,我们来开发一个防火墙规则集。在这个过程中,我们将论述一些规则集配置的准则,同时也论及每个规则集都应有的规则。顺利的话,在本文结束时,你会对如何为你的机构建立一个安全的规则集有较好的理解。
三、安全策略
防火墙(和防火墙规则集)只是安全策略的技术实现。管理层建立规定实施什么样的安全策略,防火墙是策略得以实施的技术工具。所以,在建立规则集之前,我们必须理解安全策略。既然本文强调规则集设计,对安全策略的论述就相对简单。幸运的是,我们的机构有一个简单的安全策略,管理层将其概述如下:
1 内部雇员访问Internet不受限制。
2 规定Internet有权使用公司的websever和Internet email。
3 任何进入公用内部网络的通话必须经过安全认证和加密。
显然,大多数机构的安全策略要远远比这复杂,但对本文来说,这就够了。但你会很快会看到这个策略是如何变得复杂的。
安全体系结构
作为一个管理员,我们的第一步是将安全策略转化为安全体系结构。现在,我们来讨论把每一项安全策略核心转化为技术实现。
1 第一项很容易。内部网络的任何东西都允许输出到Internet。
2 第二项安全策略核心很微妙。我们要为公司建立web和email服务器。我们通过把它们放入一个DMZ来实现该项策略核心。一个DMZ(Demilitarized Zone)是一个孤立的网络,你把不信任的系统放在那里。既然任何人都能访问我们的web和email服务器,我们不能信任它们。DMZ中的系统不能启动连接内部网络,因为它们不被信任。有两种类型的DMZ,有保护的和无保护的。有保护的DMZ是与防火墙脱离的孤立的部分。无保护的DMZ是介于路由器和防火墙之间的网络部分。我建议使用有保护的DMZ,我们把web和email服务器放在那里。
3 唯一的从Internet到内部网络的通话是远程管理。我们必须让系统管理员能远程地访问他们的系统。我们实现它的方式是只允许加密服务进入内部网络。
4 有一样东西我们必须添加,DNS。虽然我们没有在安全策略中陈述它,但我们必须提供这项服务。作为安全管理员,我们要实现Split DNS。SplitDNS是指在两台不同的服务器上分离DNS的功能。我们通过使用一台DNS用来分析公司域息的External DNS服务器和一台内部用户使用的Internal DNS
服务器来实现它。External DNS服务器与web和email服务器一起放在有保护的DMZ中。Internal DNS服务器放在内部网络中。这防止Internet危及Internal DNS的安全。Internal DNS服务器上有映射内部网络的信息。
四、规则次序
在建立规则集之前,有一件事必须提及,即规则次序。你很快会认识到哪条规则放在哪个之上是非常关键的。同样的规则,以不同的次序放置,可能完全改变防火墙的运转情况。很多防火墙(例如SunScreen EFS,Cisco IOs,FW-1)以顺序方式检查信息包。当防火墙接收到一个信息包时,它把它先与第一条规则相比较,然后第二条,第三条等等。当它发现一条匹配规则时,就停止检查并应用那规则。如果信息包经过每一条规则而没有发现匹配,这个信息包便被拒绝。理解是第一个、而不是最好的匹配规则适用于信息包是关键。在此基础上,较特殊的规则在前,较普通的规则在后,防止在找到一个特殊规则之前一个普通规则便被匹配。这将使你的防火墙避免配置错误。
五、规则集
到了选好素材,建立规则集的时候了!下面我简要概述每条规则、为什么选择这条规则和它的重要性。
(1) 默认性能:第一步是清除被允许的一切东西。我们想确信我们从一个干净板面开始并且没有任何信息包通过。不幸的是,在默认情况下,DS2000有多种服务是不被公开的。我们的第一步是切断默认性能。
(2) 内部出网:我们的第一条规则是允许内部网络的任何人出网。与安全策略中所规定的一样,所有的服务都被许可。
(3) 锁定:现在我们添加锁定规则,阻塞对防火墙的任何访问。这是所有规则集都应有的一条标准规则。除了防火墙管理员,任何人都不能访问防火墙。
(4) 管理员访问:没有人能连接防火墙,包括管理员。我们必须创立一条规则允许管理员访问防火墙。
(5) 丢弃全部:在默认情况下,丢弃所有不能与任何规则匹配的信息包。但这些信息包并没有被记录。规则并把它添加到规则集末尾来改变这种情况。这是每个规则集都应有的标准规则。
(6)不记录:通常,网络上大量被防火墙丢弃并记录的通讯通话会很快将日志填满。我们创立一条规则丢弃/拒绝这种通话但不记录它。这是一条你也许想用的标准规则。
(7) DNS 访问:我们允许Internet用户访问我们的DNS服务器。
(8) 邮件访问:我们希望Internet和内部用户通过smtp(简单邮件传递协议)访问我们的邮件服务器。
(9) Web 访问:我们希望Internet和内部用户通过http(服务程序所用的协议)访问我们的web服务器。
(10) 阻塞DMZ:内部用户公开访问我们的DMZ,这是我们必须阻止的。
(11) 内部的POP访问:让内部用户通过POP(邮局协议)访问我们的邮件服务器。
(12)DMZ的规则:你的DMZ应该从不启动与内部网络的连接。如果你的DMZ能这样做,就说明它是不安全的。我希望加上这样一条规则,只要有从DMZ到内部用户的通话,它就会拒绝、记录并发出警告。
(13) 管理员访问:我们允许管理员(受限于特殊的资源IP)以加密方式访问内部网络。
(14) 性能:最后,我们回顾一下规则集来考虑性能问题。只要有可能,就把最常用的规则移到规则集的顶端。因为防火墙只分析较少数的规则,能提高性能。
(15) IDS:对那些喜欢基础扫描检测的人来说,这会有帮助。
(16) 附加规则:你可以添加一些附加规则,例如:
—>阻塞任何来自doubleclick.com(众多广告商之一)基于IP地址的连接。这可避免你在网上不得不费力地通过一些在线广告, 节省用户时间并提高性能。
—>阻塞与AOL ICQ的连接,不要阻塞入口,只阻塞目的文件AOL服务器。
六、更换控制
你恰当地组织好规则之后,我建议你写上注释校正它们并经常更新它们。注释帮助你明白哪条规则做什么。对规则理解得越好,错误配置的可能性就越小。对那些有多重防火墙管理员的大机构来说,我建议,当规则被修改时,把下列信息加入注释中。这帮助你跟踪谁修改了哪条规则以及修改的原因。
● 规则更改者的名字
● 规则变更的日期/时间
● 规则变更的原因
七、审计
当你建立好规则集后,检测它很关键。我们所犯的错误由好的管理员去跟踪并找到它们。
防火墙实际上是一种隔离内外网的工具。在如今Internet访问的动态世界里,在实现过程中很容易犯错误。通过建立一个可靠的、简单的规则集,你可以创建一个更安全的被您的防火墙所隔离的网络环境。
页:
[1]