ACL访问控制列表
一、前言
-
企业网络中的设备进行通信时,需要保障数据传输的安全可靠和网络的性能稳定。
-
访问控制列表ACL(Access Control List)可以定义一系列不同的规则,设备根据这些规则对数据包进行分类,并针对不同类型的报文进行不同的处理,从而可以实现对网络访问行为的控制、限制网络流量、提高网络性能、防止网络攻击等等。
二、ACL应用场景
-
ACL是由一系列规则组成的集合。设备可以通过这些规则对数据包进行分类,并对不同类型的报文进行不同的处理。
-
ACL可以通过定义规则来允许或拒绝流量的通过。
-
ACL可以根据需求来定义过滤的条件以及匹配条件后所执行的动作。
-
设备可以依据ACL中定义的条件(例如源IP地址)来匹配入方向的数据,并对匹配了条件的数据执行相应的动作。
三、ACL分类
-
根据不同的划分规则,ACL可以有不同的分类。最常见的三种分类是基本ACL、高级ACL和二层ACL。
-
基本ACL可以使用报文的源IP地址、分片标记和时间段信息来匹配报文,其编号取值范围是2000-2999。
-
应用ACL时尽量放在离目标更近***
-
高级ACL可以使用报文的源/目的IP地址、源/目的端口号以及协议类型等信息来匹配报文。高级ACL可以定义比基本ACL更准确、更丰富、更灵活的规则,其编号取值范围是3000-3999。
-
应用ACL时尽量放在离源更近***
-
二层ACL可以使用源/目的MAC地址以及二层协议类型等二层信息来匹配报文,其编号取值范围是4000-4999。
-
-
命名ACL:命名访问控制列表允许在标准和扩展访问控制列表中使用名称代替表号
四、ACL规则
-
一个ACL可以由多条“deny | permit”语句组成,每一条语句描述了一条规则。设备收到数据流量后,会逐条匹配ACL规则,看其是否匹配。如果不匹配,则匹配下一条。一旦找到一条匹配的规则,则执行规则中定义的动作,并不再继续与后续规则进行匹配。如果找不到匹配的规则,则设备不对报文进行任何处理。需要注意的是,ACL中定义的这些规则可能存在重复或矛盾的地方。规则的匹配顺序决定了规则的优先级,ACL通过设置规则的优先级来处理规则之间重复或矛盾的情形。
-
ARG3系列路由器支持两种匹配顺序:配置顺序和自动排序。
-
配置顺序按ACL规则编号(rule-id)从小到大的顺序进行匹配。设备会在创建ACL的过程中自动为每一条规则分配一个编号,规则编号决定了规则被匹配的顺序。例如,如果将步长设定为5,则规则编号将按照5、10、15…这样的规律自动分配。如果步长设定为2,则规则编号将按照2、4、6、8…这样的规律自动分配。通过设置步长,使规则之间留有一定的空间,用户可以在已存在的两个规则之间插入新的规则。路由器匹配规则时默认采用配置顺序。另外,ARG3系列路由器默认规则编号的步长是5。
-
自动排序使用“深度优先”的原则进行匹配,即根据规则的精确度排序。
五、ACL工作原理
-
从第一条语句开始向下匹配,一旦匹配成功则进行执行并不再进行后续匹配
-
路由器的一个接口同一个方向最多只能够有一个列表,但一个列表中可以有多条语句
-
列表在调用时需要分清出入口,以数据流向为参照,进入接口的是"in" 出口是"out"
-
访问控制列表在接口应用的方向
-
出:已经过路由器的处理,正离开路由器接口的数据包
-
入:已到达路由器接口的数据包,将被路由器处理
-
-
从路由器的角度来看,数据包可以分为进入的和出去的数据包。在不同方向应用ACL时,是对两种不同数据流量进行过滤,分别是出口流量和入口流量。
-
ACL是一组判断语句的集合,具体对下列数据包进行检测并控制:
-
从入站接口进入设备的数据包;
-
从出站接口离开设备的数据包。
-
-
注意事项
-
1.访问控制列表对路由器本身产生的数据包不起作用
-
2.只有在数据包与第一个判断条件不匹配时,它才交给ACL中的下一个条件判断语句进行比较
-
3.如果不与任一语句匹配,则它必与最后隐含的拒绝匹配(思科) ***华为默认允许。
-
4.写规则时按照从具体到普遍的次序来排列条目
-
5.将较经常发生的条件放在较不经常发生的条件之前
-
6.在一个接口中只能应用一个acl策略(一个方向)
-
六、ACL配置
1.基本ACL配置
①配置
-
acl [ number ] 命令用来创建一个ACL,并进入ACL视图。
-
rule [ rule-id ] { deny| permit } source { source-address source-wildcard | any } 命令用来增加或修改ACL的规则。deny用来指定拒绝符合条件的数据包,permit用来指定允许符合条件的数据包,source用来指定ACL规则匹配报文的源地址信息,any表示任意源地址。
-
traffic-filter { inbound | outbound }acl{ acl-number }命令用来在接口上配置基于ACL对报文进行过滤。
-
因而将被拒绝继续转发到Internet。主机B发送的流量不匹配任何规则,所以会被RTA正常转发到Internet。
②配置确认
-
执行display acl <acl-number>命令可以验证配置的基本ACL。
-
执行display traffic-filter applied-record命令可以查看设备上所有基于ACL进行报文过滤的应用信息,这些信息可以帮助用户了解报文过滤的配置情况并核对其是否正确,同时也有助于进行相关的故障诊断与排查。
2.高级ACL配置
①配置
-
基本ACL可以依据源IP地址进行报文过滤,而高级ACL能够依据源/目的IP地址、源/目的端口号、网络层及传输层协议以及IP流量分类和TCP标记值等各种参数(SYN|ACK|FIN等)进行报文过滤。
②配置验证
-
执行display acl <acl-number>命令可以验证配置的高级ACL。