配置全球网络防火墙政策以允许流向 FQDN 的出站流量

了解如何使用 Google Cloud 控制台创建和配置全球网络防火墙政策,以允许流向特定完全限定域名 (FQDN) 的出站流量。防火墙政策会阻止源自您的网络的所有其他出站流量。本快速入门创建包含子网的 Virtual Private Cloud (VPC) 网络,在 VPC 网络中创建虚拟机 (VM) 实例,设置使用出站流量规则的防火墙政策,然后测试虚拟机中的防火墙政策。

准备工作

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. Enable the Compute Engine and Identity-Aware Proxy (IAP) APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. 确保您的 Google Cloud 项目已启用结算功能

  7. Enable the Compute Engine and Identity-Aware Proxy (IAP) APIs.

    Enable the APIs

  8. 确保您具有 Compute Network Admin 角色 (roles/compute.networkAdmin)。

创建包含 IPv4 子网的自定义 VPC 网络

创建包含 IPv4 子网的自定义模式 VPC 网络。

  1. 在 Google Cloud 控制台中,转到 VPC 网络页面。

    进入 VPC 网络页面

  2. 点击创建 VPC 网络

  3. 对于名称,输入 vpc-fw-policy-egress

  4. 对于子网创建模式,选择自定义

  5. 新子网部分中,为子网指定以下配置参数:

    • 名称:输入 subnet-1
    • 区域:选择 us-central1
    • IPv4 范围:输入 10.0.0.0/24
  6. 点击完成

  7. 点击创建

创建虚拟机

在上一部分中配置的子网中创建虚拟机。

  1. 在 Google Cloud 控制台中,转到创建实例页面。

    转到“创建实例”

  2. 对于名称,输入 instance-1-us

  3. 对于区域,请选择 us-central1 (Iowa)

  4. 展开高级选项,然后展开网络

  5. 网络接口部分中,展开现有网络接口并指定以下配置参数:

    • 网络:选择 vpc-fw-policy-egress
    • 子网:选择 subnet-1 IPv4 (10.0.0.0/24)
    • 外部 IPv4 地址:选择
  6. 点击完成

  7. 点击创建

创建 Cloud Router 路由器和 Cloud NAT 网关

在上一部分中,您创建了一个没有任何外部 IP 地址的虚拟机。如需使该虚拟机能够访问公共互联网,请为创建虚拟机所在的同一区域和子网创建 Cloud Router 路由器和 Cloud NAT 网关。

  1. 在 Google Cloud 控制台中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击开始使用创建 Cloud NAT 网关

    注意:如果这是您创建的第一个 Cloud NAT 网关,请点击开始。如果您已有网关,Google Cloud 会显示创建 Cloud NAT 网关按钮。如需创建其他网关,请点击创建 Cloud NAT 网关

  3. 对于网关名称,输入 fw-egress-nat-gw

  4. NAT 类型列表中,选择公共

  5. 选择 Cloud Router 路由器部分中,指定以下配置参数:

    • 网络:选择 vpc-fw-policy-egress
    • 区域:选择 us-central1(爱荷华)
    • Cloud Router:点击创建新路由器
      1. 对于名称,输入 fw-egress-router
      2. 点击创建
  6. 点击创建

创建全球网络防火墙政策以启用 IAP

如需为网络中的虚拟机启用 Identity-Aware Proxy,请创建全球网络防火墙政策并向该政策添加防火墙规则。IAP 允许对虚拟机的管理员权限。

该防火墙规则必须具有以下特征:

  • 应用于您希望可以使用 IAP TCP 转发访问的所有虚拟机。
  • 允许 IP 地址范围 35.235.240.0/20 的入站流量。此范围包含 IAP 用于 TCP 转发的所有 IP 地址。
  • 允许与您希望可以使用 IAP TCP 转发访问的所有端口(例如,用于 SSH 的端口 22)的连接。

如需启用对 vpc-fw-policy-egress 网络中的所有虚拟机的 IAP 访问,请按照以下步骤操作:

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 点击创建防火墙政策

  3. 配置政策部分的政策名称中,输入 fw-egress-policy

  4. 部署范围列表中,选择全局,然后点击继续

  5. 如需为政策创建规则,请在添加规则部分中点击添加规则

    1. 优先级字段中,输入 100
    2. 对于流量方向,选择入站
    3. 对于对匹配项执行的操作,选择允许
    4. 日志列表中,选择开启
    5. 目标部分的目标类型中,选择网络中的所有实例
    6. 来源部分的 IP 范围中,输入 35.235.240.0/20
    7. 协议和端口部分中,选择指定的协议和端口
    8. 选中 TCP 复选框,在TCP字段中,输入 22
    9. 点击创建
  6. 点击继续

  7. 如需将 VPC 网络与政策关联,请在将政策与 VPC 网络关联部分中,点击关联

  8. 选中 vpc-fw-policy-egress 复选框,然后点击vpc-fw-policy-egress

  9. 点击继续

  10. 点击创建

添加防火墙规则以拒绝流向所有目的地的出站流量

如需拒绝流向所有目的地的出站流量,请向 fw-egress-policy 添加防火墙规则。

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 网络防火墙政策部分中,点击 fw-egress-policy

  3. 点击创建规则

  4. 优先级字段中,输入 700

  5. 流量方向列表中,选择出站

  6. 对匹配项执行的操作部分,选择拒绝

  7. 日志列表中,选择开启

  8. 目的地部分的 IP 范围中,输入 0.0.0.0/0

  9. 点击创建

添加防火墙规则以仅允许流向特定 FQDN 的出站流量

如需仅允许流向特定 FQDN (ads.google.com) 的出站流量,请在 fw-egress-policy 中添加防火墙规则。

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 网络防火墙政策部分中,点击 fw-egress-policy

  3. 点击创建规则

  4. 优先级字段中,输入 600

  5. 流量方向列表中,选择出站

  6. 对于对匹配项执行的操作,选择允许

  7. 日志列表中,选择开启

  8. 目标部分中,为 FQDN 输入 ads.google.com

  9. 点击创建

测试全球网络防火墙政策

配置全球网络防火墙政策后,请按照以下步骤操作来测试政策:

  1. 在 Google Cloud 控制台中,转到虚拟机实例页面。

    转到虚拟机实例

  2. instance-1-us 虚拟机实例的连接列中,点击 SSH

  3. SSH-in-browser 对话框中,点击授权并等待连接建立。

  4. 如需验证是否允许流向 https://ads.google.com 的出站流量,请运行以下命令:

      curl -I https://ads.google.com
    

    上述命令会返回 https://ads.google.com 的标头信息,这意味着允许出站连接。

  5. 如需验证出站流量是否被阻止流向任何其他目的地,请指定任何 FQDN 并运行以下命令:

      curl -m 2 -I https://mail.yahoo.com
    

    上述命令会返回 Connection timed out 消息,这是正常的,因为您创建了防火墙规则,以拒绝流向除 https://ads.google.com 之外的所有目的地的出站流量。

查看日志

您可以通过访问日志来验证防火墙规则是否已应用于出站流量。如需查看日志详细信息,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 网络防火墙政策部分中,点击 fw-egress-policy

  3. 命中数列中,点击您在创建全球网络防火墙政策部分中创建的规则对应的数字。Logs Explorer 页面随即会打开。

  4. 如需查看应用于出站流量的防火墙规则,请展开单个日志。您可以通过展开相关部分来查看连接、处理方式、远程位置和规则详细信息。

清理

为避免因本快速指南中使用的资源导致您的 Google Cloud 账号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。

要删除在本快速入门中创建的资源,请完成以下任务。

删除防火墙政策

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 网络防火墙政策部分中,点击 fw-egress-policy

  3. 点击关联标签页。

  4. 选中 vpc-fw-policy-egress 复选框,然后点击移除关联

  5. 移除防火墙政策关联对话框中,点击移除

  6. 点击删除

  7. 删除防火墙政策对话框中,点击删除

删除虚拟机

  1. 在 Google Cloud 控制台中,转到虚拟机实例页面。

    转到虚拟机实例

  2. 选中 instance-1-us 虚拟机对应的复选框。

  3. 点击删除

  4. 删除 instance-1-us 对话框中,点击删除

删除 Cloud NAT 网关和 Cloud Router 路由器

  1. 在 Google Cloud 控制台中,前往 Cloud Router 路由器页面。

    前往“Cloud Router 路由器”

  2. 选择 fw-egress-router 对应的复选框。

  3. 点击删除

  4. 删除 fw-egress-router 对话框中,点击删除

删除 Cloud Router 路由器时,关联的 Cloud NAT 网关也会被删除。

删除 VPC 网络及其子网

  1. 在 Google Cloud 控制台中,转到 VPC 网络页面。

    进入 VPC 网络页面

  2. 名称列中,点击 vpc-fw-policy-egress

  3. 点击删除 VPC 网络

  4. 删除网络对话框中,点击删除

删除 VPC 网络时,其子网也会被删除。

后续步骤