ACL
访问控制列表(Access Control List,ACL)是一种网络安全技术,用于控制网络流量的进出。它通过定义一系列规则,根据数据包的源地址、目的地址、端口号、协议等信息,决定是否允许数据包通过。
ACL类型
- 基本 ACL:基本 ACL 只能根据数据包的源 IP 地址来过滤流量。由于其过滤条件较为单一,为了避免影响其他网段的正常通信,通常建议将其配置在离目标地址较近的接口的出方向。在实验中,为了阻止
192.168.1.0/24
网段访问192.168.2.0/24
网段,使用基本 ACL 并将其配置在 R2 的 g0/2 接口的出方向。 - 高级 ACL:高级 ACL 可以根据源 IP 地址、目的 IP 地址、端口号、协议类型等多种条件来过滤流量。高级 ACL 的过滤规则更加灵活,能够精确控制网络访问,通常建议将其配置在离源地址较近的接口的入方向。在实验中,为了实现 PC1 和 PC2 对 SERVER1 不同服务的访问控制,以及阻止
192.168.2.0/24
网段访问 SERVER1,都使用了高级 ACL。
ACL 过滤规则的默认动作
在某些设备(如实验中的 H3C 设备)中,ACL 用于包过滤的默认动作是允许。因此,在配置访问控制时,通常只需要配置拒绝规则,允许的规则可以省略。
ACL 配置的最佳实践
- 就近原则:基本 ACL 尽量配置在离目标地址较近的接口的出方向,以避免影响其他网段的正常通信;高级 ACL 尽量配置在离源地址较近的接口的入方向,以减少不必要的流量传输。
- 规则顺序:ACL 规则是按照顺序依次匹配的,一旦匹配到一条规则,就会执行该规则的动作,不再继续匹配后续规则。因此,在配置规则时,需要注意规则的顺序,确保规则的逻辑正确。
实验拓扑
实验需求
-
按照拓扑图示配置 IP 地址
-
全网路由互通
-
在 SERVER 上配置开启 TELNET 和 FTP 服务
-
配置 ACL 实现如下效果
(1)
192.168.1.0/24
网段不允许访问192.168.2.0/24
网段,要求使用基本 ACL 实现(2)PC1 可以访问 SERVER1 的 TELNET 服务,但不能访问 FTP 服务
(3)PC2 可以访问 SERVER1 的 FTP 服务,但不能访问 TELNET 服务
实验步骤
-
设备命名和 IP 地址配置部分省略
-
R1,R2,R3 上配置 RIP 使全网路由互通,步骤省略
-
在 SERVER1 上配置开启 TELNET 和 FTP 服务部分省略
-
配置 ACL 部分
分析:
需求 (1),要求 192.168.1.0/24 网段不允许访问 192.168.2.0/24 网段,只能使用基本 ACL 实现。基本 ACL 只过滤源 IP 地址,只能在 R2 的 g0/2 接口上配置出方向包过滤来实现。如果配置在两个网段沿途的其他位置,将会影响到 192.168.1.0/24 网段和其他网段的正常通讯
需求 (2),PC1 可以访问 SERVER1 的 TELNET 服务,但不能访问 FTP 服务。既然要过滤指定的服务,就只能使用高级 ACL,高级 ACL 不会造成误过滤,所以可以配置在离源地址最近的接口的入方向,也就是 R1 的 g0/1 接口的入方向。另外,由于 H3C 的 ACL 用于包过滤默认动作是允许,所以并不需要专门配置允许 PC1 访问 SERVER1 的 TELNET,只需要配置拒绝访问 FTP 的规则即可
需求 (3),PC2 可以访问 SERVER1 的 FTP 服务,但不能访问 TELNET 服务。同理,只能使用高级 ACL,配置在 R1 的 g0/1 接口的入方向。而且也只需要配置拒绝访问 TELNET 的规则即可 由于需求 (1)和需求 (2) 配置在同一个路由器同一个接口的同方向,所以把规则写入到同一个 ACL 即可
需求 (4):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-acl-ipv4-basic-2000]dis th # acl basic 2000 rule 0 deny source 192.168.1.0 0.0.0.255 # return [R2-acl-ipv4-basic-2000]qu [R2]int g0/2 [R2-GigabitEthernet0/2]packet-filter 2000 outbound [R2-GigabitEthernet0/2]
步骤 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-port range 20 21 [R1-acl-ipv4-adv-3000]rule deny tcp source 192.168.1.2 0 destination-port eq 23 [R1]int 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-acl-ipv4-adv-3000]dis th # acl advanced 3000 rule 0 deny ip source 192.168.2.0 0.0.0.255 destination 192.168.3.1 0 # return [R2]int g0/2 [R2-GigabitEthernet0/2]packet-filter 3000 inbound
-
效果测试
步骤 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 --- Ping statistics for 192.168.2.3 ---
<PC2>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 --- Ping statistics for 192.168.2.3 ---
步骤 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-2021 New H3C Technologies Co., Ltd. All rights reserved.*
* Without the owner's prior written consent, *
* no decompiling or reverse-engineering shall be allowed. *
******************************************************************************
Login: ikun
Password:
<SERVER>
<SERVER>qu
The connection was closed by the remote host!
<PC1>ftp 192.168.3.1
Press CTRL+C to abort.
ftp: connect: Connection timed out
ftp>
*步骤 3:PC2 可以连接 SERVER1的 FTP,但不能连接 TELNE
<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)): ikun
331 Password required for ikun.
Password:
230 User logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
ftp> qu
221-Goodbye. You uploaded 0 and downloaded 0 kbytes.
221 Logout.
<PC2>telnet 192.168.3.1
Trying 192.168.3.1 ...
Press CTRL+K to abort
Connected to 192.168.3.1 ...
Failed to connect to the remote host!
步骤 4:PC3 不能 Ping 通 SERVER1