注意:
- 本教程需要访问 Oracle Cloud。要注册免费账户,请参阅开始使用 Oracle Cloud Infrastructure 免费套餐。
- 它对 Oracle Cloud Infrastructure 身份证明、租户和区间使用示例值。完成实验室后,请使用特定于云环境的那些值替换这些值。
将 OCI 负载平衡器和 OCI WAF 添加到具有 Hub 和 Spoke VCN 路由体系结构的 Hub
简介
本教程将指导您完成在 OCI 中使用 OCI Web Application Firewall (WAF) 部署和配置 Oracle Cloud Infrastructure (OCI) 负载平衡器所需的任务,以及如何在 Hub 和 Spoke VCN 路由环境中运行这些任务。
下图显示了通信流。
使用负载平衡器和 WAF 的外部到 Spoke 连接
目标
- 我们将在 Hub 和 Spoke 网络体系结构中配置 OCI WAF 策略的 OCI 负载平衡器。此外,我们将设置 Web 服务器来监视和跟踪负载平衡器分配流量的方式。
先决条件
-
如果要重新创建本教程中的内容,请确保完成以下教程。
任务 1:查看当前 Hub 和 Spoke 网络体系结构
要继续本教程,我们应该有:
- 1 个中心 VCN(具有防火墙、互联网网关、NAT 网关和服务网关)
- 3 个 Spoke VCN
- 1 个通过 IPSec VPN 连接连接的内部部署
在中心 VCN 中,我们有一个 Windows 实例,可用来连接到请求实例。每个 Spoke 都有一个将配置为 Web 服务器的实例,这些实例可以用作将在本教程中部署的负载平衡器的端点。
下图说明了起点。
任务 2:在 Hub 中配置路由,并在 OCI WAF 和 OCI 负载平衡器、Hub 防火墙和 Spoke 实例之间配置 Spoke 网络体系结构
下图显示了包含所有安全列表和路由表的当前 Hub 和 Spoke 网络体系结构。
在添加 OCI 负载平衡器之前,我们希望确保来自 OCI 负载平衡器子网的流量路由到中心防火墙,以便在将流量发送到请求实例之前,可以在中心防火墙上检查流量。
虽然我们已经有一个默认路由规则来执行此操作,但最佳做法仍然是添加此规则以显式调用它,就像我们对其他网络所做的那样。
-
添加路由规则。
-
登录到 OCI 控制台,导航到网络、虚拟云网络和虚拟云网络。
-
单击路由表。
- 选择 VCN_HUB_RT_DRG_TRANSIT 路由表。
-
-
单击添加路由规则。
- 目标类型:选择专用 IP 。
- 目标类型:输入 CIDR 块。
- 目标 CIDR 块:输入
0.0.0.0/0
。 - 目标选择:输入
172.16.0.20
,这是我们的 pfSense 防火墙的 IP 地址。 - 单击添加路由规则。
-
请注意,
172.16.0.128/25
路由现在已添加到 VCN_HUB_RT_DRG_TRANSIT 路由表中。下图展示了当前 Hub 和 Spoke 网络体系结构,其中包含所有安全列表以及包含路由规则的路由表。
任务 3:在后端服务器上安装 Web 服务器
在分支 VCN 中的所有实例上安装 NGINX Web 服务器。有关如何在 Oracle Linux 实例上安装 NGINX Web 服务器的更多信息,请参见 Task 6:Install a Web server on Instance 。
任务 4:在后端服务器上创建或修改网页
默认情况下,每个 Web 服务器都将配置一个默认网页。要跟踪 OCI 负载平衡器将流量重定向到的位置,最好在网页上更改一些内容,以便了解命中哪个服务器。
可以通过更改默认 NGINX index.html
文件的内容来实现此目的。
sudo nano /usr/share/nginx/html/index.html
对于 Instance-A,更改标头:
<h1>Welcome to nginx! This is INSTANCE-A</h1>
对于 Instance-B,更改标头:
<h1>Welcome to nginx! This is INSTANCE-B</h1>
对于 Instance-C,更改标头:
<h1>Welcome to nginx! This is INSTANCE-C</h1>
确保在更改 index.html
文件后保存它们。
任务 5:安装 OCI 负载平衡器
在创建 OCI 负载平衡器之前,我们首先需要在中心 VCN 安全列表中允许端口 80 入站。从中心 VCN 的公共子网中的负载平衡器进行的所有流量(包括流量)都会路由到 HUB 防火墙。负载平衡器将使用端点的实例在端口 TCP/80 上监听。因此,我们还需要在中心 VCN 上允许端口 TCP/80 入站,以便路由流量的中心 VCN 中的专用子网也允许与分支 VCN 进行通信。
-
添加入站规则。
- 单击左上角的汉堡菜单(≡)。
- 单击 Networking 。
- 单击虚拟云网络。
- 确保您位于虚拟云网络部分。
- 单击 HUB-VCN VCN。
-
单击安全列表。
-
单击 HUB-VCN 的默认安全列表。
- 确保您位于入站规则部分中。
- 单击添加入站规则。
- 添加一个安全规则,允许 TCP/80 从源 (
172.16.0.128/25
) 到所有目标。
注:
-
我们使用应用于 HUB-VCN 的默认安全列表,因此应用于此 HUB-VCN 内的所有单独子网。
-
这也意味着,从公共子网到 HUB-VCN 内的专用子网的流量也会受到此默认安全列表的约束,因为两个子网都应用了相同的默认安全列表。
-
因此,我们允许端口 TCP/80 入站,因为如果我们不这样做,负载平衡器将无法与后端服务器进行全部通信流量从公共子网发送到专用子网,因为我们在 HUB-VCN 的专用子网内使用具有防火墙的 HUB-and-Spoke 体系结构。
-
下图说明了到目前为止添加的安全规则所创建的内容。
-
创建负载平衡器。
- 单击左上角的汉堡菜单(≡)。
- 单击 Networking 。
- 单击负载平衡器。
-
单击创建负载平衡器。
- 输入负载平衡器名称。
- 为可见性类型选择公共。
- 选择 Ephemeral IP address 。
- 向下滚动。
-
保留所有默认值并向下滚动。
- 选择要将负载平衡器附加到的 VCN 。
- 选择要将负载平衡器附加到的子网。
- 单击下一步。
- 选择加权循环作为负载平衡策略。
- 单击添加后端。
- 选择分支 VCN 中实例的所有后端。
- 单击添加选定的后端。
- 请查看后端,并在必要时更改端口。在本教程中,所有后端实例都监听端口 80。
- 向下滚动。
-
将 health check policy 保留为默认值,然后单击 Next 。
- 输入监听程序名称。
- 选择 HTTP 作为监听程序处理的流量类型。
- 输入要为 80 的监听程序端口。
- 单击下一步。
- 选择日志组。
- 单击提交。
-
请注意,负载平衡器状态为 CREATING 。
- 请注意,负载平衡器状态已从 CREATING 更改为 ACTIVE 。
- 请注意,总体运行状况为待定。
- 请注意, Backend sets health 为 pending 。
- 记下负载平衡器的公共 IP 地址。
- 几分钟后,总体运行状况为确定。
- 几分钟后,后端集运行状况为 OK 。
-
向下滚动以查看后端集。
- 单击后端集。
- 单击可用的后端集。
- 请注意,总体运行状况为 OK 。
- 请注意, Backend sets health 为 OK 。
- 向下滚动。
- 单击后端。
- 请注意后端部分中的后端。
- 打开新的浏览器。
- 输入负载平衡器的公共 IP 地址。
- 请注意,负载平衡器会将流量重定向到分支 VCN B 中的实例。
- 刷新页。
- 请注意,负载平衡器现在会将流量重定向到分支 VCN C 中的实例。
- 刷新页。
- 请注意,负载平衡器现在将流量重新定向到分支 VCN B 中的实例。
- 刷新页。
- 请注意,负载平衡器现在会将流量重定向到分支 VCN A 中的实例。
-
下图说明了到目前为止您创建的内容以及流量如何流动。
-
确保集线器防火墙允许将 TCP/80 端口从负载平衡器传输到后端服务器。在本教程中,我们允许集线器防火墙中的所有流量进行测试。
任务 6:安装和配置 OCI Web 应用程序防火墙
-
配置 OCI Web Application Firewall。
- 单击左上角的汉堡菜单(≡)。
- 单击身份和安全。
- 单击 Web Application Firewall 。
-
单击创建 WAF 策略。
- 输入 WAF 策略的名称。
- 单击下一步。
- 确保已启用启用访问控制。
-
使用能够检索您的 ISP IP 地址的网站。在 OCI Web 应用防火墙中配置访问控制时需要执行此操作。在本教程中,我们使用
www.ipchicken.com
检索 ISP IP 地址。 -
在添加访问规则部分中,输入以下信息。
- 单击添加访问规则。
- 输入访问规则的名称。
- 条件类型:选择源 IP 地址。
- 运算符:选择在列表中。
- CIDR IP 范围:输入您自己的 ISP 的 IP 地址。
- 向下滚动。
- 在 Rule action(规则操作)中,输入操作名称并选择 Pre-configured 401 Response Code Action(预配置的 401 响应代码操作)。
- 单击添加访问规则。
- 请注意,已添加访问规则。
- 单击下一步。
-
单击下一步。
-
单击下一步。
- 选择要为其配置 WAF 策略的负载平衡器。使用在任务 5 中创建的负载平衡器。
- 单击下一步。
-
单击创建 WAF 策略。
-
请注意,已创建 WAF 策略。
- 请注意,WAF 策略的状态为 ACTIVE 。
- 单击策略以返回到 WAF 策略页。
-
请注意我们刚刚配置的 WAF 策略。
任务 7:测试 OCI WAF、OCI 负载平衡器连接和 WAF 安全性
-
打开任务 5 中使用的浏览器并刷新页面。
注:如果已关闭,请输入负载平衡器的公共 IP 地址。
-
请注意,无法再访问 Web 服务器,因为我们已使用 WAF 策略阻止它们。
确认
- 作者 — Iwan Hoogendoorn(OCI 网络专家)
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Add OCI Load Balancer and OCI WAF to a Hub with Hub and Spoke VCN Routing Architecture
G12094-01
July 2024