本帖最后由 大智哥 于 2025-4-21 11:48 编辑
1.问题提出如下图所示,某公司内部网络为保证财务数据安全,禁止研发部门访问财务服务器,但总裁办公室不受限制,那么如何实现这种需求? 解决此需求需要借助ACL工具来实现对一些流量进行过滤,从而控制网络数据的流向。 那么什么是ACL? 下面先介绍它的基本原理,然后再举具体的使用场景。 2.ACL基本原理2.1ACL概述ACL(Access Control List,访问控制列表)它是一种用于网络设备(如路由器、交换机、防火墙)的核心安全和技术策略工具,它能够对报文进行匹配和区分,它是由一系列permit或deny语句组成的、有序规则的列表。 通过ACL可以实现对网络中报文流的精确识别和控制,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的,从而切实保障网络环境的安全性和网络服务质量的可靠性。 2.2ACL的组成ACL由若干条permit或deny语句组成,每条语句就是该ACL的一条规则,每条语句中的permit或deny就是与这条规则相对应的处理动作。 在一条规则中,它分别由下面几部分组成: 下面是一个 ACL 规则各部分的解释: 2.2.1ACL规则编号与步长1)规则编号(Rule ID) 作用:唯一标识ACL中的每条规则,决定匹配顺序(从小到大执行)。
手动指定:管理员直接为规则赋予编号(如 rule 10 permit ip...)。 自动分配:若未手动指定,系统按步长规则自动生成编号。
2)步长(Step) 定义:相邻自动分配规则编号间的差值,默认值为5(可配置)。 核心用途:在已有规则间预留“空隙”,方便后续插入新规则。
示例:步长为5时,初始规则编号为5、10、15…若需在5和10之间插入规则,可直接指定编号6-9。
如下图,所示规则编号和步长: 现在希望在规则10和15之间插入一条规则,可以这样写: rule 11 deny source 10.1.1.3 0
然后查询acl 2000访问控制列表,显示如下: 2.2.2通配符通配符(Wildcard Mask) 是ACL中用于精细化匹配IP地址的关键参数,其作用与子网掩码(Subnet Mask)类似但逻辑相反。 1)通配符的核心作用 功能:指定IP地址中哪些比特位需要精确匹配,哪些可以忽略。 格式:32位二进制,通常以点分十进制表示(如0.0.0.255)。
2)通配符的匹配规则 二进制位含义:0:必须严格匹配IP对应位;1:忽略IP对应位(任意值均可)。 计算示例1: # 匹配192.168.1.1/24对应网段的地址?
![]() 可以得出网络位需严格匹配,主机位可以任意,这样 ACL 中IP:192.168.1.0,通配符:0.0.0.255,(前24位固定,后8位任意)。 计算示例2: # 匹配192.168.1.0/24这个子网中的奇数IP地址,例如192.168.1.1、192.168.1.3、192.168.1.5等。
![]() 可以看出,最后一位二进制数为1,其他位任意,这样得出通配符为: 0.0.0.254 计算示例3: 精确匹配单个IP:通配符全0(0.0.0.0)。 匹配任意IP:通配符全1(255.255.255.255)。
2.3ACL的分类基于ACL规则定义方式的划分,可分为:基本ACL、高级ACL、二层ACL、用户自定义ACL和用户ACL。 [td] 分类 | 编号范围 | 规则定义描述 | 基本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(UserControlList)组,也可使用目的IP地址或目的UCL组、IP协议类型、ICMP类型、TCP源端口/目的端口、UDP源端口/目的端口号等来定义规则。 |
1)基本ACL: 主要针对IP报文的源IP地址进行匹配,基本ACL的编号范围是2000-2999。比如下面这个例子,创建的是acl 2000,就意味着创建的是基本ACL。![]() 2)高级ACL: 可以根据IP报文中的源IP地址、目的IP地址、协议类型,TCP或UDP的源目端口号等元素进行匹配,高级ACL的编号范围是3000-3999,可以理解为:基本ACL是高级ACL的一个子集,高级ACL可以比基本ACL定义出更精确、更复杂、更灵活的规则。 2.4ACL的匹配规则2.4.1ACL的匹配流程# 匹配原则:一旦命中立即停止匹配。 配置ACL的设备接收报文后,会将该报文与ACL中的规则逐条进行匹配,如果不能匹配上,就会继续尝试去匹配下一条规则。一旦匹配上,则设备会对该报文执行这条规则中定义的处理动作,并且不再继续尝试与后续规则匹配。 匹配流程解释如下: 首先系统会查找设备上是否配置了ACL: 1)如果ACL不存在,则返回ACL匹配结果为:不匹配。 2)如果ACL存在,则查找设备是否配置了ACL规则。
如果规则存在,则系统会从ACL中编号最小的规则开始查找。 [ 如果匹配上了permit规则,则停止查找规则,并返回ACL匹配结果为:匹配(允许)。 如果匹配上了deny规则,则停止查找规则,并返回ACL匹配结果为:匹配(拒绝)。 如果未匹配上规则,则继续查找下一条规则,以此循环。如果一直查到最后一条规则,报文仍未匹配上,则返回ACL匹配结果为:不匹配。
2.4.2ACL的匹配顺序一条ACL可以由多条“deny或permit"语句组成,每一条语句描述一条规则,这些规则可能存在包含关系,也可能有重复或矛盾的地方,因此ACL的匹配顺序是十分重要的。 华为设备支持两种匹配顺序:自动排序(auto模式)和配置顺序(config模式)。缺省的ACL匹配顺序是config模式。 如下图基本 ACL,按照配置顺序(config模式)进行匹配,待匹配的对象为192.168.1.1/24-192.168.1.5/24,系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容易被匹配。 2.4.3ACL的匹配位置如下图所示数据流向,inbound及outbound方向关系: ![]() 3.配置实例3.1使用基本ACL过滤数据流量# 配置需求: 如下图,在Router上部署基本ACL后,ACL将试图穿越Router的源地址为192.168.1.0/24网段的数据包过滤掉,并放行其他流量,从而禁止192.168.1.0/24网段的用户访问Router右侧的服务器网络。 # 配置过程 前提条件:Router已完成IP和相关路由的配置,网络互通。 1)在Router上创建基本ACL,禁止192.168.1.0/24网段访问服务器网络。 [Router]acl 2000
[Router-acl-basic-2000]rule deny source 192.168.1.0 0.0.0.255
[Router-acl-basic-2000]rule permit source any
2)由于192.168.1.0/24网段从接口GE0/0/1进入Router,所以在接口GE0/0/1的入方向应用流量过滤。 [Router]interface GigabitEthernet 0/0/1
[Router-GigabitEthernet0/0/1] traffic-filter inbound acl 2000
[Router-GigabitEthernet0/0/1]quit
3.2使用高级ACL限制不同网段的用户互访# 配置需求: 如下图,某公司通过Router实现各部门之间的互连。为方便管理网络,管理员为公司的研发部和市场部规划了两个网段的IP地址。现要求Router能够限制两个网段之间互访,防止公司机密泄露。 # 配置过程 说明:Router已完成IP和相关路由的配置,网络互通。 1)创建高级ACL 3001并配置ACL规则,拒绝研发部访问市场部的报文。 [Router]acl 3001
[Router-acl-adv-3001]rule deny ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255
[Router-acl-adv-3001]quit
2)创建高级ACL3002并配置ACL规则,拒绝市场部访问研发部的报文。 [Router]acl 3002
[Router-acl-adv-3002]rule deny ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255
[Router-acl-adv-3002]quit
3)由于研发部和市场部互访的流量分别从接口GE0/0/1和GE0/0/2进入Router,所以在接口GE0/0/1和GE0/0/2的入方向配置流量过滤。 [Router]interface GigabitEthernet 0/0/1
[Router-GigabitEthernet0/0/1]traffic-filter inbound acl 3001
[Router-GigabitEthernet0/0/1]quit
[Router]interface GigabitEthernet 0/0/2
[Router-GigabitEthernet0/0/2]traffic-filter inbound acl 3002
[Router-GigabitEthernet0/0/2]quit |