一、ACL概念
1、acl定义: 访问控制列表;用于数据流的匹配和筛选
2、功能:
- 访问控制:ACL+Packet-filter
- 路由控制:ACL+Route-policy
- 流量控制:ACL+QOS
二、ACL的包过滤
1、定义: 对进出的数据包逐包检查,丢弃或允许通过(华三设备默认是允许)
注意:包过滤必须配置在接口的某个方向上才能生效;一个接口的一个方向只能配置一个包过滤策略
2、包过滤的方向
- 入方向(inbount): 只对从外部进入的数据包做过滤
- 出方向(outbount):只对从内部发出的数据包做过滤
3、包过滤的工作流程 ACL的工作流程是顺序匹配,所以把小范围的规则分配一个靠前的顺序
文字描述:
1.数据包到达接口检查是否应用了ACL,是则进入匹配,否则放行
2.按照ACL编号匹配第一条规则,匹配则进一步检查该条规则动作,否则与下一条规则进行匹配(动作允许则放行;动作拒绝则丢弃)
3.继续进行匹配,如匹配则检查规则动作,否则与下一条进行匹配
4.所有规则都不匹配,检查默认动作
包过滤工作流程注意事项
- 如果默认动作是允许,至少需要一条拒绝规则;如果默认动作是拒绝,至少需要一条允许规则
- 在不影响实际效果前提下,把包过滤尽量配置在离源地址最近的接口的入方向(如果放在出方向,路由器还得筛选一下,耽误时间)
4、ACL分类
(1)基本ACL:
只对数据包的源地址进行匹配;用于大范围批量处理
编号2000-2999
(2)高级ACL
对数据包的五元组进行匹配(源IP,目的IP,源端口,目的端口,协议)
编号3000-3999
三、ACL的实验
1、实验要求:
配置 ACL 实现如下效果
192.168.1.0/24 网段不允许访问 192.168.2.0/24 网段,要求使用基本 ACL 实现 PC1 可以访问 SERVER1 的 TELNET 服务,但不能访问 FTP 服务 PC2 可以访问 SERVER1 的 FTP 服务,但不能访问
TELNET 服务
192.168.2.0/24 网段不允许访问 SERVER1,要求通过高级 ACL 实现
2、实验步骤
1、配置 IP 地址部分
略
2、R1,R2,R3 上配置 RIP 使全网路由互通
3、在 SERVER1 上配置开启 TELNET 和 FTP 服务部分
4、配置 ACL 部分
分析:
需求 i,要求 192.168.1.0/24 网段不允许访问 192.168.2.0/24 网段,只能使用基本 ACL 实现。基本 ACL 只过滤源 IP 地址,只能在 R2 的 g0/2 接口上配置出方向包过滤来实现。如果配置在两个网段沿途的其他位置,将会影响到 192.168.1.0/24 网段和其他网段的正常通讯
需求 ii,PC1 可以访问 SERVER1 的 TELNET 服务,但不能访问 FTP 服务。既然要过滤指定的服务,就只能使用高级 ACL,高级 ACL 不会造成误过滤,所以可以配置在离源地址最近的接口的入方向,也就是 R1 的 g0/1 接口的入方向。另外,由于 H3C 的 ACL 用于包过滤默认动作是允许,所以并不需要专门配置允许 PC1 访问 SERVER1 的 TELNET,只需要配置拒绝访问 FTP 的规则即可
需求 iii,PC2 可以访问 SERVER1 的 FTP 服务,但不能访问 TELNET 服务。同理,只能使用高级 ACL,配置在 R1 的 g0/1 接口的入方向。而且也只需要配置拒绝访问 TELNET 的规则即可
由于需求 i 和需求 ii 配置在同一个路由器同一个接口的同方向,所以把规则写入到同一个 ACL 即可
需求 iv:192.168.2.0/24 网段不允许访问 SERVER1,要求通过高级 ACL 实现。高级 ACL 不会造成误过滤,所以可以配置在离源地址最近的接口的入方向,也就是 R2 的 g0/2 接口的入方向。另外,没有明确说明不允许访问什么服务,就是所有都不允许访问,所以高级 ACL 中的协议需要指定为 IP 协议
步骤 1:创建基本 ACL,使 192.168.1.0/24 网段不能访问 192.168.2.0/24 网段,并在 R2 的 g0/2 接口的出方向配置包过滤
[R2]acl basic 2000 [R2-acl-ipv4-basic-2000]rule deny source 192.168.1.0 0.0.0.255 [R2]interface g0/2 [R2-GigabitEthernet0/2]packet-filter 2000 outbound
步骤 2:创建高级 ACL,使 PC1 可以访问 SERVER1 的 TELNET 服务,但不能访问 FTP 服务;PC2 可以访问 SERVER1 的 FTP 服务,但不能访问 TELNET 服务,并在 R1 的 g0/1 接口的入方向配置包过滤
[R1]acl advanced 3000 [R1-acl-ipv4-adv-3000]rule deny tcp source 192.168.1.1 0 destination 192.168.3.1 0 destination-port range 20 21 [R1-acl-ipv4-adv-3000]rule deny tcp source 192.168.1.2 0 destination 192.168.3.1 0 destination-port eq 23 [R1]interface g0/1 [R1-GigabitEthernet0/1]packet-filter 3000 inbound
步骤 3:创建高级 ACL,使PC3 不能访问 SERVER1,并在 R2 的 g0/2 接口的入方向配置包过滤
[R2]acl advanced 3000 [R2-acl-ipv4-adv-3000]rule deny ip source 192.168.2.0 0.0.0.255 destination 192.168.3.1 0 [R2]interface g0/2 [R2-GigabitEthernet0/2]packet-filter 3000 inbound
5、效果测试
步骤 1:PC1 和 PC2 都无法 Ping 通 PC3
[PC1]ping 192.168.2.3 Ping 192.168.2.3 (192.168.2.3): 56 data bytes, press CTRL_C to break Request time out Request time out Request time out Request time out Request time out
步骤 2:PC1 可以连接 SERVER1 的 TELNET,但不能连接 FTP
<PC1>telnet 192.168.3.1 Trying 192.168.3.1 ... Press CTRL+K to abort Connected to 192.168.3.1 ... ****************************************************************************** * Copyright (c) 2004-2017 New H3C Technologies Co., Ltd. All rights reserved.* * Without the owner's prior written consent, * * no decompiling or reverse-engineering shall be allowed. * ****************************************************************************** login: <PC1>ftp 192.168.3.1 Press CTRL+C to abort.
步骤 3:PC2 可以连接 SERVER1 的 FTP,但不能连接 TELNET
<PC2>ftp 192.168.3.1 Press CTRL+C to abort. Connected to 192.168.3.1 (192.168.3.1). 220 FTP service ready. User (192.168.3.1:(none)): <PC2>telnet 192.168.3.1 Trying 192.168.3.1 ... Press CTRL+K to abort Connected to 192.168.3.1 ...
步骤 4:PC3 不能 Ping 通 SERVER1
[PC3]ping 192.168.3.1 Ping 192.168.3.1 (192.168.2.3): 56 data bytes, press CTRL_C to break Request time out Request time out Request time out Request time out Request time out