网络安全 频道

Spirent防火墙测试方法

4.利用Spirent模仿现实环境来测试防火墙

  此部分描述了如何利用Spirent的Avalanche/Reflector或者SmartBits平台进行基本的防火墙测试。你可以在防火墙测试中加入更多的参数选项以提高测试仿真现实网络的能力,此外,还可以在测试中包含进其他的设备。这些测试能力使你的测试更加贴近产品网络从而减少了产品部署的风险。

  以下的测试描述包括:

  ◆“Firewall Basic”-测试结构的工作特性限制。

  ◆“Firewall Stress”-衡量防火墙的极限工作能力。

  ◆“Firewall Load”-衡量在一定的负载下防火墙如何更好的维持可用性。

4.1“Firewall Basic”-建立一个可参考的基线测试

4.1.1目标

  在你衡量一个防火墙前,必须先知道测试结构的操作限制。基本防火墙测试结构是由可管理交换机连接的背对背Avalanche/Reflecor设备所构成的。交换机必须是可管理的;我们高度建议在加入防火墙到测试结构前,应尽可能地简化网络连接。

  一旦你确定了测试设备的工作限制,在Avalanche/Reflector之间“插入”防火墙,这样一来,可以排除测试设备所引起的问题。万一测试失败,我们就可以假设是由防火墙引起的测试失败。

4.1.2 要求

  ◆Avalanche和Reflector(或者是SmartBit/WebAvalanche卡)

  ◆可管理的2/3层交换机(交换机吞吐量应该比防火墙的吞吐量大得多)

  ◆控制接口-有以太网端口的任何PC并且具有具有浏览器、JVM和Adobe acrobat软件。

4.1.3需要设定的工作参数

  ◆使用HTTP 1.0和FTP的每秒建立连接数(CPS)
  
  ◆最大并发连接数(HTTP和FTP)

4.1.4 运行“基本防火墙测试”

  1.如图1所示连接Avalanche、Reflector、管理控制端口和3层交换机。

  2.确定所有设备有正确的IP地址

  ◆Avalanche管理地址:192.168.42.2(默认)

  ◆Reflector管理地址:192.168.42.3(默认)

  ◆管理控制地址:192.168.42.5(这这次测试的特定地址)

  3.复制Reflector上的“Echo”到一个新的测试中,称为“FW Basic Reflector”

图1:定义Avalanche,Reflector操作极限 

 ◆设置服务器支持HTTP 1.0和FTP(1KB文件大小)

  ◆确保测试可以到达稳定状态

4.在Avalanche上配置“Firewall Basic”测试

  选择一个预先配置好的测试(SPI)并复制它到“Firewall Basic”测试中。

  你现在可以修改“Firewall Basic”并可以另存为一个新测试。

     ◆设置客户端流量包括两种协议,在user-profiles中的HTTP 1.0和FTP

     ◆配置Load Spec来测试你想得到的极限值。

     例如,假如防火墙的基准测试结果是每秒新建连接1000个,10000个并发连接数-这是测试后所得的参数-运行两个分离的测试以确保测试结构的结果满足或超过基准测试结果

  使用“连接/秒”作为load-spec,确定你可以超过1000CPS的值来运行测试。

  使用同一个load-spec,确保在测试运行的“稳定阶段”可以维持超过10000个的连接。

5.检查网络端口配置并运行Avlanche的“Firewall Basic”

6.调试可能由于不恰当网络配置或者在交换机/设备之间的以太网连接所引起的问题。失败情况可能包括:

  ◆流量遗漏——特别是假如测试运行在了很长的时间间隔(48小时)—这可能是一个内存遗漏

   ◆新进入连接超时

  当进行有效流量时,进入流量的重置。

7.确保Avalanche/Reflector和以3层为基础的测试床其操作极限要远远高于被测试的防火墙。

  当维持过程中没有显示“no failing test”时,逐步提高load-spec。

  一定要注意“Firewall Basic”测试中指定的测试床工作极限。

  当没有失败测试时,你就应该准备把防火墙加入到测试床中进行压力和负载测试,建立更加贴近现实的“Firewall Basic”测试。

图2:指定测试负载情况下的CPS和最大开放连接数

4.2 “Firewall Stress”-防火墙压力测试

4.2.1 目标

  定义防火墙的操作参数极限,例如每秒连接数和开放连接数。

4.2.2 额外的要求

  防火墙典型分为外部、内部和DMZ端口

  注意:除防火墙进入测试床所引起的必要配置变化以外,应该保证测试床配置变化的最小化。与“Firewall Basic”相比,防火墙压力测试的焦点则更集中于防火墙本身。

4.2.3 需要建立的操作参数

  ◆使用HTTP或者FTP的每秒建立连接数(cps)

  ◆最大的并发连接数(http和FTP)

4.2.4 运行“防火墙压力测试”

  1.如图3所示把防火墙连接到测试床中

  2.配置适当的网络IP地址

图3:防火墙负载和防火墙压力测试结构图 

  在Avalanche和Reflector上标明典型防火墙的3个端口,分别是外部(不受保护的)、DMZ(不受保护的)和内部(受保护的)端口。

  a)Reflector

    i)DMZ(受到的保护比较少)服务器:10.10.10.10 ,虚拟路由器:10.10.10.2

    ii)内部(受到保护)服务器:11.11.11.10,虚拟路由器:11.11.11.2

  b)Avalanche
   
    i)客户端(未受到保护的):192.168.0.20-126,虚拟路由器:192.168.0.2

    ii)客户端(未受保护的):192.168.0.130-254,虚拟路由器:192.168.0.129

  以上两个客户端源需要创造很大数量的用户,一个客户端源建议生成访问DMZ服务器的流量,另外一个模拟访问Reflector上需要保护的服务器。

  防火墙IP地址设置(数据端口):

  a)内网地址(受保护的):11.11.11.1

  b)内部地址(DMZ):10.10.10.1

  c)外部地址(未受保护的)192.168.0.1

  d)防火墙配置(在串口上)

配置防火墙:

  以下是一个典型防火墙所需要配置的样例文件。它包含了网络IP地址和策略,也只是简单地完成了“允许http”和“允许ftp”规则设置(每个厂商的语法要求都是有些变化的)。注意到这只是一个例子来演示测试方法;每一家防火墙厂商都会有不同的配置脚本和工具。

  nameif etherneto outside securit0

  nameif ethernet1 inside security100

  interface etherneto auto

  interface ethernet1 auto

  ip address outside 192.168.0.1 255.255.0.0

  ip address inside 10.10.10.1 255.255.255.0

  arp timeout 14400

  static(inside,outside) 10.10.10.10 10.10.10.10

  static(inside,outside) 10.10.10.11 10.10.10.11

  conduit(inside,outside) 10.10.10.10 80 tcp 0.0.0.0 0.0.0.0

  conduit(inside,outside) 10.10.10.11 21 tcp 0.0.0.0 0.0.0.0

  route outside 192.168.0.128 255.255.255.128 192.168.0.129

  route outside 192.168.0.0 255.255.255.128 192.168.0.2

  timeout xlate 24:00:00 conn 12:00:00 udp 0:02:00

  timeout rpc 0:10:00 h323 0:05:00 uauth 0:05:00

  no snmp-server location

  no snmp-server contact

  snmp-server community public   

  mtu outside 1500

  mtu inside 1500

3.选择并且复制“Firewall Basic”到“Firewall Stress CPS”中

4.修改指定负载来校准CPS:

  使用70%的宣称基准值以确保你有一个成功的结果

 

图4:决定防火墙的最大CPS值

  逐步修改测试伊始的Avalanche的CPS值,使用稳定阶段和拆卸阶段的值来确定总共的CPS值——反应了每个测试步骤地总共值(不同的测试阶段)——最后测试值应超过基准测试值的30-50%。

5.运行“Firewall Stress CPS”

6.在Avalanche上的用户配置文件中加入URL,以混合进FTP协议测试,此外还要在Reflector上配置FTP服务器。
 
  和生存周期比较短的HTTP连接相比,FTP交易的生存周期则比较长并且会消耗防火墙内存资源(连接表)。新的连接会消耗防火墙CPU和内存资源。和FTP相关的连接表消耗了防火墙内存资源,你应该关注图4中断点(breakpoint)左侧的CPS数值。图5则展示了CPS动态变化值。

注意:所有的参数值都会保持不变,仅仅是FTP会导致CPS值75%的跌落。你的防火墙会有不同的断点。

  防火墙厂商没有必要提供以上这些数据,加入更多的协议(例如RTSP/RTP)则会要求防火墙内更多的内在资源,从而导致防火墙性能的动态下降。

注意:在图5中:一个URL的HTTP 1.0和FTP其连接数和每秒交易数量(TPS)是1:1的关系,因此TPS和CPS的标签是相同的。

图5:CPS受到了多协议测试的影响

7.衡量由于FTP负载所引起的响应时间上升

  当逐步提高防火墙的CPS值时,数据包通过防火墙的过程和响应延迟也会逐步提升。既然防火墙是Web服务器访问的看门人,所以提高延迟等同于减缓了用户访问Web服务器的时间,在一些情况下,访问时间会变得不可接受。

 

 图6:由于FTP加入了HTTP交易所已导致响应时间的上升

8.测试开放连接的最大并发连接数

  除了CPS测试(步骤5和步骤6),并发连接也是防火墙基准测试中的关键参数。以下步骤显示了如何进行并发连接数测试:

  打开“Firewall Stress”测试并将其复制到“FW Open”。

  变化负载配置文件来反映SimUser,将此作为负载而不是CPS。在开始的并发用户数设置为40个。逐步提高并发用户数,直到测试失败。

  在运行的样例文件中,SimUser数量的中度提高(45以上)已经导致了事务超时。没有完成的事务减少了服务器的可用性并且降低了性能以致最后到达了不可接受的地步。

  除了CPS和连接数测试,我们也应该利用多协议进行一些诸如PPS(packers per second)和吞吐量测试,而这也被称为防火墙压力测试。

4.4“Firewall Load”-防火墙负载测试

4.4.1 目标

  定义在多个以IP协议为基础的流量下和DoS攻击下防火墙的操作极限:防火墙会在负载和攻击下仍然保持可用性吗?

4.4.2额外要求

  所有协议软件应被捆绑入DDoS包内。

4.4.3 运行“Firewall Load”

1.选择并且复制“Firewall Stress”到“Firewall Load”中

  新建一个流量负载,流量负载代表你的网络流量包含了多个协议。

  例如,你可以新建用户配置文件,这个文件代表一个流量包括了多个权重的应用流量,如HTTP(20%)、FTP(20%)、SMPT(40%)、RTSP(20%)和HTTPS(20%)。指明的权重是任意的——选择权重来反映现实通过防火墙的流量。

  Reflector一方需要配置的:

  再次运行修改过的“Firewall Load”

    修改指定的负载,假如需要。

     确定没有失败测试。

2.再次配置防火墙以打开多协议

  以下是修改防火墙配置的例子

  static(inside,outside)10.10.10.10 10.10.10.10

  static(inside,outside)10.10.10.11 10.10.10.11

  static(inside,outside)10.10.10.12 10.10.10.12

  static(inside,outside)10.10.10.13 10.10.10.13

  mailhost(inside,outside)10.10.10.14 10.10.10.14 10 11

  conduit(inside,outside)10.10.10.10 80 tcp 0.0.0.0 0.0.0.0

  conduit(inside,outside)10.10.10.11 21 tcp 0.0.0.0 0.0.0.0

  conduit(inside,outside)10.10.10.12 554 tcp 0.0.0.0 0.0.0.0

  conduit(inside,outside)10.10.10.13 443 tcp 0.0.0.0 0.0.0.0

  conduit(inside,outside)10.10.10.14 25 tcp 0.0.0.0 0.0.0.0

  route outside 192.168.0.0 255.255.255.128 192.168.0.21

  route outside  192.168.0.128 255.255.255.128 192.168.0.129 1

  timeout xlate 24:00:00 conn 12:00:00 udp 0:02:00

  timeout rpc 0:10:00 h323 0:05:00 uauth 0:05:00

3.运行“Firewall Load”并且监视Avalanche上的实时结果。

  例如,单击HTTP(见图7)和RSTP标签(见图8)。Avalanche展示了测试过程中每个协议的实时统计数据,并且测试后也有电子表格统计数据。

图7:“Firewall Load”中HTTP实时测试结果

图8:“Firewall Load”中RTSP实时测试结果

4.提高用户数量定义性能的下降

  不断提高虚拟用户的数量(Simusers),可以快速定义受保护Web服务器(用Reflector来模拟)的页面响应时间或者是媒体服务器的流响应时间下降阀值点。

  仅仅单独提高虚拟用户的数量是不充足的。“实时测试”不仅要求很大数量的用户同时要求多个不同的IP协议以体现少有的应用访问。Avalanche可以观察到通过防火墙的每个用户所使用的每个协议的延迟是否能满足你的响应时间要求。这是完全有可能的,利用Avalanche的“实时”测试可以揭示出40个并发用户通过防火墙访问的双向延迟是否是可接受的。无论如何,如以下图9所展示的,对于混合多种应用环境来说(HTTP,HTTPS和FTP),45个或者更多的并发用户可能导致非常高和不规则的响应时间。

  假如同一个应用条件又包括进RTP/RTSP、Telnet、DNS、SMPT和另外的IP协议(Avalanche支持所有应用类型),通过防火墙的延迟将会变得很糟糕。

图9:提高并发用户数导致“Firewall Load”性能的下降

5.将模拟DDoS攻击加入测试中。
 
  今日大部分防火墙常常遭到黑客的攻击,这些黑客试图闯入你的网络。DDoS攻击使用假IP地址进行攻击并且持续不断的更换形式。Avalanche可以将DDoS攻击作为流量的一部分通过防火墙,从而更加精确地模拟了现实网络。

   现在你可以测试不好的DDoS流量对于正常流量的影响,这可通过变化混合的流量比例来实现

    ◆保持DDoS流量不变(例如是5%),而这时改变多协议正常流量的比例(例如是SMTP:FTP:HTTP:HTTPS以45:15:30:10的比例混合)

    ◆变化DDoS流量(例如从3、5到8%),正常流量的比例同上。

    ◆两者都变化——在修改DDoS流量的同时也修改正常流量的比例。

  以上3种独立测试可以验证你的防火墙在攻击下是否可以继续保持可用性,并且通过防火墙的传输延迟是否也可以保持在一个可接受的水平。

  以下展示了关于以上描述的测试案例

    为了将DDoS攻击作为现实流量的一部分,在Avalanche上打开“Firewall Load”并打开“Inline DDoS”选项。(见图10)

    你将会看到一个测试列表,例如Ping of Death、Smurf、SYN floods和其他一些攻击。

    单击你所需要的攻击类型并编辑每个攻击相关的变量。关于每个攻击变量编辑的详细内容,您可以使用Avalanche用户手册进行详细查阅。

    除此之外,你也可以使用脚本功能来操纵以太网帧每个数据包中比特级的详细内容来定义攻击,假如你需要的话。

图10:使用Inline DDoS选项配置一个DDoS攻击

  图11显示了中等数量的DDoS攻击如何使你的防火墙可用性下降的。注意在一个4~5秒期间(在此例中,大约是从02:50至02:56),在攻击下没有建立新的TCP连接。 

图11:在遭受到DDoS攻击下,TCP性能下降。

  假如在很长的一段时间内,防火墙都不能建立一个新的连接,那么在这段时间内,它就会变得不可用,甚至是在攻击后的恢复阶段。这是一个非常重要的发现,它会帮助你认识到防火墙在攻击下的可用性,在这时防火墙会成为整个IT应用的瓶颈。

图12:在遭受到DDoS攻击下,响应时间也变大

  通过我们完成包含进DDoS攻击的“Firewall Load”测试后,注意到以下几点:

     ◆在DDoS攻击阶段,HTTP和FTP服务会完全停止!

     ◆一些RTSP流还保持了活动状态而TCP连接开始被重置。

     某些特别的防火墙在受到攻击后,会优先处理SMPT/E-mail。因此,即使是HTTP和FTP的处理被中断了,防火墙会继续处理邮件。

      有些防火墙也许会用完全shut down来代替恢复。我们建议运行DDoS注入测试的时间应该保持很长的一段时间,因为目前的防火墙经常会受到来自于公共Internet的攻击。

      即使是攻击过后,防火墙的恢复时间仍然很长。例如,如图12显示,甚至是在恢复后,HTTP的响应时间达到了一分钟——这对于电子商务类型的应用来说,这是不可接受的。

  到此为止我们已经讨论完新建防火墙基本测试、压力和负载测试的过程。在利用Avalanche/Reflector测试百兆防火墙的过程中,我们有如下发现:

      ◆HTTP应用的CPS测试值超过了2400,但是混合其他应用(如FTP)以后CPS值则下降了大约75%。

      ◆超大的CPS会导致流量速度减慢,很可能会导致不可接受。

      ◆当开发连接到达120000时——一些事务可能不能完成

      ◆当有40个并发用户数时,混合流量可以满足服务等级协定(Service Level Agreements,SLA),如果要想支持更多的用户要求,则需要对防火墙进行更高等级的性能升级。

      ◆在DDoS攻击期间,防火墙不允许HTTP或者FTP流量的访问。邮件流量是绝对安全的,如果某些防火墙保证SMPT吞吐量有绝对优先级的话。

0
相关文章