目录
ACL概述
什么是ACL?
ACL(Access Control List),中文名访问控制列表,是由多条“deny|permit”(拒绝|允许)语句组成,每一条都是一条规则,用于控制网络流量的进出。ACL是防火墙的重要组成部分之一,它基于一定的规则对数据包进行过滤。
ACL的作用
ACL可以基于源IP、目标IP、端口、协议等对数据包进行过滤,从而实现网络流量的精细化管理,达到安全防护的目的。
ACL的应用场景
- 路由器:通常称为ACL技术。
- 防火墙:一般不叫ACL,通常称为策略。
ACL与策略的区别
- 策略可以视为升级版的ACL。
- 策略除了基于源IP、目标IP、端口、协议等对数据包进行过滤外,还可以基于应用层数据等更高级别的信息进行过滤。
ACL的分类
配置ACL时,ACL的类型应该与相应的编号范围保持一致。
基础ACL
- 表号:2000-2999。
- 特点:只能基于源IP地址对包进行过滤。
高级ACL
- 表号:3000-3999。
- 特点:可以基于源IP地址、目标IP地址、目标端口号、协议等对包进行过滤。
其他类型的ACL
- 二层ACL:4000-4999。
- 用户自定义ACL:5000-5999。
ACL的过滤原理
过滤依据
- 源IP地址:用来识别发送数据包的设备。
- 目标IP地址:用来识别接收数据包的设备。
- 端口号:用来识别具体的网络服务。
- 协议:用来识别数据包所使用的传输层协议,如TCP、UDP等。
过滤流程
- 创建ACL规则:定义允许或拒绝的数据包特征。
- 应用ACL规则:将规则应用到具体的接口方向上。
- 匹配数据包:数据包通过接口时,按照规则进行匹配。
- 执行动作:根据匹配结果允许或拒绝数据包通过。
ACL命令
配置ACL时,需要注意以下几点:
- 一定不要忘记wildcard(反掩码):用来指定一个IP地址范围。
- 规则编号:规则编号是可选的,若已有规则编号5,12,则新添加的规则默认编号为15。
- 反掩码:用来指示一个范围,例如:
rule 1 deny source 192.0.0.0 0.255.255.255
,这条规则表示拒绝所有192网段的通信。
标准ACL命令
示例
[R2] acl 2000
[R2-acl-basic-2000] rule deny source 172.16.10.1 0
[R2-acl-basic-2000] rule permit
[R2-acl-basic-2000] quit
[R2] interface GigabitEthernet0/0/1
[R2-GigabitEthernet0/0/1] traffic-filter outbound acl 2000
这条命令的意思是创建一个编号为2000的基础ACL,拒绝源地址为172.16.10.1的数据包,允许其它所有数据包,并将该规则应用到接口GigabitEthernet0/0/1的出方向上。
高级ACL命令
高级ACL可以基于源IP地址、目标IP地址、目标端口号、协议等进行更详细的过滤。
示例
[R1] acl 3000
[R1-acl-adv-3000] rule 5 permit tcp source 192.168.1.0 0.0.0.255 destination 172.16.10.0 0.0.0.255 destination-port eq 80
[R1-acl-adv-3000] quit
[R1] interface GigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0] traffic-filter inbound acl 3000
这条命令的意思是创建一个编号为3000的高级ACL,允许源地址为192.168.1.0/24的数据包访问目标地址为172.16.10.0/24,并且目标端口号为80(HTTP)的数据包,并将该规则应用到接口GigabitEthernet0/0/0的入方向上。