ACL的原理与配置详解
ACL的原理与配置详解
ACL(访问控制列表)是网络设备中常用的一种安全机制,主要用于控制网络流量的访问权限。通过设置ACL规则,网络管理员可以精确控制哪些数据包可以进入或离开网络设备,从而保护网络资源的安全。本文将详细介绍ACL的基本原理、分类和配置方法。
ACL技术概述
在园区网络中,服务器资源经常面临随意访问的风险,这可能导致机密信息泄露和安全隐患。此外,病毒可能侵入内网,降低网络安全性。同时,各类业务可能随意占用网络带宽,导致服务质量要求高的业务无法得到保障,影响用户体验。
因此,需要一个工具来制定规则,控制网络流量,保障网络安全。ACL(访问控制列表)就是这样一种工具,它由一系列有序的规则组成,可以匹配IP数据包中的源IP地址、目的IP地址、协议类型、源目的端口等元素,甚至可以匹配路由条目。
ACL的基本概念及其工作原理
ACL的组成
- ACL编号:每个ACL都需要分配一个编号进行识别。
- 规则:一条ACL通常由若干条"permit"或"deny"语句组成,每条语句就是该ACL的规则。
- 规则编号:每条规则都有一个对应的编号,可以自定义,也可以系统分配,范围从0到2的32次方,从大到小排列。
- 动作:指允许(permit)和拒绝(deny)两种操作。
- 匹配项:可以匹配二层以太网帧头信息、三层报文信息等。
规则编号和步长
- 规则编号:每条规则都有一个相应的编号,用来标识ACL规则。可以自定义,也可以系统自动分配。
- 步长:编号之间的差值,用来预留空位用于后续的修改和添加新的规则。
通配符
通配符是一个32比特长度的数值,用于指示IP地址中,哪些比特位需要严格匹配,哪些比特位无需匹配。通配符通常采用类似网络掩码的点分十进制形式表示,但是含义却与网络掩码完全不同:
- 0 表示在这一位需要严格匹配地址
- 1 表示不关心,1 和 0是可以不连续的
当通配符全为0来匹配IP地址时,表示精确匹配某个IP地址;当通配符全为1来匹配0.0.0.0地址时,表示匹配了所有IP地址。
ACL的分类
- 基本ACL:编号2000~2999,仅使用报文的源IP地址、分片信息和生效时间段信息来定义规则。
- 高级ACL:编号3000~3999,可使用IPv4报文的源IP地址、目的IP地址、IP协议类型、ICMP类型、TCP源/目的端口号、UDP源/目的端口号、生效时间段等来定义规则。
- 二层ACL:编号4000~4999,使用报文的以太网帧头信息来定义规则,如根据源MAC地址、目的MAC地址等。
- 自定义ACL:编号5000~5999,使用报文头、偏移位置、字符串掩码和用户自定义字符串来定义规则。
- 用户ACL:编号6000~9999,既可使用IPv4报文的源IP地址或源UCL(User Control List)组,也可使用目的IP地址或目的UCL组、IP协议类型、ICMP类型、TCP源端口/目的端口、UDP源端口/目的端口号等来定义规则。
ACL的标识方法
- 数字型:传统的方法,用唯一的数字标识。
- 命名型:使用名称来标识。
ACL的匹配机制
配置ACL的设备接收到报文时,会将报文逐一对ACL中的规则进行匹配:
- 首先检查设备是否配置了ACL。如果ACL不存在,就返回结果为不匹配。
- 如果ACL存在,会检查设备是否配置了ACL规则:
- 如果规则不存在,返回结果为不匹配。
- 如果规则存在,将有三种情况:
- 当匹配上permit规则,就停止匹配,返回结果为匹配。
- 当匹配上deny规则,就停止匹配,返回结果为不匹配。
- 一直没有匹配到对应的规则,就继续寻找匹配下一条,直到最后还没有匹配上,返回结果为不匹配。
- 一旦命中,停止匹配。
注意:ACL技术总是与其他技术结合在一起使用的,因此,所结合的技术不同,“允许 (permit)”及“拒绝 (deny)”的内涵和作用也会不同。例如,当ACL技术与流量过滤技术结合使用时,permit就是“允许通行”的意思,deny 就是“拒绝通行”的意思。
ACL的匹配顺序及匹配结果
华为设备支持两种匹配顺序:自动排序和配置顺序(config模式)。默认的ACL匹配顺序是config模式。ACL的排序有些复杂,这里不再过多阐释,有兴趣可以查查资料。
ACL的配置案例
某公司通过Router实现各部门之间的互连。为方便管理网络,管理员为公司的研发部和市场部规划了两个网段的IP地址。现要求Router能够限制两个网段之间互访,防止公司机密泄露。
配置步骤如下:
- 进入端口使用ip adress 先进配置
- 创建ACL规则:
- 创建编号为3001的高级ACL,规则为deny,源地址为10.1.1.0/24,目的地址为10.1.2.0/24
- 创建编号为3002的高级ACL,规则为deny,源地址为10.1.2.0/24,目的地址为10.1.1.0/24
- 在接口GigabitEthernet 0/0/1上应用ACL 3001
- 在接口GigabitEthernet 0/0/2上应用ACL 3002
配置完成后,两个网段之间的PC机将无法互相通信,从而实现了流量控制的目的。