评估并选择防火墙产品
根据对网络本身及用户的了解,读者下一步需要评估并确定一种防火墙产品。在购买之前要列举一下产品必须要满足的功能,最终的产品选型需要根据这个功能列表来确定;接下来就需要对选择的产品进行测试,但这要求有相应的测试环境和足够的时间。
在测试时,可以找具备试验条件的人帮忙;也可以要求供应商提供测试环境。如果供应商的服务比较完善的话,一般会提供这种测试环境的。在评估防火墙时,一般需要考虑以下因素:
·容量 防火墙能够达到预计的吞吐量吗?有没有调整该容量值的空间?一般来说,如果要求的容量为T3(45Mbps)或更少,大多数防火墙都可以满足这个要求。
·功能 尽管我们在前面讨论到了功能爆炸的问题,但功能对于防火墙来说还是很重要的。要保证购买的防火墙具备你所要求的功能,但在使用这些功能时需要保证谨慎,可以不用的功能尽量不要使用。
·管理界面 这是我们与防火墙经常打交道的部分。如果觉得界面不舒服,或者根本不理解界面的内容,这会给以后的使用带来不便。此外,还要能够尽量避免人为的错误发生。
·价格 这当然是需要考虑的一个重要因素。过去有许多人都喜欢选择Check point fw-1,通常,最基本配置的FW-1防火墙价也不菲,通常是其他们产品的5到10倍。这主要取决于用户的自身情况,有时选择比较好的产品不但能保证安全,而且还能节省大笔资金。
·产品的名声 防火墙供应商对产品的漏洞问题负责吗?其售后服务如何?这种产品使用的人已很多,还只是一种刚刚推出的产品?
此外,还可以从一些测试实验室和面向测试的技术性杂志上获取其他的信息来源。
参考 Network computing杂志每年对防火墙产品都要进行几次测试,在这方面通常做的不错。更多内容参见http://www.nwc.com。
配置与测试防火墙
购买了防火墙之后,下一步就是要安装并使用既定的规则集来配置它。首先,要确保防火墙本身是安全的。如果该产品是防火墙固件,即么需要修改一下该产品默认的各种口令;如果是基于NT或UNIX的防火墙,则要确保运行防火墙软件的操作系统的安全性。
接下来是要将防火墙安装到企业的网络环境中。如果要按照计划正确地对防火墙进行定位,通常需要把服务器一个接一个地放到防火墙后面来测试,不过这种方法太浪费时间了。为了解决这个问题通常需要花费大量的时间(而且还有可能面对用户的指责)。一般来说,要做到一次定位是不可能的,除非网络环境非常简单,或者你是一个规则设置的天才。如果读者真的能做到一次性定位,那要恭喜你了——你的确是一个佼佼者;如果一次不成功,那也不必自责,毕竟这种工作与发射火箭不同。
最后需要针对既定的规则集对防火墙进行测试,为此,我们建议读者进行扩展测试,即分为两部分进行:
·从外部测试规则集
·从内部测试规则集
读者可以考虑使用NMAP工具分别从内部(防火墙内部)和外部(防火墙内部)分别进行测试,要确保从外部测试的结果符合预定的要求。
另外,读者还要注意那些DEFAULT和DENY选项。如果不清楚配置的具体用途,最好不要让这类数所包穿越防火墙;宁可少允许一些协议和应用程序的依赖条件,也不能不知不觉地打开一些系统漏洞,尽量考虑使用最小配置。
注意 人们在配置防火墙时经常把“firing and forgetting”错误:即进行了某种配置并测试以后就忘了具体配置的内容了。解决这个问题的最好方法就是查看防火墙的日志,这不仅可帮助我们找出一些潜在的问题,而且还可对访问者的踪迹进行详细记录。如果某个入侵者试图进入防火墙,则日志首先会记录下他的踪迹。读者应该学会经常使用日志——它是你的好朋友。
防火墙错误示例
首先声明,本节并不是全面地介绍如何正确地使用防火墙;事实上正好相反,这里为读者提供了几个与防火墙安全相关的简单示例。需要指出,这些安全问题并不是由防火墙引起的,而是由管理者配置不当引起的。
本节假定读者熟悉netcat工具。
Web服务器的去向问题
假定用户有一台可陈述的基于包过滤的防火墙,该防火墙可以通过端口80的入站连接访问一台基于NT的Web服务器,这台NT Web服务器位于防火墙之后,并且多数服务都关闭了(Workstation服务、server服务、FTP服务、GOPHER服务都已被禁用)。并用假设边界路由器是安全的,防火墙本身配置正确并且也是安全的。
但这种配置有时却存在着严重的安全隐患:入侵者可以在不到两分钟的时间里通过Telnet得到该NT Web服务器的管理员访问权限。究竟是怎么一回事呢?
Microsoft的Internet信息服务器(IIS,是NT上自带的Web服务器)安装了默认的样本脚本代码,入侵者利用这些代码与RDS/MDAC漏洞,不仅可以远程执行NT服务器上的命令(通过标准HTTP请求),也可以创建FTP脚本。利用安装在Windows NT/IIS上的RFP msadc.pl perl漏洞挖掘脚本和netcat以及响应的命令,攻击者可以:
1)建立可以检索netcat副本的FTP脚本。
2)使用msadc.pl和FTP –s -a<脚本名>执行该FTP脚本。
3)建立关闭Web服务器的脚本,并使用nc –1 –p 80 –e cmd.exe将netcat绑定到端口80上。下班
4)Telnet到Web服务器上(telnet 10.0.0.2 80)与netcat建立连接
由此可见,尽管防火墙的配置非常坚固,但入侵者却能获得NT服务器的管理员权限。原因何在?问题并不是出在防火墙身上,即使防火墙采用最严格的配置(当然不能断开网络),在某一个节点上(本例是Web服务器)存在着漏洞,也会使整个网络系统面临安全威胁。
基于代理的防火墙会阻止netcat攻击,这是因为在端口80上传输的Telnet数据包不会被看做是合法的HTTP请求;然而,基于代理的防火墙却无法阻止对RDS/MSADC漏洞进行攻击,黑客可以相应地改变其攻击方法。
注意 还有一点需要指出:对出站数据包的类型进行限制是一种不错的策略,不过很少有管理员考虑到这一点。在一次测试中,我们遇到了一个聪明的管理员,他将来自于Web服务器上的出站FTP访问禁用了,即使我们可以通过操纵目标主机上的CGI脚本来执行一些命令,但却无法通过FTP使用我们的攻击工具(如netcat),这给我们造成了不少的困难。