当前位置:文档之家› CISCO ACL配置详解

CISCO ACL配置详解

CISCO ACL配置详解什么是ACL?访问控制列表简称为ACL,访问控制列表使用包过滤技术,在路由器上读取第三层及第四层包头中的信息如源地址,目的地址,源端口,目的端口等,根据预先定义好的规则对包进行过滤,从而达到访问控制的目的。

该技术初期仅在路由器上支持,近些年来已经扩展到三层交换机,部分最新的二层交换机也开始提供ACL的支持了。

访问控制列表的原理对路由器接口来说有两个方向出:已经经路由器的处理,正离开路由器接口的数据包入:已经到达路由器接口的数据包,将被路由器处理。

匹配顺序为:"自上而下,依次匹配".默认为拒绝访问控制列表的类型标准访问控制列表:一般应用在out出站接口。

建议配置在离目标端最近的路由上扩展访问控制列表:配置在离源端最近的路由上,一般应用在入站in方向命名访问控制列表:允许在标准和扩展访问列表中使用名称代替表号访问控制列表使用原则1、最小特权原则只给受控对象完成任务所必须的最小的权限。

也就是说被控制的总规则是各个规则的交集,只满足部分条件的是不容许通过规则的。

2、最靠近受控对象原则所有的网络层访问权限控制。

也就是说在检查规则时是采用自上而下在ACL中一条条检测的,只要发现符合条件了就立刻转发,而不继续检测下面的ACL语句。

3、默认丢弃原则在CISCO路由交换设备中默认最后一句为ACL中加入了DENY ANY ANY,也就是丢弃所有不符合条件的数据包。

这一点要特别注意,虽然我们可以修改这个默认,但未改前一定要引起重视。

由于ACL是使用包过滤技术来实现的,过滤的依据又仅仅只是第三层和第四层包头中的部分信息,这种技术具有一些固有的局限性,如无法识别到具体的人,无法识别到应用内部的权限级别等。

因此,要达到端到端的权限控制目的,需要和系统级及应用级的访问权限控制结合使用。

一、标准访问列表访问控制列表ACL分很多种,不同场合应用不同种类的ACL.其中最简单的就是标准访问控制列表,标准访问控制列表是通过使用IP包中的源IP地址进行过滤,使用访问控制列表号1到99来创建相应的ACL.它的具体格式:access-list access-list-number [permit | deny ] [sourceaddress][wildcard-mask]access-list-number 为1-99 或者1300-1999之间的数字,这个是访问列表号。

例如:access-list 10 deny host 192.168.1.1这句命令是将所有来自192.168.1.1地址的数据包丢弃。

当然我们也可以用网段来表示,对某个网段进行过滤。

命令如下:access-list 10 deny 192.168.1.0 0.0.0.255通过上面的配置将来自192.168.1.0/24的所有计算机数据包进行过滤丢弃。

为什么后头的子网掩码表示的是0.0.0.255呢?这是因为CISCO规定在ACL中用反向掩玛表示子网掩码,反向掩码为0.0.0.255的代表他的子网掩码为255.255.255.0.小提示:对于标准访问控制列表来说,默认的命令是HOST,也就是说access-list 10 deny 192.168.1.1表示的是拒绝192.168.1.1这台主机数据包通讯,可以省去我们输入host命令。

标准访问列表配置实例:R1(config)#access-list 10 deny 192.168.2.0 0.0.0.255R1(config)#access-list 10 permit anyR1(config)#int fa0/0.1R1(config-subif)#ip access-group 10 out上面配置的含义是阻止来自网段192.168.2.0的机器从int fa0/0.1端口出去,访问列表在配置好之后,要把它在端口上应用,否则配置了还是无效的。

注意事项:1、标准访问列表,一般来说配置尽量靠近目的端。

2、配置的第二条命令中的any相当于0.0.0.0 255.255.255.2553、一定要加pemint any,使其他的网络可通。

4、访问列表是从上到下一条一条进行匹配的,所以在设置访问列表的时候要注意顺序。

如果从第一条匹配到最后一条还是不知道要怎么做,路由器就会丢弃这个数据包,也就是为什么上面的例子中上一定要加permit any.5、如果只阻止一个主机,那可以用host 192.168.1.12 或者192.168.1.12 0.0.0.0,这两种配置是等价的。

删除已建立的标准ACLR1(config)#no access-list +access-list number对标准的ACL来说,不能删除单个acl语句,只能删除整个ACL总结:标准ACL占用路由器资源很少,是一种最基本最简单的访问控制列表格式。

应用比较广泛,经常在要求控制级别较低的情况下使用。

如果要更加复杂的控制数据包的传输就需要使用扩展访问控制列表了,他可以满足我们到端口级的要求。

二、扩展访问控制列表上面我们提到的标准访问控制列表是基于IP地址进行过滤的,是最简单的ACL.那么如果我们希望将过滤细到端口怎么办呢?或者希望对数据包的目的地址进行过滤。

这时候就需要使用扩展访问控制列表了。

使用扩展IP访问列表可以有效的容许用户访问物理LAN而并不容许他使用某个特定服务(例如WWW,FTP等)。

扩展访问控制列表使用的ACL号为100到199.扩展访问控制列表的格式:access-list access-list number {permit/deny} protocol +源地址+反码+目标地址+反码+operator operan(It小于,gt大于,eq等于,neq不等于。

具体可?)+端口号1、扩展访问控制列表号的范围是100-199或者2000-2699.2、因为默认情况下,每个访问控制列表的末尾隐含deny all,所以在每个扩展访问控制列表里面必须有:access-list 110 permit ip any any .3、不同的服务要使用不同的协议,比如TFTP使用的是UDP协议。

4、更多注意事项可以参考上面标准访问控制列表部分例如:access-list 101 deny tcp any host 192.168.1.1 eq www //将所有主机访问192.168.1.1这个地址网页服务(WWW)TCP连接的数据包丢弃。

小提示:同样在扩展访问控制列表中也可以定义过滤某个网段,当然和标准访问控制列表一样需要我们使用反向掩码定义IP地址后的子网掩码。

扩展访问控制列表配置实例:R2(config)#access-list 110 deny tcp any host 192.168.1.12 eq wwwR2(config)#access-list 110 deny tcp any host 192.168.1.12 eq ftpR2(config)#int fa0/0R2(config-if)#ip access-group 110 out上面配置的含义是拒绝访问192.168.1.12的www和ftp服务实例二:路由器连接了二个网段,分别为172.16.4.0/24,172.16.3.0/24.在172.16.4.0/24网段中有一台服务器提供WWW服务,IP地址为172.16.4.13.要求:禁止172.16.3.0的计算机访问172.16.4.0的计算机,包括那台服务器,不过惟独可以访问172.16.4.13上的WWW服务,而其他服务不能访问。

路由器配置命令:access-list 101 permit tcp any 172.16.4.13 0.0.0.0 eq www //设置ACL101,容许源地址为任意IP,目的地址为172.16.4.13主机的80端口即WWW服务。

由于CISCO默认添加DENY ANY 的命令,所以ACL只写此一句即可。

进入相应端口ip access-group 101 out //将ACL101应用到端口设置完毕后172.16.3.0的计算机就无法访问172.16.4.0的计算机了,就算是服务器172.16.4.13开启了FTP服务也无法访问,惟独可以访问的就是172.16.4.13的WWW服务了。

删除已建立的扩展标准ACL删除和标准一样,不能单条删除,只能删除整个acl总结:扩展ACL功能很强大,他可以控制源IP,目的IP,源端口,目的端口等,能实现相当精细的控制,扩展ACL不仅读取IP包头的源地址/目的地址,还要读取第四层包头中的源端口和目的端口的IP.不过他存在一个缺点,那就是在没有硬件ACL加速的情况下,扩展ACL 会消耗大量的路由器CPU资源。

所以当使用中低档路由器时应尽量减少扩展ACL的条目数,将其简化为标准ACL或将多条扩展ACL合一是最有效的方法。

三、命名访问控制列表不管是标准访问控制列表还是扩展访问控制列表都有一个弊端,那就是当设置好ACL的规则后发现其中的某条有问题,希望进行修改或删除的话只能将全部ACL信息都删除。

也就是说修改一条或删除一条都会影响到整个ACL列表。

这一个缺点影响了我们的工作,为我们带来了繁重的负担。

不过我们可以用基于名称的访问控制列表来解决这个问题。

命名访问控制列表格式:ip access-list {standard/extended} access-list-name(可有字母,数字组合的字符串)例如:ip access-list standard softer //建立一个名为softer的标准访问控制列表。

命名访问控制列表使用方法:router(config)#ip access-list standard +自定义名router(config-std-nac1)#11 permit host +ip //默认情况下第一条为10,第二条为20.如果不指定序列号,则新添加的ACL被添加到列表的末尾router(config-std-nac1)#deny any对于命名ACL来说,可以向之前的acl中插入acl,删除也可以删除单条acl,如:router(config)#ip access-list standard benetrouter(config-std-nasl)#no 11使用show access-lists可查看配置的acl信息总结:如果设置ACL的规则比较多的话,应该使用基于名称的访问控制列表进行管理,这样可以减轻很多后期维护的工作,方便我们随时进行调整ACL规则。

四、反向访问控制列表反向访问控制列表属于ACL的一种高级应用。

他可以有效的防范病毒。

相关主题