亚马逊AWS官方博客

使用Gateway Load Balancer和Palo alto防火墙实现集中的网络流量深度检测

第1章   概述

1.1        背景

亚马逊云科技(中国区)最近宣布了新的AMAZON 网关负载均衡器 (GWLB)与Palo Alto Networks的VM-Series虚拟防火墙之间的全面集成支持,这个最新的服务将对用户在亚马逊云科技中部署、扩展和管理第三方虚拟设备和服务提供巨大便利,使得安全网关和虚拟防火墙类产品具备了更大规模的安全扩展和性能提升能力。

1.2

在 AMAZON 中部署 VM-Series系列防火墙时,客户通常会利用 AMAZON Transit Gateway部署。与大多数客户一样,您可能将带有应用程序工作负载的分支 VPC 连接到 AMAZON Transit Gateway,然后在专用安全 VPC 中部署 VM 系列防火墙并连接到同一个 AMAZON Transit Gateway。

在GWLB未推出之前,通常我们只能采用NLB或者ALB上挂载两台防火墙来控制入向流量负载均衡并实现防火墙高可用。然而对于出向流量的控制,无法实现防火墙高可用。用户将不得已必须在便捷性,扩展性,性能和安全一致性方面做出妥协。

以下是在没有采用AMAZON网关负载均衡器(GWLB)时的架构挑战:

挑战 #1 – 在部署规模和吞吐量性能之间做出妥协

通过AMAZON Transit Gateway环境,您有两个连接选项可以实现VM-Series系列防火墙的路由出站和东西向流量安全防护:

您可以使用 AMAZON Transit Gateway VPN 附件部署具有加密隧道的 VM 系列(参见图 1)。

您可以使用 AMAZON Transit Gateway VPC 附件以主动-被动 HA 模式部署 VM 系列。

– 第一个选项提供了使用等价多路径路由 (ECMP) 和多个 VPN 连接的规模,但每个 VPN 连接提供的吞吐量有限,为 1.25 Gbps

– 第二个选项使用 VPC 连接,提供高达50 Gbps 的吞吐量,但不会扩展到单个活动 VM 系列防火墙(每个 AMAZON 可用区)。

图 1:当前采用 VM 系列的中转网关部署模型可能会迫使客户在可见性、可扩展性和性能之间做出权衡。

挑战 #2 – 基于可见性和防火墙集中管理的挑战

入站流量保护也存在类似的权衡。与大多数客户一样,您可能使用“三明治”架构,强制所有入站应用程序流量流经入站安全 VPC。这个入站安全 VPC 托管一个用于威胁预防的自动扩展防火墙堆栈(参见图 1)。虽然此架构使您能够集中管理防火墙和安全策略,但它还要求防火墙对流量应用源地址转换 (SNAT) 以保持流对称,从而使您的应用程序的源身份变得模糊。

VM 系列虚拟防火墙与 GWLB 的集成减轻了上述权衡问题。

图 2 中显示的这种新集成使您能够使用本机 AMAZON 网络构造(例如 VPC 附件)来动态扩展您的 VM 系列防火墙,以匹配您的入站、出站和东西向流量需求。

2. AMAZON Gateway Load Balancer 以更高的规模和吞吐量性能简化了 VM 系列虚拟防火墙的插入,以实现入站、出站和东西向流量保护。

1.3

GWLB的推出使得防火墙可以在实现高可用的情况下同时检测入向和出向的流量,GWLB使用Geneve协议(UDP 6081)与防火墙建立通信,将收到的流量转发到后端一组防火墙,并实现健康检查、负载均衡、粘性链接等管理功能。通过采用GWLB的架构部署VM-Series系列防火墙,将具备以下优势:

  • 简化连接:在应用程序的出站、东西向和入站流量路径中轻松插入自动扩展的 VM 系列防火墙堆栈。VM 系列和 GWLB 使用 GENEVE 封装来保持您的流量数据包标头和有效负载完整,为您的应用程序提供源身份的完整可见性——换句话说,不再需要 SNAT。
  • 大规模性能:通过使用 AMAZON 原生网络结构和 AMAZON Transit Gateway VPC 附件,以更高的吞吐量跨多个 VM 系列防火墙扩展您的流量。您不再需要用于东西向和出站流量检查的加密隧道——换句话说,没有 IPsec 隧道开销。
  • 经济高效:减少保护 AMAZON 环境所需的防火墙数量,并通过集中安全管理整合整体网络安全状况。

 

第2章   部署规划

2.1        规划拓扑

部署拓扑图如下所示:

2.2        部署说明

GWLB部件:

  • Customer VPC:应用程序所在VPC
  • GWLB Endpoint:放置在Customer VPC的一块虚拟网卡,作为路由下一跳,跨AZ冗余需要在每个AZ有一个GWLB endpoint
  • Ingress Router: 绑定IGW的Internet入口路由表
  • GWLB:放置在安全区VPC的4层负载均衡服务,每个可用区会创建一个网络接口并且获得一个地址,用于与PA防火墙建立GENEVE 隧道
  • GWLB Private Link: Customer VPC和 Security VPC间不需要VPC peer, GWLB Endpoint 通过GWLB private link连接到GWLB负载均衡

入向流量转发流程(红色路径)

  • 入口流量进入IGW ingress 路由表
  • Ingress 路由表把业务服务器网关路由下一跳指向GWLB endpoint虚拟网卡
  • GWLB endpoint转发数据到GWLB, GWLB 把流量负载到PA,PA把处理后流量回送到GWLB
  • GWLB 把数据回送到GWLB endpoint, GWLB endpoint转发数据到应用实例

出向流量转发流程(蓝色路径)

  • 应用实例路由表下一跳GWLB endpoint。
  • GWLB endpoint转发数据到GWLB, GWLB 把流量负载到PA,PA把处理后流量回送到GWLB,GWLB 把数据回送到GWLB endpoint。
  • GWLB endpoint 转发到IGW
  • IGW把出向流量转发出互联网

 

第3章   部署步骤

3.1        VPC配置

3.1.1      创建两个VPC

名称 网段 备注
pa-test-APP 10.10.0.0/16 应用程序所在VPC
pa-test-SEC 10.20.0.0/16 PA防火墙所在VPC

3.1.2      创建子网

APP-VPC 2个子网

名称 网段 备注
pa-test-APP-APP01 10.10.20.0/24 应用程序所在子网
pa-test-APP-GWLBe01 10.10.10.0/24 GWLBe所在子网


SEC-VPC 4个子网

名称 网段 备注
pa-test-SEC-GWLB01 10.20.10.0/24 GWLB(AZ-1a)所在子网、PA01-untrust接口
pa-test-SEC-GWLB02 10.20.30.0/24 GWLB(AZ-1b)所在子网、PA02-untrust接口
pa-test-SEC-MGT01 10.20.20.0/24 PA01-MGT接口
pa-test-SEC-MGT02 10.20.40.0/24 PA02-MGT接口

3.1.3      创建路由表

APP-VPC 3个路由表:

IGW ingress路由表关联IGW, 不需要关联其它子网,控制ingress路由。

GWLBe路由表关联 GWLBe子网

APP路由表关联应用子网

3.2        创建并配置PA防火墙

3.2.1      创建PA防火墙实例

在创建实例中选择AMAZON Marketplace,搜Palo Alto,选择VM Series镜像(10.0.4版本):

选择c5.xlarge版本:

选择正确的VPC和子网:

这里需要选择untrust子网,作为PA默认的第一块网卡。

为接口设置IP地址,并添加一个网络接口,选择MGT子网,并设置IP地址;

在高级选项中输入mgmt-interface-swap=enable,交换两个端口的映射。

输入plugin-op-commands=Amazon-gwlb-inspect:enable,允许PA和GWLB通信:

添加存储、添加标签、添加安全组默认直接选择下一步即可


选择密钥对,并启动:

关闭PA源/目地址检查。

选择实例-操作-网络-更改源/目地址检查:

需要给PA管理口绑定EIP,方便通过公网管理。

在SEC VPC中新建一个路由表,关联两个PA管理口子网,并配置默认路由指向SEC VPC的IGW,使得PA管理口可以通过EIP访问。

3.2.2      登录PA Web配置界面进行设备配置

将第一个接口配置为DHCP模式

开启接口ping、HTTP、HTTPS功能

GWLB使用TCP协议/80端口对PA进行健康检查

3.3        创建应用实例

启动Windows实例

给这台Windows实例绑定一个EIP。

通过EIP可以直接远程连接这台Windows实例,并开启IIS服务。

通过公网访问EIP,可以访问服务器Web页面

3.4        创建GWLB和负载目标群组

创建Gateway Load Balancer

选择SEC VPC,因为PA采用双可用区部署,需要选择两个可用区,每个可用区用单独的地址与同可用区的PA建立GENEVE隧道。

配置路由,选择目标为实例,检测协议TCP ,端口80, PA接口上需开启HTTP管理服务

注册目标组,选择所有PA实例

完成GWLB创建,启用跨区域负载均衡, 在负载均衡描述栏目下的属性字段配置。

查看目标群组,待健康检查通过即可。

3.5        创建GWLB endpoint服务

VPC > Virtual Private Cloud >终端节点服务

关联GWLB, 取消需要接受以使用终端节点选项

记录GWLB 终端服务全名

VPC > Virtual Private Cloud> 创建GWLB 终端节点虚拟网卡

按名称查找服务,点验证服务可用,选择 APP VPC及对应子网。

待GWLB endpoint状态变为可用即可

3.6        修改路由表

在Ingress 路由表中,添加一条去服务器子网(10.10.20.0/24)的路由并指向GWLB endpoint

在GWLBe子网路由表中,添加一条去往0.0.0.0/0子网的路由并指向VPC的IGW

在App 子网路由表中,添加一条去往0.0.0.0/0子网的路由并指向GWLB endpoint

 

第4章

测试共分为业务访问和内部上网两个部分,分别对应了入向流量和出向流量。从测试结果上看,可以同时在两台PA防火墙上看到对应的访问日志,这说明GWLB已经正常将流量转发至PA,并且实现了高可用性。同时PA可以对接收到的流量进行控制,应用识别以及威胁检测。

4.1        业务访问

测试方法:

52.82.115.132是服务器公网地址,223.167.206.233是客户端地址。

  • 通过客户端浏览器访问服务器公网地址观察是否可以打开IIS页面;
  • 通过远程控制软件访问服务器公网地址查看是否可以远程管控服务器;
  • 确认两台PA上是否都记录到相关日志。

测试截图:

成功打开IIS页面

成功实现对服务器远程控制

PA记录到访问服务器IIS服务日志,端口为80

PA记录到远程控制服务器日志,端口为3389

测试结论:

两台PA防火墙均记录到服务器业务访问日志,测试成功。高可用性功能正常。

4.2        内部上网

测试方法:

客户端地址:10.10.20.110

  • 在服务器上通过浏览器打开网页,观察是否可以成功上网;
  • 确认两台PA上是否都记录到相关日志。

测试截图:

成功浏览网页

PA记录到服务器对外访问网页的日志

测试结论:

两台PA防火墙均记录到服务器对外访问网页日志,测试成功。高可用性功能正常。

 

本篇作者

金志勇

Palo Alto Networks 渠道技术技术经理

刘瀚文

产品技术专家,亚马逊云科技产品部网络方向