1.ACL快速配置
需求:拒绝PC 1访问PC 3
(1)配置PC
PC 1:
PC 2:
PC 3:
(2)配置R1的接口IP信息
sys
sysname R1
undo info-center enable
interface GigabitEthernet0/0/0
ip address 192.168.1.1 255.255.255.0
quit
interface GigabitEthernet0/0/1
ip address 192.168.2.1 255.255.255.0
quit
interface GigabitEthernet0/0/2
ip address 192.168.3.1 255.255.255.0
quit
display ip interface brief
(3)验证网络连通性
PC 1 ping PC 2 和 PC 3
(4)在R1上创建高级ACL,禁止PC 1访问PC 3:
acl 3000
rule deny ip source 192.168.1.2 0 destination 192.168.3.2 0
#创建规则拒绝源IP为192.168.1.2访问目标IP为192.168.3.2的报文
quit
int g0/0/0
traffic-filter inbound acl 3000
#在G0/0/0接口的入方向调用ACL 3000
quit
(5)验证ACL规则
结果可以看到PC 1无法访问PC 3,说明ACL规则生效拒绝192.168.1.2访问192.168.3.2。
2.ACL技术概述
随着网络的飞速发展,网络安全和网络服务质量QoS (Quality of Service)问题日益突出。访问控制列表 (ACL, Access Control List)是与其紧密相关的一个技术。
ACL可以通过对网络中报文流的精确识别,与其他技术结合,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的,从而切实保障网络环境的安全性和网络服务质量的可靠性。
访问控制列表(ACL)技术是一种基于包过滤的流控制技术,用于实现网络访问控制和流量过滤。
ACL是由一系列permit或deny语句组成的、有序规则的列表。
ACL是一个匹配工具,能够对报文进行匹配和区分。
ACL应用:
• 匹配IP流量
• 在Traffic-filter中被调用
• 在NAT(Network Address Translation)中被调用
• 在路由策略中被调用
• 在防火墙的策略部署中被调用
• 在QoS中被调用
• 其他……
ACL技术通过定义一系列的访问规则,这些规则可以针对数据包的源地址、目的地址、端口号、协议类型等进行匹配,从而实现对网络流量的精细控制。
ACL可以分为不同的类型,包括标准IP访问列表、扩展IP访问列表、命名的IP访问列表等,每种类型都有其特定的应用场景和匹配规则。
例如,标准IP访问列表主要匹配IP包中的源地址,而扩展IP访问列表则提供了更多的匹配项,如协议类型、源端口、目的端口等。
3.ACL工作原理
ACL的工作原理主要涉及在路由设备上定义ACL列表,并将这些列表应用于路由设备的某个接口上,以便对通过该接口的流量进行过滤。当数据包到达路由设备时,路由设备会读取数据包的包头信息,并与ACL列表中的规则进行匹配。一旦数据包与某条规则匹配,路由设备将根据该规则的决定(允许或拒绝)来处理该数据包。如果数据包与所有规则都不匹配,则可能会被默认拒绝或允许,这取决于ACL的配置和默认规则。
3.1ACL的组成
ACL由若干条permit或deny语句组成。每条语句就是该ACL的一条规则,每条语句中的permit或deny就是与这条规则相对应的处理动作。
3.2规则编号
规则编号与步长
规则编号(Rule ID):一个ACL中的每一条规则都有一个相应的编号。
步长(Step): 步长是系统自动为ACL规则分配编号时,每个相邻规则编号之间的差值,缺省值为5。步长的作用是为了方便后续在旧规则之间,插入新的规则。
思考:如果希望增加1条规则,该如何处理?
可以在旧规则10和15之间新增一条rule 11
比如rule 11 deny source 10.1.1.3 0
Rule ID分配规则: 系统为ACL中首条未手工指定编号的规则分配编号时,使用步长值(例如步长=5,首条规则编号为5)作为该规则的起始编号;为后续规则分配编号时,则使用大于当前ACL内最大规则编号且是步长整数倍的最小整数作为规则编号。
例1:首条未手工指定编号的规则分配编号时,会使用默认步长值5作为该规则的起始编号,第二条还是不指定的话,那么就以5的倍数去增加,第二条的步长值就为10进行编号。
例2:当我们指定首条规则的步长小于默认值步长5,比如为2,那么下一跳未指定规则编号步长值就为5。
例3:当我们指定首条规则的步长大于默认值步长5,比如为6,那么下一跳未指定规则编号步长值就为10。而不会从5开始编号。
3.3通配符(Wildcard)
通配符是一个32比特长度的数值,用于指示IP地址中,哪些比特位需要严格匹配,哪些比特位无需匹配。
通配符通常采用类似网络掩码的点分十进制形式表示,但是含义却与网络掩码完全不同。
3.3.1匹配规则:
“0”表示“严格匹配” ; “1”表示“任意”
思考:如何匹配192.168.1.1/24对应网段的地址?
比如rule permit source 192.168.1.0 0.0.0.255;后面通配符的255代表192.168.1.0段的任意匹配了。
3.3.2匹配192.168.1.0/24这个子网中的奇数IP地址,例如192.168.1.1、192.168.1.3、192.168.1.5等。匹配奇数IP最后一位通配符需为1。
特殊的通配符
精确匹配192.168.1.1这个IP地址
192.168.1.1 0.0.0.0 = 192.168.1.1 0
匹配所有IP地址
-
-
- 255.255.255 = any
-
3.4 ACL的分类与标识
3.4.1基于ACL规则定义方式的分类
分类 | 编号范围 | 规则定义描述 |
基本ACL | 2000~2999 | 仅使用报文的源IP地址、分片信息和生效时间段信息来定义规则。 |
高级ACL | 3000~3999 | 可使用IPv4报文的源IP地址、目的IP地址、协议类型、ICMP类型、TCP源/目的端口号、UDP源/目的端口号、生效时间段等来定义规则。 |
二层ACL | 4000~4999 | 使用报文的以太网帧头信息来定义规则,如根据源MAC地址、目的MAC地址、二层协议类型等。 |
用户自定义ACL | 5000~5999 | 使用报文头、偏移位置、字符串掩码和用户自定义字符串来定义规则。 |
用户ACL | 6000~6999 | 既可使用IPv4报文的源IP地址或源UCL(User Control List)组,也可使用目的IP地址或目的UCL组、IP协议类型、ICMP类型、TCP源端口/目的端口、UDP源端口/目的端口号等来定义规则。 |
3.4.2基于ACL配置方法的分类
分类 | 规则定义描述 |
数字型ACL | 传统的ACL标识方法。创建ACL时,指定一个唯一的数字标识该ACL。 |
命名型ACL | 通过名称代替编号来标识ACL。 |
3.4.3基本ACL
编号范围: 2000-2999
假设在某个部门中,不允许10.1.1.1和10.1.1.2访问外网,
创建的基本ACL 2000中,规则5和10精确匹配拒绝源IP地址10.1.1.1和10.1.1.2,
其他10.1.1.0网段源IP地址则可以访问外网。基本ACL功能单一。
3.4.4高级ACL
编号范围: 3000-3999
高级ACL比基本ACL更精准去建立规则。
3.5 ACL的匹配机制
3.6 ACL的匹配顺序及匹配结果
配置顺序(config模式)
系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容易被匹配。
思考:“允许”是指允许流量通过吗?
不是绝对的,主要看ACL调用在什么地方。如果是调用在流量过滤(traffic-filter),那么它就是允许。
3.7 ACL的匹配位置
入站 (Inbound)及出站 (Outbound)方向
3.8 ACL 总结
① 如果某acl 没有被调用,该acl不起任何作用。
② 针对接口下traffic-filter 调用acl,一个接口的同一个方向,只能调用一个acl。
③ 通常情况下,一个acl里面可以有多个rule 规则,从上往下依次执行。
④ 数据包一旦被某rule匹配,就不再继续向下匹配。
⑤ ACL 用来做流量过滤时,默认隐含放过所有(华为设备)
4.ACL 的基础配置
4.1基本ACL的基础配置命令
华为命令中,中括号里的可以选配或者不配,而大括号{ }里面的内容是必配。
(1) 创建基本ACL
[Huawei] acl [ number ] acl-number [ match-order config ]
使用编号(2000~2999)创建一个数字型的基本ACL,并进入基本ACL视图。
例:acl number 2001 或 alc 2001
[Huawei] acl name acl-name { basic | acl-number } [ match-order config ]
使用名称创建一个命名型的基本ACL,并进入基本ACL视图。
例:
(2)配置基本ACL的规则
[Huawei-acl-basic-2000] rule [ rule-id ] { deny | permit } [ source { source-address source-wildcard| any}| time-range time-name ]
在基本ACL视图下,通过此命令来配置基本ACL的规则。
4.2案例一:使用基本ACL过滤数据流量
配置需求:
在R1上部署基本ACL后,ACL将试图穿越R1 的源地址为192.168.1.0/24网段的数据包过滤掉,并放行其他流量,从而禁止192.168.1.0/24网段的用户访R1右侧的服务器网络。
(1)配置PC
PC1:
PC2:
(2)配置R1接口IP信息
sys
undo info-center enable
sysname R1
int g0/0/0
interface GigabitEthernet0/0/0
ip address 192.168.1.1 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.1.1.2 255.255.255.0
interface GigabitEthernet0/0/2
ip address 192.168.2.1 255.255.255.0
quit
(3)验证网络连通性
PC1进行ping访问网关和server
(4)在R1上创建基本ACL,禁止192.168.1.0/24网段访问Internet 服务器网络:
acl 2000
rule 5 deny source 192.168.1.0 0.0.0.255
(5)由于从接口GE0/0/0进入R1,所以在接口GE0/0/0的入方向配置流量过滤:
interface GigabitEthernet0/0/0
traffic-filter inbound acl 2000
quit
(6)验证ACL
ACL规则生效,在R1的GE0/0/0入方向禁止PC1访问服务器,PC2不做ACL控制还是可以访问的。
4.3高级ACL的基础配置命令
(1)创建高级ACL
[Huawei] acl [ number ] acl-number [ match-order config ]
使用编号(3000~3999)创建一个数字型的高级ACL,并进入高级ACL视图。
[Huawei] acl name acl-name { advance | acl-number } [ match-order config ]
使用名称创建一个命名型的高级ACL,进入高级ACL视图。
(2)配置基本ACL的规则
根据IP承载的协议类型不同,在设备上配置不同的高级ACL规则。对于不同的协议类型,有不同的参数组合。
当参数protocol为IP时,高级ACL的命令格式为
在高级ACL视图下,通过此命令来配置高级ACL的规则。
当参数protocol为TCP时,高级ACL的命令格式为
在高级ACL视图下,通过此命令来配置高级ACL的规则。
4.4案例二:使用高级ACL限制不同网段的用户互访
配置需求:
某公司通过R1实现各部门之间的互连。为方便管理网络,管理员为公司的研发部和市场部规划了两个网段的IP地址。
现要求R1能够限制两个网段之间互访,防止公司机密泄露。
(1)配置PC
研发部门PC 1:
市场部门PC 2:
(2)配置R1和Internet的接口IP
R1:
sys
sysname R1
undo info-center enable
interface GigabitEthernet0/0/0
ip address 10.1.1.1 255.255.255.0
quit
interface GigabitEthernet0/0/1
ip address 10.1.2.1 255.255.255.0
quit
interface GigabitEthernet0/0/2
ip address 12.1.1.1 255.255.255.252
quit
Internet:
sys
sysname Internet
undo info-center enable
interface GigabitEthernet0/0/0
ip address 12.1.1.2 255.255.255.252
quit
(3)验证网络连通性
PC 1 ping PC 2 和 Internet
(4)配置路由
R1:
ip route-static 0.0.0.0 0 12.1.1.2
Internet:
ip route-static 10.1.1.0 24 12.1.1.1
ip route-static 10.1.2.0 24 12.1.1.1
或配置汇总的静态路由
ip route-static 10.1.0.0 23 12.1.1.1
验证连通性PC1 ping Internet
(5)创建高级ACL 3001并配置ACL规则,拒绝研发部访问市场部的报文:
acl 3001
rule deny ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255
quit
(6)创建高级ACL 3002并配置ACL规则,拒绝市场部访问研发部的报文:
acl 3002
rule deny ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255
quit
(7)由于研发部和市场部互访的流量分别从接口GE0/0/0和GE0/0/1进入R1,所以在接口GE0/0/0和GE0/0/1的入方向配置流量过滤:
interface GigabitEthernet 0/0/0
traffic-filter inbound acl 3001
quit
interface GigabitEthernet 0/0/1
traffic-filter inbound acl 3002
quit
(8)验证结果
PC 1 访问PC 2
4.5案例三:使用ACL基本命名型和高级命名型做访问控制
配置需求:
PC 1在工作日周一至周五允许访问网络的时间为6:00-23:00;
PC 2 访问PC 1。
(1)R1已完成IP地址和路由的相关配置。
(2)配置PC 1访问网络的时间段
time-range time_to_internet 6:00 to 23:00 working-day
(3)在R1上创建PC 1访问网络的基本命名型ACL,并调用时间规则
acl name PC1_to_internet basic
rule permit source 10.1.1.0 0.0.0.255 time-range time_to_internet
quit
(4)在R1上创建PC 2禁止访问PC 1的高级命名型ACL
acl name deny_PC2_to_PC1 advance
rule deny ip source 10.1.2.2 0 destination 10.1.1.2 0
quit
(5)在R1的G0/0/0和G0/0/1接口的入方向配置流量过滤
int g0/0/0
traffic-filter inbound acl name PC1_to_internet
quit
int g0/0/1
traffic-filter inbound acl name deny_PC2_to_PC1
quit
(6)验证测试
查看所有的ALC
PC 2 访问PC 1