|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
Turbo ACL
一个典型的ACL是由多个ACL条目组成,这些条目在PIX防火墙内被有序地组织起来形成一个链表。当使用访问控制列表来处理数据包时,PIX防火墙顺序地查找该链表以发现匹配地条目。被匹配的条目用来决定转发或丢弃该数据包。在线性的查找过程中,平均查找时间与ACL的大小成正比。
Turbo ACL通过让PIX防火墙重新编辑ACL表格,在ACL包含大量条目时可以提高平均查找时间。可以先对所有ACL启用该特性,然后再针对特定的ACL禁用该特性;也可以为某个特定的ACL启用该特性。对于较短的ACL来说,Turbo ACL特性不会提高性能。一个Turbo ACL查询一个任意长度的ACL所需要的时间,与在一个大约由12到18个条目构成的ACL中进行常规的查询所需的时间大致是相同的。因此,Turbo ACL特性既是被启用,也仅仅被用到包含19个甚至更多条目的ACL上。
Turbo ACL最少需要2.1MB的内存而且每2000条ACL条目大约需要1MB的内存。实际所需的那促不仅与ACL中所拥有的条目数量有关,而且还和条目的复杂程度有关。因此比较适合在高端PIX防火墙上使用,例如PIX防火墙525或535。当在启用Trubo ACL特性的ACL中添加或删除某个条目时,与该ACL相关联的内部数据表格将重新生成,这对PIX防火墙的CPU所增加的负担是不可忽略的。
501型号的PIX防火墙不支持Turbo ACL。
Turbo ACL特性可以统一配置,也可以针对每个ACL逐个配置。用access-list compiled命令可以为所有包含19个或更多条目的ACL启用Turbo ACL特性。该命令将使Turbo ACL处理过程扫描所有现有的ACL。在扫描期间,将给每个ACL添加Turbo配置标记,并为包含19个以上条目的且尚未被编辑的ACL进行编辑。
可以使用access-list acl_ID compiled命令为单独的ACL启用turbo ACL特性,还可以在统一配置Turbo ACL后使用该命令的no形式为特定的ACL关闭该特性。
no access-list compiled命令缺省地会使PIX防火墙的Turbo ACL处理过程扫描所有编辑过的ACL,并且将每个ACL标记为non-Turbo,还会删除所有存在的Turbo ACL结构。
使用show access-list命令可以查看Turbo ACL配置情况。在配置了Turbo ACL的情况下,该命令会输出每个经过Turbo编辑的ACL的内存使用情况和所有这些ACL共享的内存使用情况,当没有ACL被Turbo编辑过,那么不会输出Turbo统计。
二、把conduit转换成ACL
在PIX防火墙配置中建议使用ACL而不是conduit。
access-list命令在PIX防火墙中与Cisco IOS中使用相同的语法,但是两者由一个很重要的区别。在PIX防火墙中,access-list命令与其他命令一样指定子网掩码,这一点与Cisco IOS版本中的access-list命令是完全不同的。
ACL和conduit最重要的相同点大概就是两个命令都可以结合static命令来允许或拒绝从PIX防火墙的外部网络到位于内部网络上主机的TCP/UDP服务的访问。更确切地说,这两个命令都可以用来允许或拒绝从具有较低安全级别地接口到具有较高安全级别地接口地连接。
conduit定义了可以在这两个接口之间流动地流量,且通过允许从一个接口访问位于另一个接口上的主机,在PIX防火墙的适应性算法(ASA)中创建了一个例外。相比而言,在access-group命令中用到的access-list命令仅仅作用于耽搁接口上,且会影响进入该接口的所有流量,而不管该接口的安全级别。同时,ACL在最后由一条隐含的deny规则。一旦在一个接口上应用ACL,进入该接口的所有inbound数据包必须遵守该ACL的规则,而不管该接口的安全级别。
下面列出ACL和conduit的特性:
●access-list命令只有通过access-group命令将其捆绑到一个接口上才能控制访问,而conduit根本不需要绑定到一个接口上;
●配置时,access-list和access-group命令比conduit命令具有更高的优先级;
●ACL比conduit更灵活。可以限制从具有较高安全级别的接口到具有较低安全级别的接口的连接,也可以允许或拒绝从拥有较低安全级别的接口到拥有较高安全级别的接口的连接。
由于在未来版本的PIX防火墙中将不提供对conduit的支持,所以有必要将配置中已有的conduit命令转换成ACL。
conduit permit | deny protocol global_ip global_mask operator port [port] foreign_ip foreign_mask [operator port [port]]
access-list acl_ID [line line_num] deny | permit protocol source_addr source_mask [operator port [port]] destination_addr destination_mask operator port [port]
将conduit命令中的参数搬到access-list命令中来使用,可以把conduit转换成ACL。这种变动的确有效,因为conduit命令中的foreign_ip参数与access-list命令中的source_addr参数是相同的,conduit命令中的global_ip参数与access-list命令中的destination_addr参数是相同的。以下是把conduit命令替换为access-list命令的例子。
access-list acl_ID permit | deny protocol foreign_ip foreign_mask [foreign_operator foreign_port [foreign_port]] global_ip global_mask global_operator global_port [global_port]
下面列出一条conduit命令语句及其与之等价的access-list命令语句。
conduit permit tcp host 172.18.0.10 eq ftp 172.18.0.0 255.255.255.0
access-list 102 permit tcp 172.18.0.0 255.255.255.0 host 172.18.0.10 eq ftp
三、使用ACL
在下面所示的网络,在inside接口上使用名为acl_out的ACL来控制入站流量。该ACL拒绝来自内部网络的HTTP连接,而允许其他所有的IP流量通过。在inside接口上使用这个ACL可以限制内部用户建立通向外部的连接。
为允许出站连接,内部网络地址(10.0.0.0)被动态转换为从192.168.0.20到192.168.0.254之间的地址。
下面列出了实现上图所描述的网络拓扑结构的ACL配置。
pixfirewall(config)#write terminal
...
nameif ethernet0 outside sec0
nameif ethernet1 insside sec100
access-list acl_out deny tcp any any eq www
access-list acl_out permit ip any any
access-group acl_out in interface inside
nat (inside) 1 10.0.0.0 255.255.255.0
global (outside) 1 192.168.0.20-192.168.0.254 netmask 255.255.255.0
如下图所示的网络,在outside接口上使用名为acl_in_dmz的ACL来控制入站流量。该ACL只允许从Internet Web服务器通过80端口的web连接,而拒绝其他所有到DMZ或内部网络的IP访问。
当从外部网络访问DMZ上的web服务器时,需要将外部地址(192.168.0.11)静态转换成DMZweb服务器的地址(172.16.0.2)。
下面列出了实现上图所描述的网络拓扑结构的ACL配置。
pixfirewall(config)#write terminal
...
nameif ethernet0 outside sec0
nameif ethernet1 inside sec100
nameif ethernet2 dmz sec50
ip address outside 192.168.0.2 255.255.255.0
ip address dmz 172.16.0.1 255.255.255.0
static (dmz,outside) 192.168.0.11 172.16.0.2
access-list acl_in_dmz permit tcp any host 192.168.0.11 eq www
access-list acl_in_dmz deny ip any any
access-group acl_in_dmz in interface outside
如下图所示的网络,在Partnernet网络的接口上使用名为acl_partner的ACL来控制其入站流量。该ACL只允许172.18.0.0/28网络中的主机到DMZ中的Web服务器通过静态转换后的地址的web连接,而拒绝其他所有来自Partnernet网络的流量。
在DMZ接口上使用名为acl_dmz_in的ACL来控制其入站流量。该ACL仅允许主机172.16.0.4到inside接口上的内部mail服务器的mail访问,而拒绝其他所有来自DMZ网络的流量。
下面列出了实现上述要求的ACL配置:
pixfirewall(config)#write terminal
...
nameif ethernet0 outside sec0
nameif ethernet1 inside sec100
nameif ethernet2 dmz sec50
nameif ethernet3 partnernet sec40
static (dmz,partnernet) 172.18.0.17 172.16.0.2
static (inside,dmz) 172.16.0.11 10.0.0.4
access-list acl_partner permit tcp 172.18.0.0 255.255.255.0 host 172.18.0.17 eq www
access-group acl_partner in interface partnernet
access-list acl_dmz_in permit tcp host 172.16.0.4 host 172.16.0.11 eq smtp
access-group acl_dmz_in in interface dmz
如下图所示的VPN解决方案中,PIX防火墙上有两个专用接口直连到Cisco虚拟专用网络(VPN)集中器上。其中dmz接口连接到VPN集中器的public接口上,而dmz2接口连接到VPN集中器的private接口上。VPN集中器可以配置为从地址池10.2.21.33-62中为VPN客户端分配一个地址。
[img]/qzone/newblog/v5/editor/css/loading.gif[/img]
在PIX防火墙上为去往VPN客户端的出站流量定义了一条静态路由。为了允许VPN客户端与PIX防火墙内部网络中的主机之间进行通信,需要在PIX防火墙上配置一条静态转换。
在PIX防火墙上配置如下两个ACL,可以控制从Internet到PIX防火墙内部网络的入站流量和从VPN客户端到PIX防火墙内部网络的出站流量:
●名为IPSEC的ACL允许从Internet到VPN集中器上public接口的HTTPS流量,仅允许到VPN集中器的IPSEC流量。
●名为WEB的ACL允许从VPN客户端(10.0.21.33-62)到内部Web服务器(10.0.0.10)的HTTP流量。
下面列出了实现这种VPN环境所需的ACL配置。
pixfirewall(config)#write terminal
...
static (dmz,outside) 192.168.0.12 172.16.0.5 netmask 255.255.255.255 0 0
static (inside,dmz) 10.0.21.10 10.0.0.10 netmask 255.255.255.255
route dmz2 10.0.21.32 255.255.255.224 172.18.0.5 1
access-list IPSEC permit tcp any host 192.168.0.12 eq 443
access-list IPSEC permit esp any host 192.168.0.12
access-list IPSEC permit udp any host 192.168.0.12 eq isakmp
access-group IPSEC in interface outside
access-list WEB permit tcp 10.0.21.32 255.255.255.224 10.0.21.10 255.255.255.255 eq www
access-group WEB in interface dmz2
icmp命令
可以允许或禁止PING PIX防火墙上的接口。如果禁止PING,网络中就无法发现PIX防火墙。使用icmp命令可以实现这个功能。
缺省情况下,不允许穿过PIX防火墙来ping一个PIX防火墙上的接口。例如,内部主机ping不通PIX防火墙上的outside接口,却可以ping通PIX防火墙上的inside接口。
使用icmp命令时,通过配置icmp命令语句来允许或拒绝终止于PIX防火墙的ICMP流量。如果第一个匹配的条目包含permit,那么将继续处理ICMP数据包。如果第一个匹配的条目包含deny,或者没有匹配的条目,那么PIX防火墙将拒绝ICMP数据包并且产生%PIX-3-313001系统日志消息。不配置任何icmp命令语句是个例外,这时缺省为permit。
Cisco建议准许ICMP unreachable信息类型(Type3)。一旦拒绝ICMP unreachable信息,将不能自动发现ICMP路径最大传输单元(MTU),于是会中断IP安全(IPsec)和点到点隧道协议(PPTP)流量。
clear icmp命令用来从配置中删除icmp命令语句。
icmp命令的语法如下:
icmp permit | deny arc_addr src_mask [icmp-type] if_name
clear icmp
show icmp
●permit/deny--表示允许或拒绝ping PIX防火墙上的一个接口
●src_addr--表示被允许或被禁止ping PIX防火墙上的接口的地址。使用host src_add来指定单台主机
●src_mask--(可选)网络掩码。如果指定一个网络需要此参数
●icmp-type--ICMP消息类型
●if_name--允许ping的接口名称
下面的例子用来禁止outside接口上的ICMP echo-replies消息,而允许ICMP unreachable消息。
pixfirewall(config)#icmp deny any echo-reply outside
pixfirewall(config)#icmp permit any unreachable outside
ICMP 类型 ICMP 类型ICMP 类型 0 Echo-reply 9 Router-advertisement 15Information-request 3 unreachable 10 Router-solicitation 16 Information-reply 4 source-quench 11 Time-exceeded 17 Mask-request 5 redirect 12 Parameter-problem 18 Mask-reply 6 alternate-address 13 Timestamp-reply 31 Conversion-error 8 echo 14 Timestamp-request 32 Mobile-redirect
四、恶意活动代码过滤
1、Java Applet过滤
Java程序可能成为入侵内部系统的途径。为了解决该问题,通过启用Java过滤可以阻止内部系统下载Java applets。当允许访问80端口(HTTP)时,就有可能下载Java applets。某些Java applets可能包含隐藏代码,会破坏位于内部网络中的数据。
PIX防火墙的Java applet过滤可以针对每个客户端或者每个IP地址来阻止Java应用程序。当启用了Java过滤,PIX防火墙将搜索程序中的“cafe babe”字符串。一旦找到该字符串,防火墙将拒绝这个Java applet。典型的Java类代码段如下:
00000000:cafe babe 003 002d 0099 0900 8345 0098
2、ActiveX过滤
ActiveX控件,作为对象连接和嵌入(OLE)控件(OCX)的前身,是一种可以被嵌入在web页面中的小程序,经常用在动画后者其他应用程序中。ActiveX控件因提供了攻击服务器的途径而带来安全问题。因此,可以使用PIX防火墙阻止所有的ActiveX控件。
使用filter activex | java命令将过滤出站数据包中的ActiveX或者Java应用。
filter activex | java命令的语法如下:
filter activex | java port [-port] local_ip mask foreign_ip mask
●activex--用于阻止出站数据包中的ActiveX和其他HTML<object>标签
●java--用于阻止从出站连接返回的Java applets
●port--在PIX防火墙上接收Internet流量的端口
●local_ip--能访问的具有最高安全级别的接口的IP地址
●mask--通配符掩码
●foreign_ip--能访问的具有最低安全级别的接口的IP地址
当用户访问由alias命令指向的IP地址时,将不进行ActiveX过滤。
filter命令可以开启或关闭出站URL或HTML的过滤。下面列出了一些命令,用来过滤网络中来自内部主机到外部主机在80端口的ActiveX控件。
pixfirewall(config)#filter activex 80 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0
五、URL过滤
URL过滤应用程序能够为PIX防火墙提供URL过滤,能更有效地监视和控制网络流量。由于PIX防火墙本身没有URL过滤功能,所以必须通过使用URL过滤应用程序来过滤特定地URL。可以使PIX防火墙与WebSense或者N2H2 URL过滤应用程序合作来实现这个目的。
当PIX防火墙收到来自用户访问某URL的请求时,将查询URL过滤服务器来决定是否返回这个URL请求。而URL过滤服务器检查其配置来决定是否过滤该URL。如果该URL应该被过滤掉,那么URL过滤应用程序将显示出过滤信息或者使用户请求到某个指定的web站点的URL。
在使用URL过滤之前,必须至少指定一台服务器用来运行WebSense或N2H2 URL过滤应用程序,最多指定16台URL服务器。每次只能使用N2H2或WebSense中的一种应用程序。另外,在PIX防火墙上改动配置不会更新应用服务器的配置,必须依照各个厂商的说明书分别配置。
使用url-server命令来指定运行URL过滤服务的服务器,然后使用filter url命令来启用URL过滤服务。
WebSense中url-server命令的语法如下:
url-server [(if_name)] vendor websense host local_ip [timeout seconds] [protocol TCP | UDP version [1 | 4]
●if_name--认证服务器所在的网络接口名称。如果没有指定,缺省是inside。
●vendor websense--指明URL过滤服务的厂商是WebSense
●host local_ip--运行URL过滤应用程序的服务器
●timeout seconds--在PIX防火墙切换到下一个指定的服务器前所允许的最大空闲时间。缺省为5秒。
●protocol--可以使用TCP或UDP关键字来配置的协议。缺省为版本1的TCP协议。
●version--可以使用关键字1或4来配置的协议版本。缺省是TCP协议,版本为1。TCP协议可以使用版本1或4,UDP协议只能使用版本4。
N2H2中url-server命令的语法如下:
url-server [(if_name)] vendor n2h2 host local_ip [port number] [timeout seconds] [protocol TCP | UDP]
●if_name--认证服务器所在的网络接口名称。如果没有指定,缺省是inside。
●vendor n2h2--指明URL过滤服务的厂商是N2H2
●host local_ip--运行URL过滤应用程序的服务器
●port number--N2H2服务器端口。另外,PIX防火墙在该端口上监听UDP答复。缺省的端口号是4005
●timeout seconds--在PIX防火墙切换到下一个指定的服务器前所允许的最大空闲时间。缺省为5秒。
●protocol--可以使用TCP或UDP关键字来配置的协议。缺省为TCP
在指定完运行URL过滤应用程序的服务器后,使用filter url|ftp|https命令让PIX防火墙向该服务器发送适当的请求以便进行过滤。在版本为6.3的PIX防火墙上除了旧版本中所具有的URL过滤外,还支持FTP和HTTPS过滤。
下面例子中的命令的作用是让PIX防火墙向URL过滤服务器发送所有要被过滤的URL请求。在PIX防火墙上使用URL过滤时,filter命令中的allow选项至关重要。在URL过滤服务器处于离线状态时,如果使用了allow选项,PIX防火墙将不进行过滤而使所有URL请求继续前进;但是如果未使用allow选项,所有80端口的URL请求都将被阻止,直到服务器重新在线为止。
pixfirewall(config)#filter url http 0 0 0 0 allow
filter url|ftp|https命令的语法如下:
filter url port [-port] | except local_ip local_mask foreign_ip foreign_mask [allow] [proxy-block] [longurl-truncate | longurl-deny]
[cgi-truncate]
filter ftp port local_ip local_mask foreign_ip foreign_mask [allow] [interact-block]
filter https port local_ip local_mask foreign_ip foreign_mask [allow]
●url--从通过PIX防火墙的数据中过滤URL
●ftp--从通过PIX防火墙的数据中过滤FTP地址
●https--从通过PIX防火墙的数据中过滤HTTPS地址
●port--在PIX防火墙上接收Internet流量的端口。典型的端口是80,但是也可以使用其他值。可以使用http或url来代替80端口
●except--在以前的过滤条件下创建例外
●local_ip--可以访问的具有最高安全级别的接口的IP地址
●local_mask--local_ip的网络掩码
●foreign_ip--可以访问的具有最低安全级别的接口的IP地址
●foreign_mask--foreign_ip的网络掩码
●allow--当URL过滤服务器不能用时,使出站连接不进行过滤就能通过PIX防火墙
●proxy-block--防止用户连接到HTTP代理服务器
●interact-block--防止用户通过交互式FTP程序连接到FTP服务器
●longurl-truncate--无论URL缓存是否可用,都允许出站URL流量
●longurl-deny--如果URL超出URL缓存大小的极限或者URL缓存不可用,拒绝URL请求
●cgi-truncate--把CGI教本当作URL发送
长URL过滤
在版本为6.1和更早版本的PIX防火墙上,无法过滤大于1159字节的URL。在版本为6.2和更高版本的PIX防火墙上,用WebSense过滤服务器最多可以过滤长达4096字节的URL。还可以使用url-block url-size命令来增加所允许的单一URL的最大长度(只能用于WebSense)。
当用户发出一个长URL请求时,PIX防火墙会把该长URL拆成多个IP数据包并拷贝到缓存中。该URL随后通过TCP被发送到WebSense服务器上。可以使用url-block url-mempool命令来配置可供长URL使用的最大缓存。使用url-block url-size和url-block url-mempool这两个命令的no格式可以删除它们。
PIX防火墙不支持用于WebSense UDP服务器的长URL。
如果一个URL的长度仍然超出所允许的最大长度或者URL缓存不可用,可以在filter url命令中使用其他新选项来控制这种行为。当URL的长度超过了所允许的最大长度时,longurl-truncate选项将使PIX防火墙只向过滤服务器发送URL中的主机名或IP地址作为判断依据,longurl-deny选项用来阻止出站URL流量。
如果一个长URL请求是一个CGI请求,使用filter url命令中的新选项cgi-truncate可以加快其处理过程。当启用cgi-truncate选项时,PIX防火墙只向WebSense服务器传递CGI脚本名及位置作为URL。PIX防火墙省略了可能很长的参数列表。
在版本为6.2的PIX防火墙上,用url-block block命令可以使PIX防火墙在收到过滤服务器的响应前,把来自web服务器的响应记录在缓存中。这将减少客户端等待HTTP响应的时间。而在版本6.1或者更早的PIX防火墙上,来自web服务器的响应在收到过滤服务器的响应之前将被丢弃,从而导致客户端不得不等待web服务器重新发送响应。响应缓存特性是与WebSense和N2H2这两个过滤应用程序一起产生作用的。使用url-block block命令的no格式可以关闭响应缓存特性。
在版本为6.2的PIX防火墙上,用于N2H2过滤服务器时最大可支持1159字节的URL。
url-block命令的语法如下:
url-block url-mempool memory_pool_size
url-block url-size long_url_size
url-block block block_buffer_limit
●memory_pool_size--在2到10MB之间的最大可分配内存,取值范围为2到10000之间
●long_url_size--允许的最大URL长度,取值范围在2到6KB之间
●block_buffer_limit--在HTTP响应缓存中所允许的块数的最大值
下面说明了启用长URL过滤所需要的配置:
pixfirewall(config)#url-server (inside) vendor Websense host 10.0.0.30 timeout 5 protocol TCP version 1
pixfirewall(config)#filter url http 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 longurltruncate cgi-truncate
pixfirewall(config)#url-block url-mempool 1500
pixfirewall(config)#url-block url-size 4
出处:http://www.sxszjzx.com/~t096/phparticle/article.php/769 |
|