ACL—访问控制列表

互联网是一个开放的网络平台,在这个平台上的数据可以任意流动,但是有些时候需要对数据进行控制。比如,出于安全的考虑,要过滤那些对网络进行恶意攻击的数据包。对网络数据流进行控制的方法很多,访问控制列表就是其中的一种方法。

ACL 概述

ACL 简介

  • 随着网络应用范围的扩大,如何控制访问网络的权限成为网络管理员面对的挑战。访问控制列表(Access Control List,ACL)是控制网络访问的一种有力的工具。所谓ACL就是使用包过滤技术,在路由器上读取第三层或者第四层包头中的信息,如源地址、目的地址、源端口、目的端口以及协议等,根据预先定义好的规则对包进行过滤,从而达到访问控制的目的。

  • 该技术初期仅在路由器上支持,近些年来已经扩展到三层交换机,部分最新的二层交换机也开始提供ACL的支持了。它适用于所有的被路由的协议,如IP、IPX等,当这些协议的数据包经过路由器时,都可以利用ACL来允许或拒绝对某一网络或子网的访问,从而保护网络资源。
    ACL的应用非常广泛,可以实现如下功能:
    (1)检查和过滤数据包;
    (2)提供对通信流量的控制手段;
    (3)限制或减少路由更新的内容;
    (4)按照优先级或用户队列处理数据包;
    (5)定义发起DDR呼叫的感兴趣流量。

  • 由于ACL涉及的配置命令很灵活,功能也很强大,所以设计时应该遵循如下原则:
    (1)自上而下的处理方式
    访问控制列表表项的检查要按自上而下的顺序进行,并且从第一个表项开始,所以必须考虑在访问控制列表中放入语句的次序。
    (2)添加表项
    新的表项被添加到访问控制列表的末尾,也就是说,不可能改变已有ACL的表项顺序,如果要改变,就必须创建一个新ACL并删除已存在的 ACL,并且将新 ACL应用到接口上;
    (3)访问控制列表放置
    尽量考虑将扩展的访问控制列表放在靠近过滤源的位置上,这样创建的过滤器就不会反过来影响其他接口上的数据流。另外,尽量使标准的访问控制列表靠近目的,由于标准访问控制列表只使用源地址,如果将其靠近源会阻止报文流向其他端口。
    (4) 语句的位置
    由于IP协议包含ICMP、TCP和UDP,所以应将更为具体的表项放在不太具体的表项前面,以保证位于另一语句前面的语句不会否定表中后面的语句的作用效果。
    (5) 其他注意事项
    如果没有access-list,则等于permit any。一旦添加了访问控制列表,最后默认为deny any。

ACL工作过程

  • 在ACL中各个描述语句的放置顺序是非常重要的。Cisco IOS按照各描述语句在ACL中的顺序,根据各描述语句的判断条件,对数据包进行检查。一旦找到了某一匹配条件,就结束比较过程,然后路由器就使用访问组中的某个接口转发或丢弃该数据包,不再检查以后的其他条件判断语句。
  • 通常对每一个路由器接口的每一个方向、每一种协议都可以创建一个ACL。通常有两种主要的ACL,即标准ACL和扩展 ACL。
  • ACL是一种判断语句的集合,其工作过程如图6-3所示。无论是否使用访问控制列表,处理过程的开始是完全一样的。当一个数据包进入了一个入站接口时,路由器对它进行检查,看它是否是可路由的(或者是可桥接的)。如果遇到任何不可路由的情况,这个数据包就会被丢失。要是数据包是可路由的,路由器为其指定选择的接口,然后,路由器检查目标接口是否被编组在某一个访问控制列表中。如果没被编组,就把这个数据包直接送到目标接口输出。

ACL的配置步骤和分类

配置ACL的基本步骤

通常把ACL的配置任务分为两步

  1. 定义ACL
    定义 ACL的命令如下:
    Router(config)# access-list access-list-number {permit l deny} {test-conditions}
    access-list-number用来标识一个访问控制列表。具体地说,就是通过使用访问控制列表的表号来实现这个表号所指出的访问控制列表的类型。参数permit或deny表示满足测试条件的数据包是如何被Cisco IOS处理的。参数test-conditions指出了该访问控制列表所使用的测试条件。

下面的配置讲述如何定义ACL:
Router(config) # access-list 1 permit 10.0.0.0 0.255.255.255
Router(config) # access-list 2 deny 20.0.0.0 0.255.255.255
其中,0.255.255.255是通配符掩码,也叫反掩码,它是一个32的数字字符串,它被用点号分成4个8位组,每个8位组包含 8。在通配符掩码位中,0表示“检查相应的位”,而1表示“不检查(忽略)相应的位”。
注意:反掩码中有两种比较特殊,分别是any和host。
any表示任何IP地址,等同于0.0.0.0 255.255.255.255。
host表示一台主机,host X,X.X,X等同于XX.X.X0.0.0.0,其中XXXX表示个IP地址。

  1. 将访问控制列表应用到某一接口上
    用下面的命令将ACL应用到接口上去:
    Router(config-if)# {protocol} access-group access-list-number {in l out}
    所有访问控制列表条件判断语句总是与一个或者多个接口相联系的,任何通过了访问控制列表测试条件的数据包都可以使用这个访问接口组中的任何一个接口。参数protocol表示网络中采用的协议,如IP网络。参数in和out表示访问控制列表作用在接口上的方向。in和out是以路由器作为参照物的。如果in和out都没有指定,那么默认为out。
    下面的配置讲述如何应用ACL到某一接口上去:

Router(config-if)#ip access-group 1 out
Router(config-if)#ip access-group 2 in

ACL分类

按照ACL检查数据包参数的不同,可以将其分成标准ACL和扩展ACL。在路由器上配置ACL的时候,必须为每一协议的访问控制列表分配一个惟一的表号,以便标识每个访问控制列表。如果使用数字来标识访问控制列表,必须保证这个数字在协议所允许的合理范围之内。可以使用表 6-1 所列出的数字为访问控制列表指定惟一的表号。本章只研究基于IP网络的访问控制列表

协议及其所允许的 ACL 表号的取值范围

ACL类型ACL表号的取值范围
IP标准ACL1-99
IP扩展 ACL100~199

注意:在创建了一个访问控制列表并分配好了数字表号之后,为了让该访问控制列表真正起作用,必须把它应用到一个接口上。如果想修改一个已经含有分配好的表号的条件判断语句的访问控制列表,只能通过使用no access-list list-number命令删除该访问控制列表中的所有条件判断语句,再重新建立。

配置访问控制列表

配置标准 ACL

标准ACL只检查被路由的数据包的源地址。标准ACL配置步骤如下:
(1)在全局配置模式下使用access-list命令,创建一个标准的ACL
Router(config)# access-list access-list-number {permit | deny} source source-wildcard [log]
可以使用show access-list命令来显示所有访问控制列表的内容。

参数参数说明
access-list-numberACL表号
permit如果满足条件,则允许从该入口来的通信流量
deny如果满足条件,则拒绝从该入口来的通信流量
source数据包的源地址,可以是IP地址,也可以是网络地址
source-wildcard通配符掩码,用来决定哪些位需要匹配
log生成相应的日志信息,用来记录经过ACL入口的数据包的情况

(2)定义好ACL之后,用acess-group 命令把它应用到某个接口上去。对于access-group命令,需要记住的是在每个接口、每个协议、每个方向上只能有一个访问控制列表access-group命令的语法格式如下:
Router(config-if) # ip access-group aecess-list-number { in | out }

在这里插入图片描述

  1. 配置标准ACL
    在R2上配置标准ACL,完成以下三任务:
    (1)允许主机A访问R2
    (2)拒绝除主机A外的10.1.1.0网络访问R2
    (3)允许其他流量访问R2。

R2(config)#access-list 1 permit host 10.1.1.100 //等同于:access-list 1 permit 10.1.1.100 0.0.0.0
R2(config)#access-list 1 deny 10.1.1.0 0.0.0.255 //等同于:access-list 1 deny 0.0.0.0 255.255.255.255
R2(config)#access-list 1 permit any
R2(config)#int s0/0
R2(config-if)#ip access-group 1 in

  • 19
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值