HCIA-12.ACL原理与配置
背景
网络安全和网络服务质量QoS (Quality of Service)问题日益突出。访问控制列表 (ACL, Access Control List)是与其紧密相关的一个技术。
ACL可以通过对网络中报文流的精确识别(它本身只是识别),与其他技术结合,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的,从而切实保障网络环境的安全性和网络服务质量的可靠性。
ACL的典型应用比如黑、白名单。
目标
- 描述ACL的基本原理和基本作用
- 区分ACL的不同种类及特点
- 描述ACL规则的基本组成结构和匹配顺序
- 掌握ACL中通配符的使用方法
- 完成ACL的基本组网配置。
1、ACL技术概述
1.1、技术背景:需要一个工具,实现流量过滤
某公司为保证财务数据安全,禁止研发部门访问财务服务器,但总裁办公室不受限制。
ACL应用 | 匹配IP流量 在Traffic-filter中被调用 在NAT(Network Address Translation)中被调用 在路由策略中被调用 在防火墙的策略部署中被调用 在QoS中被调用 其他…… |
1.2、ACL概述
ACL是什么:
1、由一系列permit或deny语句组成的、有序规则的列表。
2、一个匹配工具,能够对报文进行匹配和区分。
ACL的作用:
可以通过对网络中报文流的精确识别(它本身只是识别),与其他技术结合,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的。
2、ACL的基本概念及其工作原理
2.1、ACL的分类
通过查看ACL指令,找到ACL的匹配内容。
[AR1]acl ?
INTEGER<2000-2999> Basic access-list(add to current using rules)
INTEGER<3000-3999> Advanced access-list(add to current using rules)
INTEGER<4000-4999> Specify a L2 acl group
ipv6 ACL IPv6
name Specify a named ACL
number Specify a numbered ACL
INTEGER <2000-2999> | 基本ACL,只能匹配 SIP、时间戳、分片、第一个报文 |
INTEGER <3000-3999> | 高级ACL,只能匹配 SIP、时间戳、分片、第一个报文、DIP、协议号、端口号等 |
INTEGER <4000-4999> | 二层ACL、可以匹配 SMAC、DMAC、时间戳、分片 |
ipv6 | 默认是ipv4规则,ipv6则用于定义ipv6需要的规则 |
name | 定义ACL规则的名称便于识别ACL |
number |
2.2、通过指令了解ACL的工作原理
节点 动作 匹配项 参数 通配符掩码
rule 5 permit source 192.168.1.1 0.0.0.0
2.2.1、ACL的节点
一个ACL的每条规则都需要进行排列。
默认5的步长进行条目的排列(5、10、15…),最大值为4294967294。
[AR1-acl-basic-2000]rule ?
INTEGER<0-4294967294> ID of ACL rule
2.2.2、ACL的动作
[AR1-acl-basic-2000]rule 5 ?
deny Specify matched packet deny
description Specify rule description
permit Specify matched packet permit
Permit/deny 只是作为标记使用,具体是允许通过还是禁止通过是由其他技术决定的。
description 则是描述。
2.2.3、ACL的匹配项
ACL匹配的内容。
[AR1-acl-basic-2000]rule 5 permit ?
fragment Check fragment packet
none-first-fragment Check the subsequence fragment packet
source Specify source address
time-range Specify a special time
vpn-instance Specify a VPN-Instance
<cr> Please press ENTER to execute command
2.2.4、ACL的参数
需要匹配的具体信息。
2.2.5、ACL的通配符掩码
连续的1和 连续的0组合 | 0表示 | 1表示 | |
通配符掩码 | 不需要 | 精确匹配 | 任意匹配 |
正掩码 | 需要 | 广播位 | 网络位 |
反掩码 | 需要 | 网络位 | 广播位 |
2.2.6、指令解读
节点 动作 匹配项 参数 通配符掩码
rule 5 permit source 192.168.1.1 0.0.0.0
新增一条节点条目5,该条目允许源IP通过,其参数为192.168.1.1且必须完全匹配。
2.2.x、扩展
题目:假设有源IP 192.A.1.B,其中A为奇数,B为偶数,要如何设置ACL?
思路1:
一个十进制数,能被二整除是偶数,不能被整除则是奇数。
十进制数在计算中会转化为二进制。
在二进制数的2^n次方中,除了2^0次方,所有数都为偶数。
而2^0次方与所有2^n次方加减都为奇数。
128、64、32、16、8、4、2、1
所以,根据二进制数列的特点,判断是否奇偶数取决于最后一位是否存在置位:
0001 0100(偶数),0001 0101(奇数)。
思路2:
A1、在源IP192.A.1.B中,如果A为奇数,则其二进制最后一位应为1 ,即xxxx xxx1;同理,如果B为偶数,则其二进制最后一位应为0,即xxxx xxx0。所以,在填写A和B的时,我们只要填上十进制的A奇数和B偶数(比如1和0),其二进制结果一定是A=0000 0001,B=0000 0000。
A1.1、所以源IP我们可以填写 192.1.1.0,其中A和B可为任意奇数和偶数,比如填192.65.1.64也是可以的,因为65的二进制最后一位为1:0100 0001,64的二进制最后一位为0:0100 0000。
A2、在填写通配符掩码时,我们考虑:
A2.1、通配符掩码为1表示忽略,为0表示匹配;
A2.2、源IP的取值范围是0~255,即八个二进制数位,即 XXXX XXXX;
A2.3、而从二进制的思路考虑,在确定奇数和偶数时,只需要审查最后一位即可。
结论:
B1、根据A2.2我们得出的数位长度为8;
B2、根据A2.3我们得出长度为8的数列中,我们忽略前7个,匹配最后1个;
B3、根据A2.1的规则:忽略匹配填1、需要匹配填0,得出长度为8的二进制数为:1111 1110,即1~7位忽略填入1,最后一位匹配填入0;
B4、将1111 1110转为10进制,为254,则通配符掩码填0.254.0.254。
在ACL规则的计算中,其数位匹配结果如下:
x.65.x.64 → x.0100 0001.x.0100 0000
0.254.0.254 → x.1111 1110.x.1111 1110
2.3、ACL的匹配机制
2.3.1、ACL可以配置多个条目
条目会按照节点的大小,从小到大依次排列;
ACL的匹配也是从小到大依次进行的;
且,如果流量被条目匹配到,则执行条目并停止继续匹配。
如下图中:
SIP 192.168.1.4按从小到大的规则,匹配到rule 20后就停止继续了,所以匹配不到rule25。
2.3.2、ACL的缺省规则
ACL根据匹配信息不同,最终隐含规则(缺省规则)也不同:
A1、如果ACL匹配的是流量,则默认是允许所有;
A2、如果ACL匹配的是路由,则默认是拒绝左右。
具体是流量还是路由,需要根据ACL的外部调用功能确定。
2.3.3、ACL的配置匹配建议
需要先配置精确的信息条目,再配置大范围的信息条目。
比如下面这条,仅允许192.168.1.0、192.168.2.0、192.168.3.0通过,如果将大范围的ACL配在前面,按照匹配的先后顺序则直接拒绝所有流量通过。
2.3.4、调整步长
[AR1-acl-basic-2000]step 6 #调整后默认步长发生改变
指令集
指令 | 功能 |
acl name | |
rule x permit source x.x.x.x y.y.y.y | 节点 |
step | 调整步长 < 1 - 20 > |
rule xxxx permit rule xxxx permit source any | 这两条都代表匹配任意条目 |
- 描述ACL的基本原理和基本作用
- 区分ACL的不同种类及特点
- 描述ACL规则的基本组成结构和匹配顺序
- 掌握ACL中通配符的使用方法
- 完成ACL的基本组网配置。