访问 700 多个实验和课程

访问防火墙并创建规则

实验 1 小时 30 分钟 universal_currency_alt 5 个点数 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程
重要图标 重要提示

桌面设备/笔记本电脑图标请务必仅在桌面设备/笔记本电脑上完成此实操实验。

勾选图标 每个实验仅允许尝试 5 次。

测验目标图标温馨提示:第一次尝试时,您可能无法答对所有问题,甚至可能需要重做任务,请不必担心,这都是学习过程的一部分。

计时器图标 实验一旦开始,计时器就无法暂停。1 小时 30 分钟后,实验将结束,您需要重新开始。

提示图标 如需了解详情,请阅读实验技术提示

活动概览

云环境中的资产需要防范未经授权的访问。为了解决这个问题,安全专业人员会使用边界保护,即采取安全措施来保护网络或系统的边缘,防止未经授权的访问和网络威胁。一种边界保护方法是使用防火墙来管理和保护进出云环境的网络流量。防火墙有助于保护可信的内部网络(例如公司的专用网络)免受不可信的外部网络(例如互联网)的侵害。防火墙会根据预定义的规则检查传入和传出的网络流量,以允许或阻止特定的数据包。这对于帮助维护应用安全、流量控制、合规性和政策执行至关重要。

在本实验中,您将访问防火墙并创建规则,以测试服务器的安全性,并根据需要进行修改。

场景

Cymbal Bank 有一个演示 Web 服务器,该服务器预配在现有的虚拟私有云 (VPC) 网络上。您的团队负责人 Chloe 担心此 Web 服务器的安全配置,希望您分析 Web 服务器的入站网络流量,并使用防火墙规则阻止连接到不必要端口的连接。您的任务是分析此 Web 服务器的防火墙规则并测试其连接。要完成此任务,您需要创建多个防火墙规则、连接到 Web 服务器,并分析与网络连接相关的日志。

以下是完成此任务的方法:首先,您将创建一条防火墙规则,以允许网络流量进入演示 Web 服务器。然后,您将生成到服务器的 HTTP 网络流量并分析其网络日志。接下来,您将创建并测试一条新的防火墙规则,以拒绝 HTTP 流量进入服务器。最后,您将分析防火墙日志,以验证新防火墙规则是否按预期运行。

注意:在本实验中,系统会为您提供一个自定义模式网络 VPC (vpc-net) 和子网 (vpc-subnet),它们已在 区域中配置了 VPC 流日志。您还将获得一个虚拟机实例 web-server,该实例已在 vpc-subnet 中安装了 Apache Web 服务器,并附加了网络标记 http-server,位于 可用区。

设置

点击“开始实验”之前

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。

此实操实验可让您在真实的云环境中开展活动,免受模拟或演示环境的限制。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:如果您已有自己的个人 Google Cloud 账号或项目,请不要在此实验中使用,以避免您的账号产生额外的费用。

如何开始实验并登录 Google Cloud 控制台

  1. 点击开始实验按钮。左侧是实验详细信息面板,其中包含以下各项:

    • 剩余时间
    • 打开 Google Cloud 控制台按钮
    • 进行该实验时必须使用的临时凭证
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
    注意:如果该实验需要付费,系统会打开一个弹出式窗口供您选择支付方式。
  2. 如果您使用的是 Chrome 浏览器,点击打开 Google Cloud 控制台(或右键点击并选择在无痕式窗口中打开链接)。系统会在新的浏览器标签页中打开登录页面。

    提示您可以将这些标签页分别放在不同的窗口中,并排显示,以便轻松切换。

    注意:如果您看到选择账号对话框,请点击使用其他账号
  3. 如有必要,请复制下方的 Google Cloud 用户名,然后将其粘贴到登录对话框中。点击下一步

{{{user_0.username | "Google Cloud username"}}}

您也可以在实验详细信息面板中找到 Google Cloud 用户名

  1. 复制下面的 Google Cloud 密码,然后将其粘贴到欢迎对话框中。点击下一步
{{{user_0.password | "Google Cloud password"}}}

您也可以在实验详细信息面板中找到 Google Cloud 密码

重要提示:您必须使用实验提供的凭证。请勿使用您的 Google Cloud 账号凭证。 注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  1. 依次点击后续页面,完成以下步骤:
    • 接受条款及条件
    • 由于这是临时账号,请勿添加账号恢复选项或双重验证
    • 请勿用其注册免费试用服务

片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

注意:您可以点击左上角的导航菜单来查看列有 Google Cloud 产品和服务的菜单。Google Cloud 控制台菜单,其中突出显示了导航菜单图标

任务 1. 创建防火墙规则

在此任务中,您将创建一条允许 HTTP 和 SSH 连接的防火墙规则。您还将为新创建的防火墙规则指定目标标记。

在 Google Cloud 中,防火墙规则必须指定目标,以定义它们适用于哪些虚拟机实例。目标标记可用于将防火墙规则应用于特定虚拟机组,从而简化防火墙规则的管理。您将使用目标标记,以便仅对 Web 服务器启用此防火墙规则。

  1. 在 Google Cloud 控制台中,点击导航菜单 (“导航菜单”图标)。
  2. 选择 VPC 网络 > 防火墙。系统会显示防火墙政策页面。
注意:如果显示一条消息,指出您没有查看此项目继承的防火墙政策所需的权限,您可以忽略该消息并继续执行后续步骤。
  1. 在工具栏上,点击 + 创建防火墙规则。随即会显示创建防火墙规则对话框。

  2. 指定以下信息,其他设置则保留默认值:

字段
名称 allow-http-ssh
日志 开启
网络 vpc-net
目标 指定的目标标记
目标标记 http-server
来源过滤条件 IPv4 范围
来源 IPv4 范围 0.0.0.0/0
协议和端口部分
  • 选择指定的协议和端口
  • 选中 TCP 复选框
  • 端口字段中,输入 80, 22
  1. 点击创建
注意:请等待系统显示已成功创建防火墙规则“allow-http-ssh”消息,然后再继续。

点击检查我的进度,验证您已正确完成此任务。 创建防火墙规则

任务 2. 生成 HTTP 网络流量

在此任务中,您将通过访问 Web 服务器的外部 IP 地址来生成 HTTP 网络流量。您生成的网络流量随后将记录为日志,您可以在 Logs Explorer 中分析这些日志。

首先,您需要生成网络流量。

  1. 在 Google Cloud 控制台中,点击导航菜单 (“导航菜单”图标)。

  2. 选择 Compute Engine > 虚拟机实例。系统会打开虚拟机实例页面。

  3. 对于 web-server,点击外部 IP 链接以访问服务器。

(或者,您也可以打开一个新的浏览器窗口或标签页,将此外部 IP 值添加到 http://EXTERNAL_IP/ 中并访问此网址。)系统应该会显示一个默认网页。

接下来,您需要找到所用计算机的 IP 地址。

  1. 使用以下链接 whatismyip.com 访问您的 IP 地址。该网站会直接回复您的 IP 地址。

浏览器显示网站 www.whatismyip.com 的首页

注意:确保 IP 地址仅包含数字 (IPv4),并且不以十六进制 (IPv6) 表示。
  1. 复制 IP 地址并将其保存到记事本中。您需要在下一个任务中使用此 ID。

点击检查我的进度,验证您已正确完成此任务。 生成 HTTP 网络流量

任务 3. 分析 Web 服务器流日志

在此任务中,您将使用 Logs Explorer 访问并分析 Web 服务器的 VPC 流日志。

  1. 在 Google Cloud 控制台标题栏的搜索字段中输入 Logs Explorer,然后点击搜索结果中的 Logs Explorer

  2. 点击可观测性日志记录旁边的固定

  3. Logs Explorer 页面的左侧,显示了字段窗格。严重级别资源类型部分可用。在资源类型部分,选择子网

子网日志中的条目将显示在字段窗格右侧的查询结果窗格中。

  1. 字段窗格的日志名称部分,选择 compute.googleapis.com/vpc_flows,以访问网络的 VPC 流日志。如果未显示此选项,请等待几分钟,直到显示此日志类型。

选择后,VPC 流日志中的条目会显示在查询结果窗格中。

  1. 在页面顶部的查询构建器中,在第 2 行末尾按 Enter 键,创建新行。

  2. 在第 3 行,输入以下内容:

jsonPayload.connection.src_ip=YOUR_IP

您的查询应类似于以下内容:

resource.type="gce_subnetwork" log_name="projects/{{{project_0.project_id | PROJECT_ID}}}/logs/compute.googleapis.com%2Fvpc_flows" jsonPayload.connection.src_ip=YOUR_IP
  1. YOUR_IP 替换为从任务 2 中保存的 IP 地址。此查询将搜索来自您在上一个任务中生成的 IP 地址的网络流量日志。

  2. 点击运行查询。查询结果应显示在查询结果窗格中。

注意:如果 vpc_flows 过滤选项未显示,或者没有日志,您可能需要等待几分钟并刷新。如果几分钟后仍未显示 vpc_flows 过滤选项,请前往 Compute Engine 页面,点击 web server外部 IP 几次,以生成更多流量,然后返回检查 vpc_flows 过滤选项。
  1. 查询结果窗格中,展开其中一个日志条目。

  2. 在该条目中,点击展开箭头 > 展开 jsonPayload。然后,展开 connection 字段。

在这里,您可以查看与 Web 服务器的网络连接的详细信息:

  • dest_ip - 这是 Web 服务器的目标 IP 地址。
  • dest_port - 这是 Web 服务器的目标端口号,即 HTTP 端口 80。
  • protocol - 协议为 6,这是 TCP 流量的 IANA 协议。
  • src_ip - 这是您计算机的源 IP 地址。
  • src_port - 这是分配给您计算机的源端口号。根据互联网号码分配机构 (IANA) 标准,这通常是 49152-65535 之间的随机端口号。

分析此日志条目的详细信息后,您应该会注意到,由于您之前创建的防火墙规则 allow-http-ssh,您生成的网络流量(通过 HTTP 端口 80)被允许通过。此规则允许端口 80 和 22 上的传入流量。

任务 4. 创建防火墙规则以拒绝 HTTP 流量

在此任务中,您将创建一个新的防火墙规则,以拒绝来自端口 80 的流量。

  1. 在 Google Cloud 控制台中,点击导航菜单 (“导航菜单”图标)。

  2. 依次选择 VPC 网络 > 防火墙。“防火墙政策”页面随即显示。

  3. 在工具栏上,点击 + 创建防火墙规则

  4. 创建防火墙规则对话框中,指定以下内容,并将其余设置保留为默认值:

字段
名称 deny-http
日志 开启
网络 vpc-net
对匹配项执行的操作 拒绝
目标 指定的目标标记
目标标记 http-server
来源过滤条件 IPv4 范围
来源 IPv4 范围 0.0.0.0/0
协议和端口部分
  • 选择指定的协议和端口
  • 选中 TCP 复选框
  • 端口字段中,输入 80
  1. 点击创建

点击检查我的进度,验证您已正确完成此任务。 创建防火墙以拒绝 HTTP 流量

任务 5. 分析防火墙日志

在此任务中,您将测试在上一个任务中创建的 deny-http 防火墙规则。

首先,尝试连接到 Web 服务器。

  1. 点击导航菜单 (“导航菜单”图标)。
  2. 选择 Compute Engine > 虚拟机实例。系统会打开虚拟机实例页面。
  3. 对于 web-server,点击外部 IP 链接以访问服务器。

页面上应显示以下错误消息:

 网络浏览器显示网站连接错误

出现此错误的原因是您在上一个任务中创建了 deny-http 防火墙规则。为验证这一点,请访问日志浏览器,分析 Web 服务器的防火墙日志。

  1. 在 Google Cloud 控制台中,点击导航菜单 (“导航菜单”图标)。

  2. 选择日志记录 > Logs ExplorerLogs Explorer 页面随即会打开。

  3. 资源类型部分,选择子网

  4. 日志字段窗格的日志名称部分,选择 compute.googleapis.com/firewall 以访问网络的防火墙日志。

  5. 在页面顶部的查询构建器中,在第 2 行末尾按 Enter 键,创建新行。

  6. 在第 3 行,输入以下内容:

jsonPayload.connection.src_ip=YOUR_IP DENIED

YOUR_IP 替换为从任务 2 中保存的 IP 地址。此查询将搜索拒绝您的 IP 地址连接到 Web 服务器的防火墙日志。您的查询应类似于以下内容:

resource.type="gce_subnetwork" log_name="projects/{{{project_0.project_id | PROJECT_ID}}}/logs/compute.googleapis.com%2Ffirewall" jsonPayload.connection.src_ip=YOUR_IP DENIED
  1. 点击运行查询。查询结果应显示在“查询结果”窗格中。

  2. 查询结果窗格中,展开其中一个日志条目。

  3. 在日志条目中,点击展开箭头 > 展开 jsonPayload 字段,然后展开 connection 字段。您可以检查与 Web 服务器的网络连接的详细信息,以验证防火墙规则是否已成功触发:

  • dest_ip - 这是 Web 服务器的目标 IP 地址,为 10.1.3.2
  • dest_port - 这是 Web 服务器的目标端口号,即 HTTP 端口 80
  • protocol - 协议为 6,这是 TCP 流量的 IANA 协议。
  • src_ip - 这是您计算机的源 IP 地址。
  • src_port - 这是分配给您计算机的源端口号。
  • disposition - 此字段指示连接是已允许还是已拒绝。这里是 denied,表示连接到服务器被拒绝。
  1. 在日志条目中,点击展开箭头 >,展开 rule_details 字段。您可以检查有关防火墙规则的详细信息。此外,您还可以展开日志条目中的以下字段,从中提取更多信息:
  • action - 规则采取的操作,在本例中为 DENY
  • direction - 规则的流量方向可以是入站或出站,这里是 INGRESS,表示该操作将应用于入站流量。
  • ip_port_info - 此规则控制的协议和端口。ip_protocolport_range 列出了 TCP 端口 80
  • source_range - 防火墙规则适用的流量来源。这里即为 0.0.0.0/0
  • target_tag - 这将列出防火墙规则适用的所有目标标记。这里是 http-server,即您在上一个任务中添加到防火墙规则的目标标记。

通过检查此防火墙日志条目的详细信息,您应该会注意到,您设置的用于拒绝 HTTP 流量的防火墙规则 deny-http 已成功触发。此规则拒绝了端口 80 上的传入网络流量。

点击检查我的进度,验证您已正确完成此任务。 分析防火墙日志

总结

太棒了!

现在,您已经具备了在云环境中为 Web 服务器创建和测试防火墙规则的实操经验。通过创建防火墙规则和分析日志条目,您已经熟悉了边界保护的复杂性。这有助于监控和分析潜在的安全事件或威胁,是安全分析师职责的重要组成部分。

您已初步掌握如何通过修改防火墙规则来强化网络安全性。

结束实验

结束实验之前,请确保您已完成所有任务。准备就绪后,点击结束实验,然后点击提交

结束实验后,您将无法再访问实验环境,也无法再访问您在其中完成的工作成果。

版权所有 2020 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。