网络技术:配置扩展 ACL

目录

ACL 数据包过滤

使用标准 ACL 就可以实现流量过滤功能,但是标准 ACL 的功能是有限的。首先标准 ACL 会将符合过滤规则的源 IP 地址的所有流量都筛出来,但是有时候并不希望过滤掉所有的流量,例如我们只是想限制某网络对 HTTP 服务的访问时,标准 ACL 会将一切流量都过滤而非只过滤 HTTP。其次标准 ACL 只能在网络层进行过夜,也就是只能对于数据包的源 IP 地址进行过滤,这就导致了最好将标准 ACL 配置在尽可能靠近目的地的接口。在实际的情况下往往目的是由目的地的管理员才有权限配置,这就导致标准 ACL 的功能效果有限。
网络技术:配置扩展 ACL
扩展 ACL 可以在传输层和网络层进行过滤,也就是说使用扩展 ACL 可以对某种协议的流量进行过滤,这就使得安全策略可以配置得非常灵活。第二是扩展 ACL 可以对流量的目的地址进行过滤,这样不仅可以在数据包被路由之前就进行过滤减轻网络的负担,也能使过滤的功能更为强大。更重要的是,基于目的地址的过滤可以尽可能在靠近源的地方进行配置,就方便了网络管理员自行规划 ACL 策略。扩展 ACL 会对流量进行解包,根据数据包的协议类型(TCP、UDP 等协议)和端口号进行匹配。
网络技术:配置扩展 ACL

ACL 的放置

对于接口来说,无论是扩展 ACL 还是标准 ACL,配置的规则是一样的——可以在每种协议、每个方向、每个接口上配置一个 ACL。

  • 每种协议一个 ACL:控制接口的流量,必须为接口上启用的每种协议定义一个 ACL。
  • 每个方向一个 ACL:一个 ACL 一次只能在一个接口上控制一个方向的流量,若要同时控制入站和出站流量,则必须分别创建两个 ACL。
  • 每个接口一个 ACL:ACL 为一个接口控制流量,例如GigabitEthernet O/0。

网络技术:配置扩展 ACL
对于整个网络来说,将扩展 ACL 放置在尽可能靠近需要过滤的流量源的位置上。这样不需要的流量会在靠近源网络的位置遭到拒绝,而无需通过网络基础设施。由于标准 ACL 不指定目的地址,所以其位置应该尽可能靠近目的地。除了 ACL 本身的功能决定了配置的方式,还有一些因素需要考虑:

  1. 网络管理员的控制范围:ACL 的放置位置取决于网络管理员是否能够同时控制源网络和目的网络。
  2. 相关网络的带宽:在源上过滤不需要的流量,可以在流量消耗通往目的地的路径上的带宽之前阻止流量传输。
  3. 配置的难易程度:扩展 ACL 可以在每台发出流量的路由器上使用,这通过在源上过滤流量而节省了带宽,但需要在多台路由器上创建扩展ACL。

配置标准 ACL 还是扩展 ACL,需要放置在什么地方,需要具体问题具体分析。

扩展 ACL 创建语法

扩展 ACL 根据多种属性过滤 IP 数据包:

  • 协议类型;
  • 源 IPv4 地址;
  • 目的 IPv4 地址;
  • 源 TCP 或 UDP 端口;
  • 目的 TCP 或 UDP 端口;
  • 用于进行精确控制的可选协议类型信息。

扩展 ACL 创建语法如下,命令涉及到了很多的参数。

Router(config)# access-list access-list-number {deny | permit | remark description protocol {source source-wildcard) [operator port [port-number|acl-name]]{destination destination-wildcard) [operator port [port-number | acl-name]]
参数 说明
access-list-number 使用 100~199 和 2000~2699 之间的编号标识访问列表
deny 匹配条件时拒绝访问
permit 匹配条件时允许访问
remark description 用于输入注释,便于理解
protocol Internet 协议的名称或编号,常用关键字包括 icmp、ip、tcp 或 udp,要匹配所有 Internet 协议可以使用 ip 关键字
source 指定了发送数据包的网络号或主机号
source-wildcard 指定了用于源地址的通配符比特
destination 指定了接收数据包的网络号或主机号
destination-wildcard 指定了用于目的地址的通配符比特
operator (可选)比较源或目的端口,运算符包括 lt(小于)、gt(大于)、ea(等于)、neq(不等于)、range(包括的范围)
port (可选)指定 TCP 或 UDP 端口的编号或名称
established (可选)仅用于 TCP 协议,指示已建立的连接

配置扩展 ACL

实验拓扑

网络技术:配置扩展 ACL

设备 接口 IP 地址 子网掩码 默认网关
R1 G0/1 192.168.10.1 255.255.255.0 不适用
Lo0 192.168.20.1 255.255.255.0 不适用
S0/0/0 (DCE) 10.1.1.1 255.255.255.252 不适用
ISP S0/0/0 10.1.1.2 255.255.255.252 不适用
S0/0/1 (DCE) 10.2.2.2 255.255.255.252 不适用
G0/0 209.165.200.226 255.255.255.224 不适用
G0/1 209.165.201.2 255.255.255.224 不适用
R3 G0/1 192.168.30.1 255.255.255.0 不适用
Lo0 192.168.40.1 255.255.255.0 不适用
S0/0/1 10.2.2.1 255.255.255.252 不适用
S1 VLAN 1 192.168.10.11 255.255.255.0 192.168.10.1
S3 VLAN 1 192.168.30.11 255.255.255.0 192.168.30.1
PC-A NIC 192.168.10.3 255.255.255.0 192.168.10.1
PC-C NIC 192.168.30.3 255.255.255.0 192.168.30.1
Server0 NIC 209.165.200.225 255.255.255.224 不适用
Server1 NIC 209.165.201.1 255.255.255.224 不适用

在实验开始之前,需要先正确配置 PC、路由器和 WEB 服务器,并配置路由使得设备之间可以互通。

配置并验证扩展编号 ACL

对于该网络配置的安全策略如下:

  1. 允许来自 192.168.10.0/24 网络的 Web 流量访问任何网络。
  2. 允许 PC-A 通过 SSH 连接到 R3 串行接口。
  3. 允许 192.168.10.0/24 网络上的用户访问 192.168.20.0/24 网络。
  4. 允许来自 192.168.30.0/24 网络的 Web 流量通过 Web 界面访问 R1 及 ISP 上的 209.165.200.224/27 网络。192.168.30.0/24 网络不能通过 Web 访问其他任何网络。

扩展编号 ACL 的编号范围是 100-199 和 2000-2699,在 R1 上配置 ACL,ACL 编号使用 100。

R1(config)# access-list 100 remark Allow Web & SSH Access
R1(config)# access-list 100 permit tcp any any eq 80

HTTP 协议是 80 端口,所以应该把目的端口设为 80。如果将其置于 G0/1 上可能会阻止网络
192.168.10.0/24 上的用户访问连接到 R1 的任何其他 LAN,如 192.168.20.0/24 网络。因此,您将把它放在 S0/0/0 的 out 方向上。

R1(config)# interface s0/0/0
R1(config-if)# ip access-group 100 out

接下来查看 ACL 100 的配置情况,使用如下 2 个命令。

R1# show access-lists
R1# show ip interface s0/0/0

网络技术:配置扩展 ACL
网络技术:配置扩展 ACL
验证 ACL 100,在 PC-A 上打开 Web 浏览器访问 http://209.165.200.225,此操作应该会成功。
网络技术:配置扩展 ACL
在 PC-A 的命令提示符下对 10.2.2.1 执行 ping 操作,由于 192.168.10.0/24 网络只允许
web 流量退出,所以 ping 操作会失败。
网络技术:配置扩展 ACL

配置并验证扩展命名 ACL

在 R3 上配置策略,将该 ACL 命名为“WEB-POLICY”。

R3(config)# ip access-list extended WEB-POLICY
R3(config-ext-nacl)# permit tcp 192.168.30.0 0.0.0.255 209.165.200.224 0.0.0.31 eq 80

将 ACL “WEB-POLICY” 应用到 S0/0/1 接口。

R3(config-ext-nacl)# interface S0/0/1
R3(config-if)# ip access-group WEB-POLICY out

接下来查看 ACL “WEB-POLICY” 的配置情况,使用如下 2 个命令。

R3# show access-lists
R3# show ip interface s0/0/1

网络技术:配置扩展 ACL
网络技术:配置扩展 ACL
验证 ACL “WEB-POLICY”,在 PC-C 上打开 Web 浏览器访问 http://209.165.200.225 (ISP 路由器),此操作应该会成功。
网络技术:配置扩展 ACL
在 PC-C 上打开到 http://209.165.201.1 的 Web 会话,此操作应该会失败。
网络技术:配置扩展 ACL
在 PC-C 命令提示符下对 PC-A 执行 ping 操作,因为 192.168.30.0/24网络只允许 web 流量退出,所以 Ping 操作失败。
网络技术:配置扩展 ACL

修改并验证扩展 ACL

由于 R1 和 R3 都应用了 ACL,因此 R1 和 R3 上的 LAN 网络之间不允许 ping 或其他流量类型。为了允许 192.168.10.0/24 和 192.168.30.0/24 网络之间的所有流量,需要修改 R1 和 R3 上的 ACL。
在 R1 上进入全局配置模式并修改 ACL。

R1(config)# ip access-list extended 100
R1(config-ext-nacl)# 20 permit ip 192.168.10.0 0.0.0.255 192.168.30.0 0.0.0.255
R1(config-ext-nacl)# end

使用 show access-lists 命令查看 ACL 100。

R1# show access-lists

网络技术:配置扩展 ACL
在 R3 上进入全局配置模式并修改 ACL。

R3(config)# ip access-list extended WEB-POLICY
R3(config-ext-nacl)# 20 permit ip 192.168.30.0 0.0.0.255 192.168.10.0 0.0.0.255
R3(config-ext-nacl)# end

使用 show access-lists 命令查看 ACL WEB-POLICY。

R3# show access-lists

网络技术:配置扩展 ACL
在 PC-A 上对 PC-C 的 IP 地址执行 ping 操作,或者在 PC-C 上对 PC-A 的 IP 地址执行 ping 操作,现在都可以成功。
网络技术:配置扩展 ACL
网络技术:配置扩展 ACL

参考资料

《思科网络技术学院教程(第6版):扩展网络》,[加] Bob Vachon,[美] Allan Johnson 著,思科系统公司 译,人民邮电出版社
《CCNA 学习指南(第 7 版)》,[美] Todd Lammle 著,袁国忠 徐宏 译,人民邮电出版社

上一篇:ACL在数据中心网络中的作用


下一篇:华为Cloud云+OSPF+Wlan+DHCP+ACL策略实验