ACL访问控制列表基础理论

一,技术背景

ACL访问控制列表基础理论及配置实验
ACL访问控制列表基础理论及配置实验
  • 随着网络的飞速发展,网络安全和网络服务质量QoS(Quality of Service)问题日益突出。
    ▫ 园区重要服务器资源被随意访问,园区机密信息容易泄露,造成安全隐患。
    ▫ Internet病毒肆意侵略园区内网,内网环境的安全性堪忧。
    ▫ 网络带宽被各类业务随意挤占,服务质量要求最高的语音、视频业务的带宽得不到保
    障,造成用户体验差。
  • 以上种种问题,都对正常的网络通信造成了很大的影响。因此,提高网络安全性和服务质
    量迫在眉睫,我们需要对网络进行控制。比如,需要借助一个工具帮助实现一些流量的过
    滤。

二,ACL概述

  • 通过ACL可以实现对网络中报文流的精确识别和控制,达到控制网络访问行为、防止网络攻
    击和提高网络带宽利用率的目的,从而切实保障网络环境的安全性和网络服务质量的可靠
    性。
    ▫ ACL是由permit或deny语句组成的一系列有顺序的规则的集合;它通过匹配报文的相
    关字段实现对报文的分类。
    ▫ ACL是能够匹配一个IP数据包中的源IP地址、目的IP地址、协议类型、源目的端口等
    元素的基础性工具;ACL还能够用于匹配路由条目。

三,ACL的组成

  • ACL的组成:
    ▫ ACL编号:在网络设备上配置ACL时,每个ACL都需要分配一个编号,称为ACL编号,
    用来标识ACL。不同分类的ACL编号范围不同,这个后面具体讲。
    ▫ 规则:前面提到了,一个ACL通常由若干条“permit/deny”语句组成,每条语句就是
    该ACL的一条规则。
    ▫ 规则编号:每条规则都有一个相应的编号,称为规则编号,用来标识ACL规则。可以
    自定义,也可以系统自动分配。ACL规则的编号范围是0~4294967294,所有规则均
    按照规则编号从小到大进行排序。
    ▫ 动作:每条规则中的permit或deny,就是与这条规则相对应的处理动作。permit指
    “允许”,deny指“拒绝”,但是ACL一般是结合其他技术使用,不同的场景,处理
    动作的含义也有所不同。
    ▪ 比如:ACL如果与流量过滤技术结合使用(即流量过滤中调用ACL),permit就
    是“允许通行”的意思,deny就是“拒绝通行”的意思。
    ▫ 匹配项:ACL定义了极其丰富的匹配项。例子中体现的源地址,ACL还支持很多其他
    规则匹配项。例如,二层以太网帧头信息(如源MAC、目的MAC、以太帧协议类
    型)、三层报文信息(如目的地址、协议类型)以及四层报文信息(如TCP/UDP端口
    号)等。
  • 提问:rule 5 permit source 1.1.1.0 0.0.0.255 是什么意思?这个在后续课程中会介绍。
  • 规则编号和步长的概念:
    ▫ 规则编号:每条规则都有一个相应的编号,称为规则编号,用来标识ACL规则。可以
    自定义,也可以系统自动分配。
    ▫ 步长:系统自动为ACL规则分配编号时,每个相邻规则编号之间会有一个差值,这个
    差值称为“步长”。缺省步长为5,所以规则编号就是5/10/15…以此类推。
    ▪ 如果手工指定了一条规则,但未指定规则编号,系统就会使用大于当前ACL内
    最大规则编号且是步长整数倍的最小整数作为规则编号。
    ▪ 步长可以调整,如果将步长改为2,系统则会自动从当前步长值开始重新排列规
    则编号,规则编号就变成2、4、6…。
  • 那步长的作用是什么?直接rule 1/2/3/4…为什么不可以?
    ▫ 先来看一个小题目:如果希望增加一条规则,该如何处理?
    ▫ 可以在rule 10和rule 15之间,手工加入一条rule 11。
    ▫ 因此,设置一定长度的步长的作用,是方便后续在旧规则之间插入新的规则。
  • 如果想匹配192.168.1.0/24网段中的奇数IP地址,通配符该怎么写呢?
    ▫ 我们先来看一看,奇数IP地址都有哪些:192.168.1.1、192.168.1.5、192.168.1.11……
    ▫ 后八位写成二进制:192.168.1.00000001、192.168.1.00000101、
    192.168.1.00001011……
    ▫ 可以看出共同点:最后8位的高7位是任意值,最低位固定为1,因此答案是:
    192.168.1.1 0.0.0.254(0.0.0.11111110)
  • 这就得出了通配符的一个特点:通配符中的1或者0是可以不连续的。
  • 还有两个特殊的通配符:
    ▫ 当通配符全为0来匹配IP地址时,表示精确匹配某个IP地址;
    ▫ 当通配符全为1来匹配0.0.0.0地址时,表示匹配了所有IP地址。

四,ACL的分类与标识

  • 基于ACL规则定义方式的划分,可分为:
    ▫ 基本ACL、高级ACL、二层ACL、用户自定义ACL和用户ACL。
  • 基于ACL标识方法的划分,则可分为:
    ▫ 数字型ACL和命名型ACL。
  • 注意:用户在创建ACL时可以为其指定编号,不同的编号对应不同类型的ACL。同时,为了
    便于记忆和识别,用户还可以创建命名型ACL,即在创建ACL时为其设置名称。命名型ACL,
    也可以是“名称 数字”的形式,即在定义命名型ACL时,同时指定ACL编号。如果不指定
    编号,系统则会自动为其分配一个数字型ACL的编号。
  • 基本ACL:
    ▫ 主要针对IP报文的源IP地址进行匹配,基本ACL的编号范围是2000-2999。
    ▫ 比如这个例子,创建的是acl 2000,就意味着创建的是基本ACL。
  • 高级ACL:
    ▫ 可以根据IP报文中的源IP地址、目的IP地址、协议类型,TCP或UDP的源目端口号等
    元素进行匹配,可以理解为:基本ACL是高级ACL的一个子集,高级ACL可以比基本
    ACL定义出更精确、更复杂、更灵活的规则。
  • ACL的匹配机制概括来说就是:
    ▫ 配置ACL的设备接收报文后,会将该报文与ACL中的规则逐条进行匹配,如果不能匹
    配上,就会继续尝试去匹配下一条规则。
    ▫ 一旦匹配上,则设备会对该报文执行这条规则中定义的处理动作,并且不再继续尝试
    与后续规则匹配。
  • 匹配流程:首先系统会查找设备上是否配置了ACL。
    ▫ 如果ACL不存在,则返回ACL匹配结果为:不匹配。
    ▫ 如果ACL存在,则查找设备是否配置了ACL规则。
    ▪ 如果规则不存在,则返回ACL匹配结果为:不匹配。
    ▪ 如果规则存在,则系统会从ACL中编号最小的规则开始查找。
    − 如果匹配上了permit规则,则停止查找规则,并返回ACL匹配结果为:匹
    配(允许)。
    − 如果匹配上了deny规则,则停止查找规则,并返回ACL匹配结果为:匹配
    (拒绝)。
    − 如果未匹配上规则,则继续查找下一条规则,以此循环。如果一直查到最
    后一条规则,报文仍未匹配上,则返回ACL匹配结果为:不匹配。
  • 从整个ACL匹配流程可以看出,报文与ACL规则匹配后,会产生两种匹配结果:“匹配”和
    “不匹配”。
    ▫ 匹配(命中规则):指存在ACL,且在ACL中查找到了符合匹配条件的规则。不论匹
    配的动作是“permit”还是“deny”,都称为“匹配”,而不是只是匹配上permit规则
    才算“匹配”。
    ▫ 不匹配(未命中规则):指不存在ACL,或ACL中无规则,再或者在ACL中遍历了所
    有规则都没有找到符合匹配条件的规则。以上三种情况,都叫做“不匹配”。
  • 匹配原则:一旦命中即停止匹配。
  • 一条ACL可以由多条“deny或permit”语句组成,每一条语句描述一条规则,这些规则可能
    存在包含关系,也可能有重复或矛盾的地方,因此ACL的匹配顺序是十分重要的。
  • 华为设备支持两种匹配顺序:自动排序(auto模式)和配置顺序(config模式)。缺省的
    ACL匹配顺序是config模式。
    ▫ 自动排序,是指系统使用“深度优先”的原则,将规则按照精确度从高到低进行排序,
    并按照精确度从高到低的顺序进行报文匹配。——这个比较复杂,这里就不具体展开
    了,感兴趣的同学可以课后查看资料。
    ▫ 配置顺序,系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容
    易被匹配。——这个就是我们前面提到的匹配顺序。
    ▪ 如果后面又添加了一条规则,则这条规则会被加入到相应的位置,报文仍然会
    按照从小到大的顺序进行匹配。
  • 匹配结果:(如图所示,以192.168.1.3/24为例)
    ▫ 首先理解ACL 2000的含义:
    ▪ rule 1:允许源IP地址为192.168.1.1的报文
    ▪ rule 2:允许源IP地址为192.168.1.2的报文
    ▪ rule 3:拒绝源IP地址为192.168.1.2的报文
    ▪ rule 4:允许其他所有IP地址的报文
    ▫ 当源IP地址为192.168.1.3的报文经过配置了ACL的设备时:
    ▪ 首先查看rule 1,发现不匹配;
    ▪ 继续查看rule 2,发现仍不匹配;
    ▪ 继续查看rule 3,发现匹配,且是“拒绝”动作。
  • 注意:ACL技术总是与其他技术结合在一起使用的,因此,所结合的技术不同,“允许
    (permit)”及“拒绝 (deny)”的内涵和作用也会不同。例如,当ACL技术与流量过滤技术
    结合使用时,permit就是“允许通行”的意思,deny就是“拒绝通行”的意思。

五,ACL的基础命令

  • 创建基本ACL
  • [Huawei] acl [ number ] acl-number [ match-order config ]
    ▫ acl-number:指定访问控制列表的编号。
    ▫ match-order config:指定ACL规则的匹配顺序,config表示配置顺序。
  • [Huawei] acl name acl-name { basic | acl-number } [ match-order config ]
    ▫ acl-name:指定创建的ACL的名称。
    ▫ basic:指定ACL的类型为基本ACL。
  • 配置基本ACL规则
  • [Huawei-acl-basic-2000] rule [ rule-id ] { deny | permit } [ source { source-address
    source-wildcard | any } | time-range time-name ]
    ▫ rule-id:指定ACL的规则ID。
    ▫ deny:指定拒绝符合条件的报文。
    ▫ permit:指定允许符合条件的报文。
    ▫ source { source-address source-wildcard | any }:指定ACL规则匹配报文的源地址
    信息。如果不配置,表示报文的任何源地址都匹配。其中:
    ▪ source-address:指定报文的源地址。
    ▪ source-wildcard:指定源地址通配符。
    ▪ any:表示报文的任意源地址。相当于source-address为0.0.0.0或者sourcewildcard为255.255.255.255。
    ▫ time-range time-name:指定ACL规则生效的时间段。其中,time-name表示ACL规
    则生效时间段名称。如果不指定时间段,表示任何时间都生效。
  • 配置思路:
    ▫ 配置基本ACL和流量过滤,使设备可以对特定网段的报文进行过滤。
  • 配置步骤:
  1. 如图完成路由器的IP地址和路由相关配置。
  2. 创建基本ACL 2000并配置ACL规则,拒绝192.168.1.0/24网段的报文通过,允许其他
    网段的报文通过。
  3. 配置流量过滤。
  • 注:
    ▫ traffic-filter命令,用来在接口上配置基于ACL对报文进行过滤。
    ▫ 命令格式:traffic-filter { inbound | outbound } acl { acl-number | name aclname }
    ▪ inbound:指定在接口入方向上配置报文过滤。
    ▪ outbound:指定在接口出方向上配置报文过滤。
    ▪ acl:指定基于IPv4 ACL对报文进行过滤。
  • 创建高级ACL
  • [Huawei] acl [ number ] acl-number [ match-order config ]
    ▫ acl-number:指定访问控制列表的编号。
    ▫ match-order config:指定ACL规则的匹配顺序,config表示配置顺序。
  • [Huawei] acl name acl-name { advance | acl-number } [ match-order config ]
    ▫ acl-name:指定创建的ACL的名称。
    ▫ advance:指定ACL的类型为高级ACL。
  • 配置高级ACL的规则
  • 当参数protocol为IP时:
    ▫ rule [ rule-id ] { deny | permit } ip [ destination { destination-address
    destination-wildcard | any } | source { source-address source-wildcard | any } |
    time-range time-name | [ dscp dscp | [ tos tos | precedence precedence ] ] ]
    ▪ ip :指定ACL规则匹配报文的协议类型为IP。
    ▪ destination { destination-address destination-wildcard | any }:指定ACL规
    则匹配报文的目的地址信息。如果不配置,表示报文的任何目的地址都匹配。
    ▪ dscp dscp:指定ACL规则匹配报文时,区分服务代码点(Differentiated
    Services Code Point),取值为:0~63。
    ▪ tos tos:指定ACL规则匹配报文时,依据服务类型字段进行过滤,取值为:
    0~15。
    ▪ precedence precedence:指定ACL规则匹配报文时,依据优先级字段进行过滤。
    precedence表示优先级字段值,取值为:0~7。
  • 当参数protocol为TCP时:
    ▫ rule [ rule-id ] { deny | permit } { protocol-number | tcp } [ destination
    { destination-address destination-wildcard | any } | destination-port { eq port |
    gt port | lt port | range port-start port-end } | source { source-address sourcewildcard | any } | source-port { eq port | gt port | lt port | range port-start portend } | tcp-flag { ack | fin | syn } * | time-range time-name ] *
    ▪ protocol-number | tcp:指定ACL规则匹配报文的协议类型为TCP。可以采用数
    值6表示指定TCP协议。
    ▪ destination-port { eq port | gt port | lt port | range port-start port-end}:
    指定ACL规则匹配报文的UDP或者TCP报文的目的端口,仅在报文协议是TCP或
    者UDP时有效。如果不指定,表示TCP/UDP报文的任何目的端口都匹配。其中:
    − eq port:指定等于目的端口;
    − gt port:指定大于目的端口;
    − lt port:指定小于目的端口;
    − range port-start port-end:指定源端口的范围。
    ▪ tcp-flag:指定ACL规则匹配报文的TCP报文头中SYN Flag。
  • 配置思路:
    配置高级ACL和流量过滤,使设备可以对研发部与市场部互访的报文进行过滤。
  • 配置步骤:
  1. 如图完成路由器的IP地址和路由的相关配置。
  2. 创建高级ACL 3001并配置ACL规则,拒绝研发部访问市场部的报文通过。
  3. 创建高级ACL 3002并配置ACL规则,拒绝市场部访问研发部的报文通过。
  • 配置步骤:
  1. 由于研发部和市场部互访的流量分别从接口GE0/0/1和GE0/0/2进入Router,所以在
    接口GE0/0/1和GE0/0/2的入方向配置流量过滤。
  • 注:
    ▫ traffic-filter命令,用来在接口上配置基于ACL对报文进行过滤。
    ▫ 命令格式:traffic-filter { inbound | outbound } acl { acl-number | name aclname }
    ▪ inbound:指定在接口入方向上配置报文过滤。
    ▪ outbound:指定在接口出方向上配置报文过滤。
    ▪ acl:指定基于IPv4 ACL对报文进行过滤。

华三防火墙三层直路部署组网:https://www.hao0564.com/5410.html

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注