2026-01-27 14:02:59
7
by Devansh Agrawal 和 Avanish Yadav,发布于 2024 年 7 月 30 日在 AWS Client VPN、AWS Network Firewall、客户解决方案、网络与内容交付、技术指南 永久链接 分享
企业通常使用远程访问解决方案来保障远程用户安全地访问其托管在内部网络中的资源。本文将展示各种将 AWS Network Firewall 与 AWS Client VPN 集成的部署模型。AWS Client VPN 是一种管理的客户端 VPN 服务,它通过 AWS SitetoSite VPN 或 AWS Direct Connect 为您提供对 AWS 资源和本地网络资源的安全访问。使用 Client VPN,您可以在任何地点通过基于 OpenVPN 的 VPN 客户端访问您的资源。
您可以使用 AWS Network Firewall 检查远程访问 VPN 流量,以执行以下操作:
对网络流量进行精细控制。例如,阻止外部的 Server Message Block (SMB) 请求,以防止恶意活动的传播。网络过滤,可以停止访问已知的恶意网址并监控完全合格的域名。入侵防御/检测 (IPS/IDS),提供活动流量流检查,以便您可以识别并阻止利用漏洞进行的攻击。将 Network Firewall 与 Client VPN 集成,允许您为远程用户的流量整合网络安全。您可以控制工作负载的访问,并保护其免受远程用户产生的恶意流量的影响。Network Firewall 是一种管理服务,使您能够轻松部署所有 Amazon 虚拟私有云 (Amazon VPC) 和工作负载的基本网络保护。
目前,Client VPN 通过两种类型的路由模式提供对 AWS 资源和非 AWS 资源的访问:
全隧道Tunnel All 默认情况下,当您有一个 Client VPN 端点时,所有来自客户端的流量在连接到该端点后都将通过 Client VPN 隧道路由。这不仅包括 VPC 流量,还包括互联网流量,例如 examplecom。分隔隧道Split Tunnel 当您不希望所有用户流量都通过 Client VPN 端点路由时,可以在分隔隧道模式下使用 Client VPN 端点。启用分隔隧道后,Client VPN 端点会将路由从其路由表推送到 Client VPN 端点。这样,符合路由的流量将通过 Client VPN 隧道路由,而其他流量则通过本地互联网服务提供商。您可以通过多种模式将 Network Firewall 与 Client VPN 集成。此部分描述了不同的部署模式,以及每种架构的好处和考量。选择合适的模型,取决于用例和需求,并且还取决于希望如何将 Client VPN 连接扩展到现有环境。接下来,我们来看两个部署模式:
单一 VPC 架构下的 Client VPN 和 Network Firewall 集成为 Client VPN 流量设计集中式模型的 Network Firewall假设您的工作负载运行在单一 VPC 内,您希望远程用户访问该 VPC 中的资源。在这种情况下,您可以在现有 VPC 中创建单独的 Network Firewall 和 Client VPN 子网,并在防火墙子网中创建 Network Firewall 端点。此外,您可以通过访问 VPC 控制台 创建 Client VPN 端点,并将 Client VPN 子网附加为目标网络。这将会在 Client VPN 子网中创建 Client VPN 弹性网络接口 (ENI)。
根据设计,来自 Client VPN 用户的所有前向流量都将通过 Client VPN 接口 IP 进行源 NAT。因此,来自工作负载或目标的返回流量始终指向 Client VPN 网络接口 IP。在返回流量方面,您必须在工作负载子网的路由表中使用 更具体的路由 功能。您需要为目标添加 Client VPN 子网范围和 Network Firewall 端点的路由。

每个 Client VPN 子网都需要一个专用 VPC 路由表,以确保将流量转发到同一 可用区 (AZ)。这可以避免跨 AZ 的数据转移费用和流量不对称现象。Network Firewall 端点本质上是区域性的。因此,处理前向流量的 Network Firewall 端点也必须处理返回流量。图 1 显示了 Client VPN 子网和两个 AZ 中的 Network Firewall 端点的架构。
图 1 Client VPN 和 Network Firewall 集成点击查看更大版本
现在,让我们来看图 1 中用数字标记的流量流。此流量流发生在远程用户发起连接请求时。
远程用户通过 VPN 客户端连接到 Client VPN 端点。用户的流量进入工作负载 VPC 中的 Client VPN 子网,并被源 NAT 转换为 Client VPN 弹性网络接口 IP 地址。Client VPN 子网路由表中的 VPC CIDR 范围路由和默认路由被配置为将流量转发到防火墙端点。因此,流量将根据其所在的子网和 AZ 被转发到相应的防火墙端点。根据目标,流量将根据防火墙子网路由表中的路由进行不同的转发。目标是互联网的流量将通过 NAT 网关 路由。同一个 VPC 中的工作负载流量经过检查后,直接通过 Network Firewall 端点流动。NAT 网关子网具有指向 Internet Gateway (IGW) 的路由。源 IP 转换发生在 NAT 网关,并且流量将路由至互联网网关 (IGW)。IGW 根据 Client VPN 用户试图连接的目标转发面向互联网的流量。好处和考量此架构的好处和考量如下:
建立简单。无需对现有 VPC 路由表进行重大更改,Network Firewall 可以在 Client VPN 用户和工作负载流量之间透明插入。使用更具体的路由MSR特性,Client VPN 用户的流量在转发到工作负载之前先经过 Network Firewall 检查。如果 Network Firewall 与 NAT 网关同属一个帐户,当 Network Firewall 运行时,没有额外的 NAT 网关费用。如果您打算将 Client VPN 流量转向互联网,Client VPN 弹性网络接口 (ENIs) 默认分配公有 IP 地址。因此,您无需 NAT 网关进行私有到公有 IP 的转换。然而,这些公有 IP 可能会改变。如果您需要固定的静态公有 IP 地址,可以通过 NAT 网关转发远程用户的流量,该网关提供固定的弹性 IP 地址。如果远程用户属于不同的活动目录组,并且具有特定的网络访问要求,则可以使用 Client VPN 的授权规则 根据用户组指定网络访问。Network Firewall 规则是基于 5 元组源和目标 IP 和端口、协议或域创建的,因此无法根据活动目录组限制流量。使用 AWS Transit Gateway 是中心化部署模式的前提条件。它作为网络中心,简化了 VPC 和本地网络之间的连接。在中心化模型中,一个 VPC 被专用为中心化检查 VPC,用于北南和东西向流量,您将在其中部署 Network Firewall 和集中式 NAT 网关以处理外发互联网流量。
在该场景中,为了使用 AWS Client VPN 扩展您的工作负载与远程用户的连接,您将检查 VPC 用作 Client VPN 的目标 VPC。路由配置与第一个模型相似。此模式扩展了第一个模型,但使用 Transit Gateway 为其他工作负载 VPC 提供更多连接性。图 2 显示了此架构。
图 2 中心化模型 AWS Client VPN 和 Network Firewall 在同一 VPC 中点击查看更大版本
您可能需要将 Client VPN 流量导入到与检查 VPC 不同的 VPC 中,因为:
您希望为某些用户临时访问应用程序。在这里,使用相同的 VPC 来进行 Client VPN 和检查并不能在 Transit Gateway 上获得精细的路由控制,因为 Client VPN 和检查 VPC 共享同一路由表请参阅图前面有关检查 VPC 的 Transit Gateway 路由表的详细信息。因此,Client VPN 用户可能会访问其他意想不到的工作负载 VPC。在前述情况下,您可能还希望将每个远程用户的流量进行分段。此时,通过不同的 Client VPN 端点和目标 VPC 访问将为您提供更好的安全控制。您可以通过在 Transit Gateway 上拥有不同的路由表来对不同的 Client VPN 目标 VPC 强制实施精细的路由控制。为这些案例,您需为 Client VPN 端点创建单独的目标 VPC,并通过 Transit Gateway 将它们连接到特定工作负载。然后在 Transit Gateway 上为 Client VPN 目标 VPC 创建单独的路由表。您可以使用现有的检查 VPC 和 Network Firewall 端点来检查 Client VPN 流量。这将使您对 Client VPN 流量的路由有更好的控制。
请参阅图 3 中与 Client VPN 目标 VPC 和 Transit Gateway 路由表相关的路由规则。
图 3:中心化模型 AWS Client VPN 和 Network Firewall 在不同的 VPC 中点击查看更大版本
如图所示,Client VPN 子网和 Network Firewall 端点属于不同的 VPC,并通过 Transit Gateway 连接。我们来看一个远程用户访问 UAT VPC 资源的流量流。
远程用户通过 VPN 客户端连接到 Client VPN 端点。用户流量进入 Client VPN VPC 中的 Client VPN 子网,并被源 NAT 转换。Client VPN 子网路由表中配置有 UAT VPC CIDR 范围的路由,从而转发流量到 Transit Gateway。因此,流量会根据其所在的子网和 AZ 被转发给相应的 Transit Gateway 子网 ENI。根据 Client VPN VPC Transit Gateway 路由表,流量转发到检查 VPC 附加项。流量将进入检查 VPC 中的任何附加的 Transit Gateway 子网和 AZ。根据流量在检查 VPC 中的子网和 AZ 的落点,它将被转发到相应的防火墙端点并进行检查。根据 Network Firewall 子网路由表,流量将经过检查后转发回 Transit Gateway。流量参考检查 VPC Transit Gateway 路由表,并转发到 UAT VPC 中的 Transit Gateway ENI。之后,流量将遵循 VPC 的本地路由,路由到工作负载实例。请注意,返回流量将沿着相反的路径流动。
EC2 访问互联网资源的流量流(A) 来自 EC2 的流量通过子网路由表路由至 TGW
速云梯(B) 根据 Spoke VPC Transit Gateway 路由表,流量将转发到检查 VPC 附加项。流量进入检查 VPC 中的任何附加的 Transit Gateway 子网和 AZ。
(C) 根据流量在检查 VPC 中的子网和 AZ 的落点,它将被转发到相应的防火墙端点并进行检查。
(D) 根据 Network Firewall 子网路由表,流量在检查后转发至 NAT 网关。
(E) 之后,按照检查 VPC 的 NAT 网关子网路由表,流量通过互联网网关路由至互联网。
请注意,返回流量也将沿着相反的路径流动。
好处和考虑事项规划项目时,请考虑以下事项:
使用相同的 Network Firewall 来处理 Client VPN 流量可以避免单独拥有 Client VPN 流量的防火墙端点所产生的额外按小时收费。您可以在多个 Client VPN 目标 VPC 之间共享现有的防火墙端点。Client VPN 目标 VPC 作为 Transit Gateway 的附加项。因此,您将仅需为一项 Transit Gateway 附加项付费截至本文发布时。然而,您通过为 Client VPN 流量在 Transit Gateway 上拥有单独的路由表,来获得额外的路由控制,以及在 Network Firewall 上允许或阻止流量的能力。Network Firewall 运行期间没有额外的 NAT 网关费用。在 Network Firewall 上,必须为不同环境例如生产和 UAT建立允许和拒绝的访问策略。请注意,源始终是 Client VPN 网络接口的 IP 地址。对于第三方远程用户访问,仅根据 AWS Client VPN 授权规则 来允许特定网络范围的访问。您还可以在 Client VPN 目标 VPC 中部署 Network Firewall,这在需要拥有单独的防火墙端点时非常有价值。这将使您能够为远程用户流量创建单独的防火墙策略并在 Transit Gateway 之前进行检查。然而截至本文发布时,单独的 Client VPN 流量的防火墙端点将产生额外的按小时费用。
在将 AWS Client VPN 与 Network Firewall 集成时,请记住以下几点:
尽管每个子网/AZ 中的 Network Firewall 仅由一个防火墙端点表示,但它是高可用的,基于 AWS Hyperplane 技术。Network Firewall 的单个组件故障不会导致 AZ 失败。防火墙端点在所有工作负载使用的 AZ 中部署,因此流量在同一 AZ 内被检查,以避免跨 AZ 数据传输的费用。Transit Gateway 有 数据处理和附加费用。对于中心化模型,Transit Gateway 是必需的。为了避免 Client VPN 产生的无效流量造成 Transit Gateway 数据处理费用,必须在 AWS Network Firewall 和特定 Client VPN 授权规则中拦截流量,以阻止它路由至 Transit Gateway 进行进一步路由和处理。确保在检查 VPC 附加项上启用 [