Cisco ASA:未通过 ACL 过滤的虚拟池 IP

网络工程 思科-ASA acl l2tp
2022-02-22 21:03:07

我们的一位客户在三个不同的地点拥有公司网络。让我们假设:

  • 位置 A:192.168.1.0/24
  • 位置 B:192.168.2.0/24 和
  • 位置 C:192.168.3.0/24

在每个位置,Cisco ASA 都会为其他位置创建一个 VPN。位置 A 还建立了一个 L2TP 隧道来连接远程 PC,该远程 PC 应访问网络 B 中的一些 IP 地址。远程 PC 的 IP (10.10.10.1/24) 在 PC 建立 L2TP 时通过虚拟 IP 池分配联系。

这部分是相当不错的设置。由于我们的 ACL,笔记本电脑只能访问网络 B 中的预定义 IP 地址,而不能访问其他 IP 地址。

但是 PC 可以访问位置 A 上的所有网络 - 它的 L2TP 隧道结束的位置。我们还为传入和传出接口创建了 ACL。但我的想法是,由于虚拟 IP 是 ASA 内部的东西,因此您不能在其上放置任何 ACL。

所以问题是:如何拒绝远程 PC (10.10.10.1/24) 对位置 A (192.168.1.0/24) 的访问?(并保持与位置 B 的连接处于活动状态 (192.168.2.0/24))

1个回答

我至少可以想到三种方法来解决此问题,我将按以下顺序尝试解决方案:

  1. 以不同的方式制作您的 NAT 语句(或删除适用的 NAT),以便 VPN 客户端在与位置 A 通信时没有静态 NAT。这将有效地导致流量被 NAT 并会破坏它。
  2. 将该vpn-filter命令应用于隧道的组策略。此 ACL 仅在流量从客户端到达时在入站方向进行评估。它不会影响到客户端的流量。
  3. 更改 ASA 处理加密流量的默认方式,并使用您的常规 ACL 来完成这项工作。

具体到第 3 点,这里有一些详细信息:

默认情况下,Cisco ASA 会将任何成功解密的 VPN 流量(它终止的任何隧道)视为本质上受信任的,类似于安全级别 100(但流量实际上没有安全级别)。在您的情况下,我会做的是禁用该默认行为,以便 VPN 流量像正常流量一样受所有正常 ACL 的约束。为此,有 3 个步骤:

  • 将 ACE 添加到允许构建 VPN 的外部 ACL。这将包括允许 ISAKMP(udp 500 和 4500)和 ESP(IP proto 50)。
  • 将 ACE 添加到允许隧道内的流量流动的外部 ACL。这将包括允许 10.10.10.1/24 到达 192.168.2.0/24。
  • 发出no sysopt connection permit-vpn命令,禁用信任所有已解密 VPN 流量的默认行为。

在实施此解决方案之前,您绝对应该在实验室中对其进行测试,以便对它的工作方式感到满意,并确保您已涵盖所有 ACL。