可以配置PIX防火墙使之有选择地允许某些流量通过其接口,这些配置方式有:基于源地址或目的地址;基于服务类型;基于验证、授权和计费(AAA)需求;基于内容或目的URL。ACL是由路由器和PIX防火墙维护的用来控制流量的一个列表。内容过滤可以阻止特定类型的内容(比如Javaapplets,ActiveX控件等)进入你的网络,还可以用来控制和阻止网络内部主机对受限的web站点的访问。一、访问控制列表使用access-list和access-group这两条命令可以实现ACL。access-list命令用来创建ACL,access-group命令用来把ACL绑定到路由器或PIX防火墙的特定接口上。使用access-group命令在一个接口上只能绑定一个ACL。与使用CiscoIOS的路由器不同的是,在PIX防火墙上使用access-group命令只能将ACL绑定到任意接口的入站流量上。不过,在PIX防火墙上仍然能控制出站流量(例如,从inside接口到outside接口),但是必须使用access-groupacl_idininterfaceinside命令将ACL绑定到inside接口上,从而控制从内部主机到inside接口的流量。access-list和access-group命令可以代替outbound或者conduit命令,且access-list和access-group命令具有较高的优先级。当用来允许或拒绝流量时,access-list命令与conduit命令遵循同样的原理和规则。以下是设计和实现ACL时遵循的规则:●从较高到较低的安全性:-用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-listSAMPLEACLpermittcpanyhost192.168.1.1eqftpshowaccess-list命令可以列出配置中的access-list命令语句,还可以列出access-list命令搜索过程中各元素的匹配命中统计。在6.3版本中,还可以显示出所有添加到ACL中的注释和每个条目的行编号。clearaccess-list命令将从配置中删除所有的access-list命令语句。如果指定了clearaccess-list命令中的acl_id参数,那么仅仅删除与该参数对应的ACL。如果指定counters选项,那么将清除指定ACL的匹配命中统计。使用clearaccess-list命令的同时会阻止与被影响的access-list命令语句相关的所有流量通过PIX防火墙。使用noaccess-list命令时,如果所提供的参数与已有的特定命令相匹配,那么将从配置中删掉该命令。当使用noaccess-list命令且仅指定相关ACL的名称时,整个ACL将被删除。如:noaccess-listout_in如果一个ACL组中所有的access-list命令语句都已被删除,那么noaccess-list命令相当于从配置中删除相应的access-group命令。处理子网掩码的顺序相反之外,access-list命令在PIX防火墙中与CiscoIOS软件中的语法是一样的。如,在CiscoIOS中access-list命令指定的子网掩码为0.0.0.255,那么在PIX防火墙中access-list命令将指定该子网掩码为255.255.255.0。以下列出了access-list命令的语法:access-listacl_ID[lineline_num]deny|permitprotocolsource_addrsource_mask[operatorport[port]]destination_addrdestination_maskoperator[port[port]]access-listacl_ID[lineline_num]deny|permiticmpsource_addrsource_maskdestination_addrdestination_mask[icmp_type]access-listacl_ID[lineline_num]remarktextshowaccess-listclearaccess-list[acl_ID][acl_IDcounters]对于入站连接来说,destination_addr指经过NAT转换后的地址;对于出站连接来说,source_addr指未经NAT转换的地址。access-group命令用来绑定一个ACL到一个接口。ACL用来控制一个接口的入站流量(这点与路由器上的ACL不同,在PIX上没有出站ACL)。使用access-group命令在一个接口上只能绑定一个ACL。noaccess-group命令可以解除绑定在接口interface_name上的以参数acl_ID表示的ACL。showaccess-group命令用来列出当前绑定在接口上的ACL。clearaccess-group命令将删除以参数acl_ID表示的ACL中的所有条目。如果未指明参数acl_ID,那么配置中所有access-list命令语句都会被删除。以下列出了access-group命令的语法:access-groupacl_IDininterfaceinterface_namenoaccess-groupacl_IDininterfaceinterface_nameshowaccess-groupacl_IDininterfaceinterface_nameclearaccess-group●acl_ID--与给定的ACL相关联的名称●ininterface--在给定的接口上过滤入站的数据包●interface_name--网络接口的名称nat命令可以为主机或网络启用NAT地址转换。nataccess-list将在nat命令的基础上实现策略NAT,可以只对与访问控制列表ACL中的条目相匹配的流量进行NAT转换。还可以使用nat0access-list命令对与ACL的条目相匹配的流量不进行地址转换。以下列出了nataccess-list命令的语法:nat[(if_name)]nat_idaccess-listacl_name[outside]●if_name--内部网络接口名称。如果该接口绑定了一个ACL,那么if_name参数就是拥有较高安全级别接口的名称●nat_id--在0和65535之间的一个整数。如果nat_id取值为0,则表示匹配ACL的流量将不进行NAT转换。如果nat_id在1和65535之间取值,则表示启用策略NAT●access-list--该参数使nat0命令与access-list命令相关联●acl_name--用于标识access-list命令语句的名称●outside--用于指定将nat命令应用到outside接口地址上。下面例子说明使用nat0access-list命令可以使内部主机10.0.0.11在连接到外部主机10.2.1.3时不经过NAT地址转换。pixfirewall(config)#access-listNONATpermitiphost10.0.0.11host10.2.1.3pixfirewall(config)#nat(inside)0access-listNONATTurboACL一个典型的ACL是由多个ACL条目组成,这些条目在PIX防火墙内被有序地组织起来形成一个链表。当使用访问控制列表来处理数据包时,PIX防火墙顺序地查找该链表以发现匹配地条目。被匹配的条目用来决定转发或丢弃该数据包。在线性的查找过程中,平均查找时间与ACL的大小成正比。TurboACL通过让PIX防火墙重新编辑ACL表格,在ACL包含大量条目时可以提高平均查找时间。可以先对所有ACL启用该特性,然后再针对特定的ACL禁用该特性;也可以为某个特定的ACL启用该特性。对于较短的ACL来说,TurboACL特性不会提高性能。一个TurboACL查询一个任意长度的ACL所需要的时间,与在一个大约由12到18个条目构成的ACL中进行常规的查询所需的时间大致是相同的。因此,TurboACL特性既是被启用,也仅仅被用到包含19个甚至更多条目的ACL上。TurboACL最少需要2.1MB的内存而且每2000条ACL条目大约需要1MB的内存。实际所需的那促不仅与ACL中所拥有的条目数量有关,而且还和条目的复杂程度有关。因此比较适合在高端PIX防火墙上使用,例如PIX防火墙525或535。当在启用TruboACL特性的ACL中添加或删除某个条目时,与该ACL相关联的内部数据表格将重新生成,这对PIX防火墙的CPU所增加的负担是不可忽略的。501型号的PIX防火墙不支持TurboACL。TurboACL特性可以统一配置,也可以针对每个ACL逐个配置。用access-listcompiled命令可以为所有包含19个或更多条目的ACL启用TurboACL特性。该命令将使TurboACL处理过程扫描所有现有的ACL。在扫描期间,将给每个ACL添加Turbo配置标记,并为包含19个以上条目的且尚未被编辑的ACL进行编辑。可以使用access-listacl_IDcompiled命令为单独的ACL启用turboACL特性,还可以在统一配置TurboACL后使用该命令的no形式为特定的ACL关闭该特性。noaccess-listcompiled命令缺省地会使PIX防火墙的TurboACL处理过程扫描所有编辑过的ACL,并且将每个ACL标记为non-Turbo,还会删除所有存在的TurboACL结构。使用showaccess-list命令可以查看TurboACL配置情况。在配置了TurboACL的情况下,该命令会输出每个经过Turbo编辑的ACL的内存使用情况和所有这些ACL共享的内存使用情况,当没有ACL被Turbo编辑过,那么不会输出Turbo统计。二、把conduit转换成ACL在PIX防火墙配置中建议使用ACL而不是conduit。access-list命令在PIX防火墙中与CiscoIOS中使用相同的语法,但是两者由一个很重要的区别。在PIX防火墙中,access-list命令与其他命令一样指定子网掩码,这一点与CiscoIOS版本中的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根本不