科普一下网络的灵魂 ACL

目录

前言

一、ACL概述

二、ACL的组成

三、通配符

四、ACL的分类与标识

 五、ACL的基础配置及应用


前言

网络飞速发展,网络业务变得越来越普及,人们已经不满足于仅仅能通信的目的,人们对网络安全与网络服务质量的要求也变得越来越高,于是诞生了(ACL,Access control list,访问控制列表),可以配合其他知识做到控制网络访问行为,防止网络攻击和提高网络带宽利用率的效果

一、ACL概述

ACL是由一系列permit或deny语句组成的,有序规则的列表

ACL只是一个匹配工具,它能够对报文进行抓取和区分

ACL 是由 permit deny 语句组成的一系列有顺序的规则的集合;它通过匹配报文的相关字段实现对报文的分类。
ACL是能够匹配一个 IP 数据包中的源 IP 地址、目的 IP 地址、协议类型、源目的端口等元素的基础性工具; ACL 还能够用于匹配路由条目。

个人理解就是acl是一个只进行区分和抓取报文工作的协议/工具,acl抓取指定报文后存放起来,然后工作就完成了 其他协议或工具再进行更加高级细致的操作,例如Trafic-filter NAT等等

科普一下网络的灵魂 ACL_第1张图片


二、ACL的组成

 •ACL由若干条permitdeny语句组成。每条语句就是该ACL的一条规则,每条语句中的permitdeny就是与这条规则相对应的处理动作。

科普一下网络的灵魂 ACL_第2张图片

 华为文档:

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 端口号)等。

规则编号

科普一下网络的灵魂 ACL_第3张图片

编号( Rule ID ):

一个ACL中的每一条规则都有一个相应的编号。

步长( Step :

步长是系统自动为ACL规则分配编号时,每个相邻规则编号之间的差值,缺省值为5(可以修改),例如:5/10/15.等等步长的作用是为了方便后续在旧规则之间,插入新的规则

Rule ID 分配规则:

系统ACL中首条未手工指定编号的规则分配编号时,使用步长值(例如步长=5,首条规则编号为5)作为该规则的起始编号(缺省状态下);为后续规则分配编号时,则使用大于当前ACL内最大规则编号且是步长整数倍的最小整数作为规则编号。

步长的作用是 什么? 直接 rule 1/2/3/4 为什么不可以?
如果是直接1/2/3/4的话假如让你插入一个3,这时你该怎末办,只能删除3/4,添加3,然后再把之前的3/4改为4/5,但是步长为5的话,直接插入就好了,反正中间有空隙
设置步长也是为了方便后续在旧规则之间插入新的规则

三、通配符

科普一下网络的灵魂 ACL_第4张图片

 注:通配符是一个32比特长度的数值,用于指示IP地址中,哪些比特位需要严格匹配,哪些比特位无需匹配。通配符通常采用类似网络掩码的点分十进制形式表示,但是含义却与网络掩码完全不同。

“0“代表的是匹配(不可变) ”1“代表是随机匹配(可以变化)

当进行 IP 地址匹配的时候,后面会跟着 32 位掩码位,这 32 位称为 通配符。
通配符,也是点分十进制格式,换算成二进制后,“ 0” 表示“匹配”,“ 1” 表示“不关心”。
具体 看下这 2 条规则:
rule 5: 拒绝源 IP 地址为 10.1.1.1 报文通过 —— 因为通配符为全 0 ,所以每一位都要严格匹配,因此匹配的是主机 IP 地址 10.1.1.1
rule 15: 允许源 IP 地址为 10.1.1.0/24 网段地址的报文通过 —— 因为通配符: 0.0.0.11111111 ,后 8 位为 1 ,表示不关心,因此 10.1.1.xxxxxxxx 的后 8 位可以为任意值,所以匹配的是 10.1.1.0/24 网段。
例子 如果 要精确匹配 192.168.1.1/24 这个 IP 地址对应的网段地址,通配符是 多少?
可以得出:网络位需要严格匹配,主机位无所谓,因此通配符为“ 0.0.0.255 ”。

科普一下网络的灵魂 ACL_第5张图片注意:一般没有那么难


四、ACL的分类与标识

 科普一下网络的灵魂 ACL_第6张图片

 注:基本的ACL只可以根据源IP地址进行区分

用户在创建ACL时可以为其指定编号,不同的编号对应不同类型的ACL。同时,为了便于记忆和识别,用户还可以创建命名型ACL,即在创建ACL时为其设置名称。命名型ACL,也可以是“名称 数字”的形式,即在定义命名型ACL时,同时指定ACL编号。如果不指定编号,系统则会自动为其分配一个数字型ACL的编号。

基本ACL

主要针对IP报文的源IP地址进行匹配,基本ACL的编号范围是2000-2999。比如这个例子,创建的是acl 2000,就意味着创建的是基本ACL

高级ACL

可以根据IP报文中的源IP地址、目的IP地址、协议类型,TCPUDP的源目端口号等元素进行匹配,可以理解为:基本ACL是高级ACL的一个子集,高级ACL可以比基本ACL定义出更精确、更复杂、更灵活的规则。

注:

ACL的规则编号越小越容易被匹配,在匹配时先从最小的开始匹配,一但匹配到合适的就结束匹配,所以对同一IP进行截流时的两条不同命令编号小的生效

不在ACL内通过的表,默认为deny

ACL技术总是与其他技术结合在一起使用的,因此,所结合的技术不同,“允许 (permit)”及“拒绝 (deny)”的内涵和作用也会不同。例如,当ACL技术与流量过滤技术结合使用时,permit就是“允许通行”的意思,deny就是“拒绝通行”的意思。

一定要注意配置的位置,位置分入站和出战(应在合适位置,不固定)

科普一下网络的灵魂 ACL_第7张图片

 五、ACL的基础配置及应用

1.创建基本ACL(2000~2999)

[Huawei] acl [ number ] acl-number [ match-order config ]

使用名称创建一个命名型的基本ACL,并进入基本ACL视图。

[Huawei] acl name acl-name { basic | acl-number } [ match-order config ]

2.配置ACL的规则

[Huawei-acl-basic-2000] rule [ rule-id ] { deny | permit } [ source { source-address source-wildcard | any } | time-range time-name ] 
华为官方解释:
[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 或者 source-wildcard 255.255.255.255
time-range time-name :指定 ACL 规则生效的时间段。其中, time-name 表示 ACL 规则生效时间段名称。如果不指定时间段,表示任何时间都生效。

实例

科普一下网络的灵魂 ACL_第8张图片 

配置需求:

Router上部署基本ACL后,ACL试图穿越Router的源地址为192.168.1.0/24网段的数据包过滤掉,并放行其他流量,从而禁止192.168.1.0/24网段的用户访问Router右侧的服务器网络 

1.先完成路由器和IP地址相关配置

2.在router上创建并禁止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 

 3.因为在router处就需要过滤192.168.1.0/24网段,所以应该在router g 0/0/1处配置acl进行拦截

[Router] interface GigabitEthernet 0/0/1
[Router-GigabitEthernet0/0/1] traffic-filter inbound acl 2000
[Router-GigabitEthernet0/0/1] quit

你可能感兴趣的:(数通IA,网络,tcp/ip,运维,网络安全,网络协议)