近我从测试一家公司的防火墙中学到一点:不要相信任何厂商声称的任何事情,除非你已经亲自测试过产品。这意味着那些“应该有效”或是“过去有效”的事情可能根本不管用,或者不像你期望地那样运转。在本文中我将讨论如何测试防火墙,你应该实施的三种类型防火墙测试、以及令人意外:对于确保为你的组织选择好的防火墙,测试类型并不重要。


  测试防火墙的过程可以划分成三个截然不同的阶段:主观性的评价、缓解威胁的有效性以及性能测试。

  测试防火墙:主观性评价

  你的主观性评价应该基于一个标准列表,而不是功能列表。评审防火墙的每个部分,例如如何定义规则、如何建立VPN隧道、远程访问如何工作,以及威胁缓解功能是如何分层构建于产品之上。记录你的调查结果,并且在你的笔记中添加许多截图。否则在你测试防火墙A时看起来明显的东西,六周后当你评审防火墙G时,回顾那些调查结果可能会让你感到不解。对你评价的每个标准都做好笔记。

  测试防火墙:有效性测试

  没有专门的工具很难进行有效性测试,并且即使你拥有专门的工具,你可能无法得到好的结果。有效性测试应该关注于三个领域:入侵预防、防恶意软件和应用识别。

  对于入侵预防系统(intrusion prevention system ,简称IPS)测试,尽管其它的测试厂商,如思博伦通信公司和IXIA有限公司有类似的产品,我的公司使用的是Mu Dynamics的产品。如果需要的话你可以购买或是租用这些工具,但是你应该能够让每个防火墙厂商运行你指定的测试,虽然通常他们拥有同样的工具。


  对于应用识别测试,选取你关心的应用,并且对真实的服务器进行测试。如果你想阻断点到点(P2P)的文件共享软件,启动一些不同的Torrent客户端然后观察会发生什么。对于诸如webmail或是Facebook这样的应用也要做同样的测试,它们都是应用识别与控制测试的首要候选。不用尝试自动化的测试工具,因为测试结果永远不会像真实的应用和真实的服务器通信那样精确。这点对于那些逃避检测的应用特别准,如BitTorrent和Skype软件,用测试工具永远无法完美地模拟它们的通信。

  测试防火墙:评估性能

  性能测试通常也要求专门的工具,但是已经有很多广受人欢迎的开源工具可供选择。当测试性能时记住用空设备检查试验台的测试,一个路由器或是转接线不错。这会告诉你试验台的大速度。从这里开始,要牢记于心网络测试员David Newman的测试定律:测试必须是可重复的,必须是压力性的(对于设备来说,不是对你),必须是有意义的。将你正在测试的设备发挥到它的极限,即使你不会在实际运行中达到那种程度。这会告诉你未来会在哪里碰壁,以及设备有多少使用上升空间。

  不要在一千种不同的环境下测试性能,因为你的网络只会遇到一种环境:现实。尝试构建代表你的网络和使用情况状况的小环境,并且对同等配置的防火墙进行测试。因为大多数防火墙的大部分工作是处理HTTP和HTTPS流量,你放心专注于测试它们。增加额外3%左右的DNS流量会使测试更为复杂,并且通常不会告诉你任何有用的东西。

  性能测试必须有“通过/失败”这样的指标。例如,当防火墙开始拒绝打开新的会话时,应该结束测试因为已经超出了它的极限。你应该也设置其它的上限,例如大的延迟时间,来定义什么时候防火墙的表现是无法接受的。

  完成这三种类型的测试,你会清楚地明白适合组织的佳防火墙产品