建立一个可靠的规则集对于实现一个成功的、安全的防火墙来说是非常关键的一步。因为如果你的防火墙规则集配置错误,再好的防火墙也只是摆设。在安全审计中,经常能看到一个巨资购入的防火墙由于某个规则配置的错误而将机构暴露于巨大的危险之中。本文的目的就是帮助网络管理员设计、建立和维护一个可靠的、安全的防火墙规则集,这里以高阳信安的DS2000防火墙为例,不过其中包含的信息是适用于大多数的防火墙的。
如何建立一个安全的规则集呢?下面我们就从一个虚构机构的安全策略开始,基于此策略,来设计一个防火墙规则集。
■第一步:制定安全策略
防火墙和防火墙规则集只是安全策略的技术实现。管理层规定实施什么样的安全策略,防火墙是策略得以实施的技术工具。所以,在建立规则集之前,我们必须首先理解安全策略,假设它包含以下3方面内容:
1. 内部雇员访问Internet不受限制。
2. 规定Internet有权使用公司的Webserver和Internet Email。
3. 任何进入公用内部网络的通话必须经过安全认证和加密。
显然,大多数机构的安全策略要远远比这复杂,对本文来说,这就够了。
■第二步:搭建安全体系结构
作为一个安全管理员,第一步是将安全策略转化为安全体系结构。现在,我们来讨论把每一项安全策略核心如何转化为技术实现。
第一项很容易,内部网络的任何东西都允许输出到Internet上。
第二项安全策略核心很微妙,这就要求我们要为公司建立Web和E-mail服务器。由于任何人都能访问Web和E-mail服务器,所以我们不能信任它们。我们通过把它们放入DMZ(Demilitarized Zone,中立区)来实现该项策略。DMZ是一个孤立的网络,通常把不信任的系统放在那里,DMZ中的系统不能启动连接内部网络。DMZ有两种类型,有保护的和无保护的。有保护的DMZ是与防火墙脱离的孤立的部分;无保护的DMZ是介于路由器和防火墙之间的网络部分。这里建议使用有保护的DMZ,我们把Web和E-mail服务器放在那里。
惟一的从Internet到内部网络的通话是远程管理。我们必须让系统管理员能远程地访问他们的系统。我们实现它的方式是只允许加密服务进入内部网络。
还有一样东西我们必须添加,那就是DNS。虽然我们没有在安全策略中陈述它,但我们必须提供这项服务。作为安全管理员,我们要实现Split DNS。Split DNS是指在两台不同的服务器上分离DNS的功能。我们通过用一台DNS来分析公司域名的External DNS服务器和一台内部用户使用的Internal DNS服务器来实现该项功能。External DNS服务器与Web和E-mail服务器一起放在有保护的DMZ中,Internal DNS服务器放在内部网络中。
■第三步:制定规则次序
在建立规则集之前,有一件事必须提及,即规则次序。哪条规则放在哪条之前是非常关键的。同样的规则,以不同的次序放置,可能会完全改变防火墙的运转情况。很多防火墙(例如SunScreen EFS、Cisco IOs、FW-1)以顺序方式检查信息包,当防火墙接收到一个信息包时,它先与第一条规则相比较,然后是第二条、第三条……当它发现一条匹配规则时,就停止检查并应用那条规则。如果信息包经过每一条规则而没有发现匹配,这个信息包便会被拒绝。一般来说,通常的顺序是,较特殊的规则在前,较普通的规则在后,防止在找到一个特殊规则之前一个普通规则便被匹配,这可以使你的防火墙避免配置错误。
■第四步:落实规则集
选好素材就可以建立规则集了,下面就简要概述每条规则。
● 切断默认
通常在默认情况下,DS2000有多种服务是不公开的。我们的第一步需要切断默认性能。
● 允许内部出网
我们的规则是允许内部网络的任何人出网,与安全策略中所规定的一样,所有的服务都被许可。
● 添加锁定
现在我们添加锁定规则,阻塞对防火墙的任何访问,这是所有规则集都应有的一条标准规则,除了防火墙管理员,任何人都不能访问防火墙。
● 丢弃不匹配的信息包
在默认情况下,丢弃所有不能与任何规则匹配的信息包。但这些信息包并没有被记录。我们把它添加到规则集末尾来改变这种情况,这是每个规则集都应有的标准规则。
● 丢弃并不记录
通常网络上大量被防火墙丢弃并记录的通信通话会很快将日志填满。我们创立一条规则丢弃/拒绝这种通话但不记录它。这是一条你需要的标准规则。
● 允许DNS 访问
我们允许Internet用户访问我们的DNS服务器。
● 允许邮件访问
我们希望Internet和内部用户通过SMTP(简单邮件传递协议)访问我们的邮件服务器。
● 允许Web 访问
我们希望Internet和内部用户通过HTTP(服务程序所用的协议)访问我们的Web服务器。
● 阻塞DMZ
内部用户公开访问我们的DMZ,这是我们必须阻止的.
● 允许内部的POP访问
让内部用户通过POP(邮局协议)访问我们的邮件服务器。
● 强化DMZ的规则
你的DMZ应该从不启动与内部网络的连接。如果你的DMZ能这样做,就说明它是不安全的。这里希望加上这样一条规则,只要有从DMZ到内部用户的通话,它就会发出拒绝、做记录并发出警告。
● 允许管理员访问
我们允许管理员(受限于特殊的资源IP)以加密方式访问内部网络。
● 提高性能
最后,我们回顾一下规则集来考虑性能问题,只要有可能,就把最常用的规则移到规则集的顶端。因为防火墙只分析较少数的规则,这样能提高防火墙性能。
● 增加IDS
对那些喜欢基础扫描检测的人来说,这会有帮助。
● 附加规则
你可以添加一些附加规则,例如:
阻塞与AOL ICQ的连接,不要阻塞入口,只阻塞目的文件AOL服务器。
■第五步:注意更换控制
在你恰当地组织好规则之后,还建议你写上注释并经常更新它们。注释可以帮助你明白哪条规则做什么,对规则理解得越好,错误配置的可能性就越小。对那些有多重防火墙管理员的大机构来说,建议当规则被修改时,把下列信息加入注释中,这可以帮助你跟踪谁修改了哪条规则以及修改的原因。
● 规则更改者的名字。
● 规则变更的日期/时间。
● 规则变更的原因。
■第六步:做好审计工作
当你建立好规则集后,检测它很关键。我们所犯的错误由好的管理员去跟踪并找到它们。
防火墙实际上是一种隔离内外网的工具。在如今Internet访问的动态世界里,在实现过程中很容易犯错误。通过建立一个可靠的、简单的规则集,你可以创建一个更安全的被你的防火墙所隔离的网络环境。
成功的诀窍:规则越简单越好
在我们深入探讨之前,要强调一下一个简单的规则集是建立一个安全的防火墙的关键所在。网络的头号敌人是错误配置。为什么当你意外地将消息访问协议(IMAP)公开时,那些坏家伙会试图悄悄携带欺骗性的、片断的信息包通过你的防火墙?请尽量保持你的规则集简洁和简短,因为规则越多,就越可能犯错误,规则越少,理解和维护就越容易。一个好的准则是最好不要超过30条。一旦规则超过50条,你就会以失败而告终。当你要从很多规则入手时,就要认真检查一下你的整个安全体系结构,而不仅仅是防火墙。规则越少,规则集就越简洁,错误配置的可能性就越小,系统就越安全。 因为规则少意味着只分析少数的规则,防火墙的CPU周期就短,防火墙效率就可以提高。
转载地址:http://www.netsp.com.cn/Article/netsafe/FW/200506/20050602132544.html