PIX访问控制列表和内容过滤(1) 以配置PIX防火墙使之有选择地允许某些流量通过其接口,这些配置方式有:基于源地址或目的地址;基于服务类型;基于验证、授权和计费(AAA)需求;基于内容或目的URL。 www.2cto.com ACL是由路由器和PIX防火墙维护的用来控制
PIX访问控制列表和内容过滤(1)
以配置PIX防火墙使之有选择地允许某些流量通过其接口,这些配置方式有:基于源地址或目的地址;基于服务类型;基于验证、授权和计费(AAA)需求;基于内容或目的URL。
www.2cto.com
ACL是由路由器和PIX防火墙维护的用来控制流量的一个列表。内容过滤可以阻止特定类型的内容(比如Java applets,ActiveX控件等)进入你的网络,还可以用来控制和阻止网络内部主机对受限的web站点的访问。
一、访问控制列表
使用access-list和access-group这两条命令可以实现ACL。
access-list命令用来创建ACL,access-group命令用来把ACL绑定到路由器或PIX防火墙的特定接口上。使用access-group命令在一个接口上只能绑定一个ACL。
与使用Cisco IOS的路由器不同的是,在PIX防火墙上使用access-group命令只能将ACL绑定到任意接口的入站流量上。不过,在PIX防火墙上仍然能控制出站流量(例如,从inside接口到outside接口),但是必须使用access-group acl_id in interface inside命令将ACL绑定到inside接口上,从而控制从内部主机到inside接口的流量。
access-list和access-group命令可以代替outbound或者conduit命令,且access-list和access-group命令具有较高的优先级。
当用来允许或拒绝流量时,access-list命令与conduit命令遵循同样的原理和规则。以下是设计和实现ACL时遵循的规则:
●从较高到较低的安全性: www.2cto.com
-用ACL来限制出站流量;
-ACL命令中的源地址是主机或网络的实际地址。
●从较低到较高的安全性:
-用ACL来限制入站流量;
-ACL命令中的目的地址是经过转换的全局地址。
access-list命令使你可以指明允许或拒绝某IP地址访问某端口或协议。缺省情况下,访问列表中的所有访问都是被拒绝。因此,需要允许访问时必须明确指出。
在PIX防火墙6.3中加入了对ACL编辑及注释的支持。该版本中可以为特定的ACL条目指定行编号,并把它放到ACL中的任意位置。
当把主机的IP地址作为源或目的地址时,可以使用关键字host来代替网络掩码255.255.255.255。例如,下列ACL允许到主机192.168.1.1的FTP流量:
access-list SAMPLEACL permit tcp any host 192.168.1.1 eq ftp
show access-list命令可以列出配置中的access-list命令语句,还可以列出access-list命令搜索过程中各元素的匹配命中统计。在6.3版本中,还可以显示出所有添加到ACL中的注释和每个条目的行编号。
clear access-list命令将从配置中删除所有的access-list命令语句。如果指定了clear access-list命令中的acl_id参数,那么仅仅删除与该参数对应的ACL。如果指定counters选项,那么将清除指定ACL的匹配命中统计。
使用clear access-list命令的同时会阻止与被影响的access-list命令语句相关的所有流量通过PIX防火墙。
使用no access-list命令时,如果所提供的参数与已有的特定命令相匹配,那么将从配置中删掉该命令。
当使用no access-list命令且仅指定相关ACL的名称时,整个ACL将被删除。如:no access-list out_in
如果一个ACL组中所有的access-list命令语句都已被删除,那么no access-list命令相当于从配置中删除相应的access-group命令。
处理子网掩码的顺序相反之外,access-list命令在PIX防火墙中与Cisco IOS软件中的语法是一样的。如,在Cisco IOS中access-list命令指定的子网掩码为0.0.0.255,那么在PIX防火墙中access-list命令将指定该子网掩码为255.255.255.0。
以下列出了access-list命令的语法:
access-list acl_ID [line line_num] deny | permit protocol source_addr source_mask [operator port [port]] destination_addr destination_mask operator [port [port]]
access-list acl_ID [line line_num] deny | permit icmp source_addr source_mask destination_addr destination_mask [icmp_type]
access-list acl_ID [line line_num] remark text
show access-list
clear access-list [acl_ID] [acl_ID counters]
对于入站连接来说,destination_addr指经过NAT转换后的地址;对于出站连接来说,source_addr指未经NAT转换的地址。
access-group命令用来绑定一个ACL到一个接口。ACL用来控制一个接口的入站流量(这点与路由器上的ACL不同,在PIX上没有出站ACL)。使用access-group命令在一个接口上只能绑定一个ACL。
no access-group命令可以解除绑定在接口interface_name上的以参数acl_ID表示的ACL。
show access-group命令用来列出当前绑定在接口上的ACL。
clear access-group命令将删除以参数acl_ID表示的ACL中的所有条目。如果未指明参数acl_ID,那么配置中所有access-list命令语句都会被删除。
以下列出了access-group命令的语法:
access-group acl_ID in interface interface_name
no access-group acl_ID in interface interface_name
show access-group acl_ID in interface interface_name
clear access-group
●acl_ID--与给定的ACL相关联的名称
●in interface--在给定的接口上过滤入站的数据包
●interface_name--网络接口的名称
nat命令可以为主机或网络启用NAT地址转换。nat access-list将在nat命令的基础上实现策略NAT,可以只对与访问控制列表ACL中的条目相匹配的流量进行NAT转换。还可以使用nat 0 access-list命令对与ACL的条目相匹配的流量不进行地址转换。
以下列出了nat access-list命令的语法:
nat [(if_name)] nat_id access-list acl_name [outside]
●if_name--内部网络接口名称。如果该接口绑定了一个ACL,那么if_name参数就是拥有较高安全级别接口的名称
●nat_id--在0和65535之间的一个整数。如果nat_id取值为0,则表示匹配ACL的流量将不进行NAT转换。如果nat_id在1和65535之间取值,则表示启用策略NAT
●access-list--该参数使nat 0命令与access-list命令相关联
●acl_name--用于标识access-list命令语句的名称
●outside--用于指定将nat命令应用到outside接口地址上。
下面例子说明使用nat 0 access-list命令可以使内部主机10.0.0.11在连接到外部主机10.2.1.3时不经过NAT地址转换。
pixfirewall(config)#access-list NONAT permit ip host 10.0.0.11 host 10.2.1.3
pixfirewall(config)#nat (inside) 0 access-list NONAT
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统计。