专业认证

关注公众号 jb51net

关闭
IT专业知识 > 专业认证 >

思科ACL访问控制列表常规配置操作详解

brave_stone

本文实例讲述了思科ACL访问控制列表常规配置操作。分享给大家供大家参考,具体如下:

一、ACL概述

ACL (Access Control List,访问控制列表)是一系列运用到路由器接口的指令列表。这些指令告诉路由器接收哪些数据包、拒绝哪些数据包,接收或者拒绝根据一定的规则进行,如源地址、目标地址、端口号等。ACL使得用户能够管理数据流,检测特定的数据包。
  路由器将根据ACL中指定的条件,对经过路由器端口的数据包进行检査。ACL可以基于所有的Routed Protocols (被路由协议,如IP、IPX等)对经过路由器的数据包进行过滤。ACL在路由器的端口过滤数据流,决定是否转发或者阻止数据包。ACL应该根据路由器的端口所允许的每个协议来制定,如果需要控制流经某个端口的所有数据流,就需要为该端口允许的每一个协议分别创建ACL。例如,如果端口被配置为允许IP、AppleTalk和IPX协议的数据流,那么就需要创建至少3个ACL, 本文中仅讨论IP的访问控制列表。针对IP协议,在路由器的每一个端口,可以创建两个ACL:—个用于过滤进入(inbound)端口的数据流,另一个用于过滤流出(outboimd)端口的数据流。
  顺序执行:—个ACL列表中可以包含多个ACL指令,ACL指令的放置顺序很重要。当路由器在决定是否转发或者阻止数据包的时候,Cisco的IOS软件,按照ACL中指令的顺序依次检査数据包是否满足某一个指令条件。当检测到某个指令条件满足的时候,就执行该指令规定的动作,并且不会再检测后面的指令条件。
  ACL作用:
   * 限制网络流量,提高网络性能。
   * 提供数据流控制。
   * 为网络访问提供基本的安全层。

二、ACL 类型

  1. 标准ACL: access-list-number编号1~99之间的整数,只针对源地址进行过滤。
  2. 扩展ACL: access-list-number编号100~199之间的整数,可以同时使用源地址和目标地址作为过滤条件,还可以针对不同的协议、协议的特征、端口号、时间范围等过滤。可以更加细微的控制通信量。
  3. 动态ACL
  4. 自反ACL
  5. 基于时间的ACL

三、标准ACL

 3.1 通配符掩码

使用通配符掩码与源或目标地址一起分辨匹配的地址范围。
掩码位匹配含义:设置为“1”表示忽略IP地址中对应位(IP取0或1都可以匹配);设置为“0”表示IP地址中对应位必须精确匹配
例如:(1)192.168.1.0 0.0.0.255 匹配的是192.168.1.0~192.168.1.255
   (2)192.168.1.0 0.0.0.254 匹配192.168.1.0网段中所有偶数IP
   (3)192.168.1.1 0.0.0.254 匹配192.168.1.0网段中所有奇数IP
any关键字: 代替地址掩码对0.0.0.0 255.255.255.255,匹配任何IP
host关键字: 代替通配符掩码0.0.0.0,精确匹配某个IP。例如:要实现匹配IP地址192.168.1.2,则可以写成192.168.1.2 0.0.0.0或者写成host 192.168.1.2。(注:标准ACL中没有通配符掩码默认该掩码为 0.0.0.0,host也可以省略;扩展ACL中通配符 0.0.0.0或 host关键字不可以省略

 3.2 配置标准ACL的方法

  3.2.1 配置步骤

配置标准ACL需要两步,一是创建访问控制列表,二是将列表绑定到特定端口。

  Step 1 创建ACL

全局模式下配置ACL。
创建标准ACL的基本格式: access-list access-list-number { deny | permit } { 源地址 [ 源地址通配符掩码 ] | any } [ log ]
其中,access-list-number是1~99的ACL编号;deny拒绝,permit允许;log是日志选项,匹配的条目信息显示在控制台上,也可以输出到日志服务器。
例如:在某路由器R3上创建一组ACL配置如下:
 

  R3 (config) #access-list 1 deny 12.1.1.1    拒绝R1的IP地址12.1.1.1,通配符掩码 0.0.0.0 可以省略。
  R3 (config) #access-list 1 permit any     允许其余所有IP

注意:访问控制列表最后隐含一条deny any 规则;ACL从上往下匹配,规则顺序不能改变。

  Step 2 应用ACL

创建好列表后,要将ACL绑定到每个它想应用的接口才能实现访问控制功能。
例如:将上述列表应用到R3的S1/0接口,配置为:
 

  R3 (config) #interface s1/0    
  R3 (config-if) #ip access-group 1 in  在接口下调用ACL 1,针对的是从s1/0接口进入路由器R3的流量

 3.2.2 编辑修改标准ACL

  1)删除ACL

删除编号即可删除ACL。
命令格式:

R3 (config) #no access-list 1
  2)取消ACL在接口的应用

命令格式:

R3 (config) #int s1/0
R3 (config-if) #no ip access-group 1 in

  3)编辑ACL

标准ACL不支持插入或删除一行操作,可以将现有ACL拷贝到记事本里修改,然后粘贴到路由器的命令行中。

  4)查看ACL

命令格式:

R3#show access-lists
R3#show access-lists 1

 3.3 配置标准命名ACL的方法

标准命名ACL指使用字符串代替数字来标识ACL。其优点包括:

可局部修改:

1)删除某一句:
 

R3 (config)# ip access-list standard deny-R1
R3 (config-std-nac1)#no deny 12.1.1.1

2)使用行号删除某一句:
 

R3 (config)# ip access-list standard deny-R1
R3 (config-std-nac1)#no 20           删除第20行内容

3)删除整个ACL:
 

R3 (config)#no ip access-list standard deny-R1

 3.4 标准ACL放置的位置

四、扩展ACL

 4.1 配置扩展ACL

  Step 1 创建扩展ACL

基本格式:access-list access-list-number {deny | permit | remark} 协议类型 source [source-wildcard] [operator operand] [port port-number or name] destination destination-wildcard [operator operand] [port port-number or name] [established]
实例:配置实现拒绝R1去往R3的Telent通信,允许其他服务。
在这里插入图片描述
 

R2 (config) # access-list 100 deny tcp host 12.1.1.1 host 23.1.1.3 eq Telent
R2 (config) # access-list 100 permit ip any any

解释:Telent流量使用的是TCP协议,目标端口23
因此此处拒绝TCP协议,源地址是R1,源端口任意;目标地址R3,目标端口23(配置语句中Telent表示23)。

  Step 2 应用ACL

将列表应用于R2的S1/0接口,当数据包进入R2的时候判断,配置为:
 

R2 (config) # int s1/0
R2 (config) # ip access-group 100 in

 4.2 配置扩展命名ACL

类似于标准命名ACL:
 

ip access-list extended tcp-firewall

 4.3 扩展ACL放置的位置

尽量应用在靠近源端,这样可以使一些非法流量尽早丢弃,节省中间设备带宽和CPU资源。

五、反射ACL

 5.1 概念

提供真正意义上的单向访问控制。

 5.2 应用

六、动态ACL

可以根据用户验证过程创建特定的临时的ACL。

七、基于时间的ACL