ACL(访问控制列表)概述
一、引言
ACL(Access Control Lists,访问控制列表)是一种基于包过滤的访问控制技术,旨在根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃。该技术广泛应用于路由器和三层交换机,通过ACL可以有效地控制用户对网络的访问,从而最大程度地保障网络安全。
二、ACL的定义与作用
ACL是一种应用在路由器接口的指令列表,这些指令列表用来告诉路由器哪些数据包可以接收、哪些数据包需要拒绝。数据包是否被接收或拒绝,取决于如源地址、目的地址、端口号等特定指示条件。ACL的主要作用包括:
-
限制网络流量、提高网络性能:ACL可以根据数据包的协议,指定这种类型的数据包具有更高的优先级,从而在网络设备中优先处理。
- 提供对通信流量的控制手段:例如,通过ACL可以限定或简化路由更新信息的长度,从而限制通过路由器某一网段的通信流量。
- 提供网络访问的基本安全手段:在网络设备接口处,ACL可以决定哪种类型的通信流量被转发、哪种类型的通信流量被阻塞。
三、ACL的分类
ACL可以分为标准ACL和扩展ACL两大类:
- 标准ACL:只能匹配源IP地址,应用中有三种匹配方式:any(指任意地址)、<net><mask>(指定某个IP网段)、src_range(指定IP的地址范围)。
- 扩展ACL:除了可以匹配源IP地址外,还可以匹配目的IP地址、端口号等。扩展ACL提供了更细致的控制能力。
四、ACL的创建与应用
ACL的创建通常有两种方式:数字命名和字符串命名。数字命名方式使用aclnumber+数字(0~4294967294)进行命名,而字符串命名方式则使用acl name+字母+acl类型进行命名。
在ACL中,每条规则由permit(允许)或deny(拒绝)语句组成,用于指定与该规则相对应的处理动作。通过配置ACL的一条条规则,可以精确地控制网络中的数据流。
ACL的应用范围广泛,包括但不限于包过滤、NAT(网络地址转换)、IPSec(IP安全协议)和QoS(服务质量)等领域。在包过滤中,ACL用于定义过滤规则,从而控制流入和流出网络的数据;在NAT中,ACL用于关联地址转换和数据报文,以实现内部网络访问外部网络的功能;在IPSec中,ACL用于定义数据流,以确保指定的数据流受到保护;在QoS中,ACL用于定义流分类策略,从而实现有区别的服务。
五.基本ACl的配置
创建并应用基本ACL
• 在AR2的G0/0/2出方向上应用以PC1子网为源的基本ACL
[AR2]acl 2000
[AR2-acl-basic-2000]rule deny source 10.10.10.0 0.0.0.255
[AR2-acl-basic-2000]rule permit source any
[AR2-acl-basic-2000]quit
[AR2]interface GigabitEthernet 0/0/2
[AR2-GigabitEthernet0/0/2]traffic-filter outbound acl 2000
查看ACL
• 在AR2上查看ACL
[AR2]display acl all
任务2:验证项目效果(1)
• 从PC1向PC3发起ping测试PC1>ping 10.10.30.10
:验证项目效果(2)
• 从PC1向其他IP地址发起ping测试PC1>ping 3.3.3.3
任务2:查看ACL 2000匹配次数
• 在AR2上查看ACL 2000
[AR2]display acl 2000
六.高级ACL的配置
高级ACL的配置
项目目的:通过使用高级ACL,禁止PC2所属网段的设备访问PC3所属网段的设备,其他流量不受影响。
任务3:高级ACL命令(1)
• 创建高级ACL的命令(系统视图)
acl acl-number高级ACL编号
任务3:高级ACL命令(2)
• 创建高级ACL规则的命令(ACL视图):TCP
rule [rule-id] {deny permit} {protocol-number tcp} [destination
{destination-address destination-wildcard any} destination-port {eq port
gt port lt port range port-start port-end} source {source-address source-
wildcard any} source-port {eq port gt port lt port range port-start
port-end} tcp-flag {ack established fin psh rst syn urg}]
TCP标记
任务3:高级ACL命令(3)
• 创建高级ACL规则的命令(ACL视图):UDP
rule [rule-id] {deny permit} {protocol-number udp} [destination
{destination-address destination-wildcard any} destination-port {eq port
gt port lt port range port-start port-end} source { source-address source-
wildcard any} source-port {eq port gt port lt port range port-startport-end}]
任务3:高级ACL命令(4)
• 创建高级ACL规则的命令(ACL视图):ICMP
rule [rule-id] {deny permit} {protocol-number icmp} [ destination
{destination-address destination-wildcard any} icmp-type {icmp-name icmp-
type [icmp-code]} source {source-address source-wildcard any}]
任务3:高级ACL命令(5)
• 应用高级ACL的命令(接口视图)
traffic-filter {outbound | inbound} acl acl-number
任务3:高级ACL的位置和方向
• 考虑从PC2去往PC3的方向进行过滤,即源IP地址为PC2所属网段,目的IP地址为PC3所属网段,可以在以下接口应用高级ACL:
• AR1接口G0/0/2的入方向
• AR1接口G0/0/0的出方向
• AR2接口G0/0/0的入方向
• AR2接口G0/0/2的出方向
任务3:创建并应用高级ACL
• 在AR1的G0/0/2入方向上应用高级ACL(以PC2子网为源,PC3子网为目的)
[AR1]acl 3000
[AR1-acl-adv-3000]rule deny ip source 10.10.20.0 0.0.0.255 destination 10.10.30.0 0.0.0.255
[AR1-acl-adv-3000]quit
[AR1]interface GigabitEthernet 0/0/2
[AR1-GigabitEthernet0/0/2]traffic-filter inbound acl 3000
任务3:验证项目效果(1)
• 从PC2向PC3发起ping测试PC2>ping 10.10.30.10
任务3:验证项目效果(2)
• 从PC2向其他IP地址发起ping测试PC2>ping 3.3.3.3
任务3:查看ACL 3000匹配次数
• 在AR1上查看ACL 3000
[AR1]display acl 3000
Advanced ACL 3000, 1 ruleAcl's step is 5rule 5 deny ip source 10.10.20.0 0.0.0.255 destination 10.10.30.0 0.0.0.255 (5 matches)
七、总结
ACL作为一种重要的网络安全技术,在保障网络安全和提高网络性能方面发挥着关键作用。通过合理地配置和应用ACL规则,可以有效地控制网络中的数据流,保护网络免受未授权访问和攻击。因此,在网络管理中,ACL的配置和使用是一项重要的任务。