一、ACL概述
1. ACL定义
ACL(Access Control List,访问控制列表)是用来实现数据包识别功能的列表,由若干条规则条目组成,每条规则包含匹配条件和执行动作(permit或deny)。
2. 应用场景
-
包过滤功能:对数据包进行放通或过滤操作。
-
网络地址转换(NAT)
-
按需拨号
-
QoS流分类:只对数据包进行匹配,或者说对数据 包进行流量分类。
-
路由过滤:对路由进行放行或过滤操作。
-
路由策略:只对路由进行匹配。
二、ACL包过滤工作原理
1. 基本流程
-
配置ACL规则条目
-
将ACL绑定到设备接口
-
数据包匹配规则:
-
匹配permit规则:放行
-
匹配deny规则:丢弃
-
未匹配任何规则:执行隐含规则(思科默认deny,华为/华三可配置)
-
2. 方向性
-
入方向(in):数据包进入设备的方向
-
出方向(out):数据包离开设备的方向
-
每个接口的每个方向只能绑定1条ACL
3. 厂商差异
思科ACL特点:
-
最后隐含拒绝所有规则
-
规则按配置顺序严格匹配
华为/华三ACL特点:
-
无最后隐含规则
-
可配置全局默认规则:
firewall default { permit | deny }
三、ACL分类
1、传统标准ACL (Standard Numbered ACL)
(1). 基本特性
-
标识方式:使用数字编号
-
编号范围:
-
思科/锐捷:1-99,1300-1999
-
华为/H3C:2000-2999
-
-
匹配字段:仅源IP地址
-
配置位置:通常应用在靠近目标的接口(out方向)
(2). 配置语法(思科)
access-list <1-99|1300-1999> {permit|deny} <源IP> <通配符掩码>
(3). 典型示例
! 允许192.168.1.0/24网段,拒绝其他所有流量 access-list 10 permit 192.168.1.0 0.0.0.255 ! 隐含拒绝所有(思科)
(4). 应用接口
interface FastEthernet0/1 ip access-group 10 out
(5). 优缺点
-
优点:配置简单,资源消耗少
-
缺点:只能按照顺序增加规则,不能从中间新增,删除一个规则即删除整条条目,控制粒度粗,无法基于协议/端口过滤
2.命名标准ACL (Standard Named ACL)
(1). 基本特性
-
标识方式:使用有意义的名称
-
匹配字段:仅源IP地址
-
优势:支持规则条目的插入、删除和修改
(2). 配置语法(思科)
ip access-list standard <ACL名称> [序列号] {permit|deny} <源IP> <通配符掩码>
(3). 典型示例
ip access-list standard INTERNAL_ACCESS 10 permit 192.168.1.0 0.0.0.255 20 permit 10.1.1.0 0.0.0.255 ! 在10-20之间可随时插入新规则 15 permit 172.16.1.0 0.0.0.255
(4). 应用接口
interface FastEthernet0/1 ip access-group INTERNAL_ACCESS out
(5). 管理操作
! 删除特定规则 no 15 ! 添加新规则 30 deny 192.168.2.0 0.0.0.255
3、传统扩展ACL (Extended Numbered ACL)
(1). 基本特性
-
标识方式:使用数字编号
-
编号范围:
-
思科/锐捷:100-199,2000-2699
-
华为/H3C:3000-3999
-
-
匹配字段:五元组(源/目IP、协议、源/目端口)
-
配置位置:通常应用在靠近源的接口(in方向)
(2). 配置语法(思科)
access-list <100-199|2000-2699> {permit|deny} <协议> <源IP> <通配符> [源端口] <目的IP> <通配符> [目的端口]
(3). 典型示例
! 允许内网访问外网WEB和DNS access-list 101 permit tcp 192.168.1.0 0.0.0.255 any eq 80 access-list 101 permit tcp 192.168.1.0 0.0.0.255 any eq 443 access-list 101 permit udp 192.168.1.0 0.0.0.255 any eq 53
(4). 应用接口
interface FastEthernet0/0 ip access-group 101 in
(5). 优缺点
-
优点:控制粒度精细
-
缺点:配置复杂,资源消耗较大
4、命名扩展ACL (Extended Named ACL)
(1). 基本特性
-
标识方式:使用有意义的名称
-
匹配字段:五元组(源/目IP、协议、源/目端口)
-
优势:支持规则条目的灵活管理
(2). 配置语法(思科)
ip access-list extended <ACL名称> [序列号] {permit|deny} <协议> <源IP> <通配符> [源端口] <目的IP> <通配符> [目的端口]
(3). 典型示例
ip access-list extended OUTBOUND_FILTER 10 permit tcp 192.168.1.0 0.0.0.255 any eq www 20 permit tcp 192.168.1.0 0.0.0.255 any eq 443 30 permit udp 192.168.1.0 0.0.0.255 any eq domain ! 插入新规则 15 permit icmp 192.168.1.0 0.0.0.255 any echo
(4). 应用接口
interface FastEthernet0/0 ip access-group OUTBOUND_FILTER in
五、ACL高级应用
1. 基于时间的ACL
time-range off-work periodic weekdays 09:00 to 18:00 exit access-list 100 deny ip 172.16.1.0 0.0.0.255 any time-range off-work access-list 100 permit tcp 172.16.1.0 0.0.0.255 any eq www
2. 自反ACL(实现单向访问)
ip access-list extended flow-out permit ip 192.168.0.0 0.0.3.255 any reflect name1 ip access-list extended flow-in evaluate name1 interface F0/4 ip access-group flow-out out ip access-group flow-in in
六、典型配置案例
1. 原始标准ACL案例
拓扑如下
需求: 让vlan10与vlan 20之间无法通信
设置一个名字为10的条目,其中拒绝10.0网段的流量通过(cisco是默认拒绝所有规则的,所以还需要在写一条),一个允许所有流量通过规则。将其条目绑定在vlan 20这个逻辑接口的出方向。
access-list 10 deny 192.168.10.0 0.0.0.255 access-list 10 permit any int vlan 20 ip access-group 10 out
2. 命名标准ACL案例
需求:在1的基础上再加一个vlan 8流量不能和vlan 20通信
ip access-list standard vlan20(创建一个名为vlan20的命名标准acl) 5(序号)deny 192.168.10.0 0.0.0.255 10 permit any 7 deny 192.168.8.0 0.0.0.255 int vlan 20 ip access-group vlan20 out(将其绑定在vlan 20逻辑接口的出接口)
就会发现虽然我是后写的7规则但是实际会添加在5和10规则中间
实验结果
3. 传统拓展ACL案例
需求:拒绝vlan 20的主机去访问DHCP服务器获取地址,但是能通信。
access-list 101 deny udp any(源ip) eq(源端口) 68 any(目的ip) eq(目的端口) 67 access-list 101 permit ip any any int vlan 20 ip access-group 101 in(就近原则,避免资源浪费)
实验结果 ,能ping通但是不能成功获取ip
4. 命名拓展ACL案例
需求:在3的基础上,不允许vlan 20流量访问web服务,但是能ping通
ip access-list extended vlan20 5 deny udp any eq 68 any eq 67 10 permit ip any any int vlan 20 ip access-group vlan20 in(要想拒绝vlan 20流量去访问web,还得加一条) ip access-list extended vlan20 7 deny tcp any 192.168.30.252 0.0.0.255 eq 80
这是命令配上之后的显示,
实验结果。vlan20的流量不能被允许访问web了但是能ping通服务器
拓展一个概念(控制粒度粗/细)
-
标准ACL(粗粒度)
像小区门卫,只认"你是谁"(源IP地址)
要么全放行,要么全禁止
举例:只允许192.168.1.0网段访问 -
扩展ACL(细粒度)
像高级安检机,能检查:-
你是谁(源IP)
-
你要去哪(目标IP)
-
用什么交通工具(TCP/UDP协议)
-
去几楼(端口号)
举例:只允许市场部(192.168.2.0)在工作时间(9:00-18:00)访问财务系统(10.1.1.1)的网页(80端口)
-