入侵防御服务会监控 Google Cloud 工作负载流量以检测恶意活动,并执行抢占式操作来防范威胁。如需在网络中启用此服务,您必须设置多个 Cloud 新一代防火墙组件。本教程介绍了用于在网络中配置入侵防御服务的端到端工作流。
目标
本教程介绍如何完成以下任务:
- 创建包含两个子网的 Virtual Private Cloud (VPC) 网络。
- 在 VPC 网络的第一个子网中创建服务器虚拟机 (VM) 实例,并在该虚拟机上安装 Apache 服务器。
- 在 VPC 网络的第二个子网中创建客户端虚拟机实例。
- 创建安全配置文件和安全配置文件组。
- 创建防火墙端点并将其与 VPC 网络关联。
- 添加包含以下防火墙规则的全球网络防火墙政策:
- 用于启用 Identity-Aware Proxy (IAP) 对 VPC 网络中的虚拟机实例的访问权限的防火墙规则。
- 用于定向所有入站流量以进行第 7 层检查的防火墙规则。
- 验证流向服务器虚拟机实例的恶意流量是否已被阻止。
- 清理资源。
下图展示了本教程中部署设置的概要架构。VPC vpc-ips
上的防火墙政策 fw-policy-ips
将入站流量重定向到可用区 asia-southeast1-a
中的防火墙端点。防火墙端点 endpoint-ips
检查流量是否存在任何威胁。如果检测到任何威胁,可以按照安全配置文件 sec-profile-ips
中指定的说明应用防护措施。
费用
创建防火墙端点会产生相关费用。如需了解价格详情,请参阅 Cloud 新一代防火墙价格。
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- 为您的项目启用 Compute Engine API。
- 为您的项目启用 Network Security API。
- 为您的项目启用 Identity-Aware Proxy API。
- 具有您的组织的 Compute Network Admin (
roles/compute.networkAdmin
) IAM 角色。 - 如果您希望通过命令行进行操作,请安装 Google Cloud CLI。
如需了解该工具的概念性信息和安装信息,请参阅 gcloud CLI 概览。
注意:如果您之前未运行过 gcloud CLI,请先运行
gcloud init
以初始化 gcloud CLI 目录。
创建包含子网的自定义 VPC 网络
在本部分中,您将创建包含两个 IPv4 子网的自定义模式 VPC 网络。
控制台
在 Google Cloud 控制台中,进入 VPC 网络页面。
点击创建 VPC 网络。
对于名称,输入
vpc-ips
。对于说明,输入
VPC network to set up intrusion prevention service
。对于子网创建模式,选择自定义。
在新子网部分,为子网指定以下配置参数:
- 名称:
subnet-ips-server
- 区域:
asia-southeast1
- IPv4 范围:
10.0.0.0/24
- 名称:
点击完成。
点击添加子网并指定以下配置参数:
- 名称:
subnet-ips-client
- 区域:
us-central1
- IPv4 范围:
192.168.10.0/24
- 名称:
点击完成。
点击创建。
gcloud
如需创建 VPC 网络,请运行以下命令:
gcloud compute networks create vpc-ips \ --subnet-mode custom \ --description "VPC network to set up intrusion prevention service."
在为 Cloud Shell 提供授权对话框中,点击授权。
如需创建子网,请运行以下命令:
gcloud compute networks subnets create subnet-server-ips \ --network vpc-ips \ --region asia-southeast1 \ --range 10.0.0.0/24
如需创建另一个子网,请运行以下命令:
gcloud compute networks subnets create subnet-client-ips \ --network vpc-ips \ --region us-central1 \ --range 192.168.10.0/24
创建虚拟机实例
在本部分中,您将创建服务器和客户端虚拟机实例。
创建服务器虚拟机实例
在本部分中,您将在子网 subnet-server-ips
中创建一个虚拟机实例,并在该实例上安装 Apache 服务器。
控制台
在 Google Cloud 控制台中,转到创建实例页面。
对于名称,输入
vm-server-ips
。对于区域,请选择
asia-southeast1 (Singapore)
。对于可用区,请选择
asia-southeast1-a
。在启动磁盘部分中,选择更改,然后在操作系统字段中选择 Debian。
点击选择。
展开高级选项,然后展开网络。
在网络接口部分中,指定以下配置参数:
- 网络:
vpc-ips
- 子网:
subnet-server-ips IPv4 (10.0.0.0/24)
- 网络:
点击完成。
展开管理部分。
在自动化部分中,添加以下启动脚本:
#! /bin/bash apt update apt -y install apache2 cat <<EOF > /var/www/html/index.html <html><body><p>Hello world.</p></body></html> EOF
点击创建。
记下服务器虚拟机创建后的外部 IP 地址。
gcloud
如需创建服务器虚拟机,请运行以下命令:
gcloud compute instances create vm-server-ips \ --network vpc-ips \ --zone asia-southeast1-a \ --subnet subnet-server-ips \ --stack-type IPV4_ONLY \ --image-project debian-cloud \ --image-family debian-11 \ --metadata=startup-script='#! /bin/bash apt update apt -y install apache2 cat <<EOF > /var/www/html/index.html <html><body><p>Hello World.</p></body></html> EOF'
在返回的状态中记下虚拟机的外部 IP 地址。
创建客户端虚拟机实例
在本部分中,您将在子网 subnet-client-ips
中创建一个虚拟机实例。
控制台
在 Google Cloud 控制台中,转到创建实例页面。
对于名称,输入
vm-client-ips
。对于区域,请选择
us-central1
。对于可用区,请选择
us-central1-a
。展开高级选项,然后展开网络。
在网络接口部分中,指定以下配置参数:
- 网络:
vpc-ips
- 子网:
subnet-client-ips IPv4 (192.168.10.0/24)
- 网络:
点击完成。
点击创建。
gcloud
如需创建客户端虚拟机,请运行以下命令:
gcloud compute instances create vm-client-ips \ --network vpc-ips \ --zone us-central1-a \ --subnet subnet-client-ips \ --stack-type IPV4_ONLY
创建安全配置文件
在本部分中,您将在组织中创建 threat-prevention
类型的安全配置文件。如需查看创建安全配置文件所需的权限,请参阅执行此任务所需的权限。
控制台
在 Google Cloud 控制台中,进入安全配置文件页面。
在项目选择器菜单中,选择您的组织。
选择安全配置文件标签页。
点击 Create profile(创建配置文件)。
对于名称,输入
sec-profile-ips
。对于说明,输入
Security profile to set up intrusion prevention service
。点击继续。
点击创建。
gcloud
如需创建安全配置文件,请运行以下命令:
gcloud network-security security-profiles \ threat-prevention \ create sec-profile-ips \ --organization ORGANIZATION_ID \ --location global \ --project PROJECT_ID \ --description "Security profile to set up intrusion prevention service."
请替换以下内容:
ORGANIZATION_ID
:在其中创建安全配置文件的组织。PROJECT_ID
:用于安全配置文件的配额和访问权限限制的项目 ID。
创建安全配置文件组
在本部分中,您将创建一个安全配置文件组,以包含您在上一部分中创建的安全配置文件。如需查看创建安全配置文件组所需的权限,请参阅执行此任务所需的权限。
控制台
在 Google Cloud 控制台中,进入安全配置文件页面。
在项目选择器菜单中,选择您的组织。
选择安全配置文件组标签页。
点击创建配置文件组。
对于名称,输入
sec-profile-group-ips
。对于说明,输入
Security profile group to set up intrusion prevention service
。在威胁防护配置文件列表中,选择
sec-profile-ips
。点击创建。
gcloud
如需创建安全配置文件组,请运行以下命令:
gcloud network-security security-profile-groups \ create sec-profile-group-ips \ --organization ORGANIZATION_ID \ --location global \ --project PROJECT_ID \ --threat-prevention-profile \ organizations/ORGANIZATION_ID/locations/global/securityProfiles/sec-profile-ips \ --description "Security profile group to set up intrusion prevention service."
请替换以下内容:
ORGANIZATION_ID
:在其中创建安全配置文件组的组织。PROJECT_ID
:用于安全配置文件组配额和访问权限限制的项目 ID。
创建防火墙端点
在本部分中,您将在特定可用区中创建防火墙端点。如需查看创建防火墙端点所需的权限,请参阅执行此任务所需的权限。
注意:创建防火墙端点时,防火墙端点的状态设置为 Creating
。防火墙端点准备就绪后,状态会更改为 Active
。
控制台
在 Google Cloud 控制台中,进入防火墙端点页面。
在项目选择器菜单中,选择您的组织。
点击创建。
在区域列表中,选择
asia-southeast1 (Singapore)
。在可用区列表中,选择
asia-southeast1-a
。对于名称,输入
endpoint-ips
。点击创建。
gcloud
如需创建防火墙端点,请运行以下命令:
gcloud network-security firewall-endpoints \ create endpoint-ips \ --organization ORGANIZATION_ID \ --zone asia-southeast1-a \ --billing-project PROJECT_ID
请替换以下内容:
ORGANIZATION_ID
:在其中创建防火墙端点的组织。PROJECT_ID
:用于防火墙端点结算的项目 ID。
创建防火墙端点关联
在本部分中,您会将防火墙端点与您在上一步中创建的 VPC 网络关联。
控制台
在 Google Cloud 控制台中,进入 VPC 网络页面。
点击
vpc-ips
网络以显示其 VPC 网络详情页面。选择防火墙端点标签页。
点击添加端点关联。
在区域列表中,选择
asia-southeast1
。在可用区列表中,选择
asia-southeast1-a
。在防火墙端点列表中,选择
endpoint-ips
。点击创建。
gcloud
如需创建防火墙端点关联,请运行以下命令:
gcloud network-security firewall-endpoint-associations \ create endpoint-association-ips \ --endpoint organizations/ORGANIZATION_ID/locations/asia-southeast1-a/firewallEndpoints/endpoint-ips \ --network vpc-ips \ --zone asia-southeast1-a \ --project PROJECT_ID
请替换以下内容:
ORGANIZATION_ID
:在其中创建防火墙端点的组织。PROJECT_ID
:在其中创建关联的项目的 ID。
创建全球网络防火墙政策
在本部分中,您将创建一个包含以下两条防火墙规则的全球网络防火墙政策:
- 优先级为
100
的入站流量防火墙规则,允许流向端口3389
和22
的 TCP 流量。此规则可启用对 VPC 网络中的虚拟机实例的 IAP 访问权限。 - 优先级为
200
的入站流量防火墙规则,用于对特定可用区中的服务器虚拟机的传入流量执行第 7 层检查。
控制台
在 Google Cloud 控制台中,转到防火墙页面。
在项目选择器列表中,选择您的组织内的项目。
点击创建防火墙政策。
对于名称,输入
fw-policy-ips
。在部署范围字段中,选择全球。
点击继续,然后点击添加规则。
在 Priority(优先级)字段中,输入
100
。在日志列表中,选择开启。
对于流量方向,选择入站。
对于对匹配项执行的操作,选择允许。
在来源过滤条件中,选择 IPv4,然后在 IP 范围字段中输入
35.235.240.0/20
。在协议和端口部分中,选择指定的协议和端口。
选择 TCP,然后在端口字段中,输入
22,3389
。点击创建。
点击添加规则。
在 Priority(优先级)字段中,输入
200
。在日志列表中,选择开启。
对于流量方向,选择入站。
在对匹配项执行的操作字段中,选择转到 L7 检查。
在安全配置文件组列表中,选择
sec-profile-group-ips
。在目标过滤条件中,选择 IPv4,然后在IP 范围字段中,输入您在创建服务器虚拟机实例部分中创建的服务器虚拟机的外部 IP 地址。
点击创建。
点击继续。
点击将政策与 VPC 网络关联。
选择
vpc-ips
网络。点击关联。
点击创建。
gcloud
如需创建全球网络防火墙政策,请运行以下命令:
gcloud compute network-firewall-policies \ create fw-policy-ips \ --global \ --project PROJECT_ID
请替换以下内容:
PROJECT_ID
:在其中创建全球网络防火墙政策的项目的 ID。
如需添加防火墙规则以启用 IAP 访问权限,请运行以下命令:
gcloud compute network-firewall-policies rules create 100 \ --firewall-policy fw-policy-ips \ --direction INGRESS \ --action ALLOW \ --src-ip-ranges 35.235.240.0/20 \ --layer4-configs tcp:22, tcp:3389 \ --global-firewall-policy \ --enable-logging
如需添加防火墙规则以启用第 7 层检查进行威胁防护和检测,请运行以下命令:
gcloud compute network-firewall-policies rules create 200 \ --direction INGRESS \ --firewall-policy fw-policy-ips \ --action apply_security_profile_group \ --dest-ip-ranges SERVER_VM_IP \ --layer4-configs tcp:0-65535 \ --global-firewall-policy \ --security-profile-group \ //networksecurity.googleapis.com/organizations/ORGANIZATION_ID \ /locations/global/securityProfileGroups/sec-profile-group-ips \ --enable-logging
请替换以下内容:
SERVER_VM_IP
:您在创建服务器虚拟机实例部分中创建的服务器虚拟机的外部 IP 地址。ORGANIZATION_ID
:在其中创建安全配置文件组的组织。
如需将防火墙政策与 VPC 网络关联,请运行以下命令:
gcloud compute network-firewall-policies associations create \ --firewall-policy fw-policy-ips \ --network vpc-ips \ --name fw-pol-association-ips \ --global-firewall-policy \ --project PROJECT_ID
请替换以下内容:
PROJECT_ID
:在其中创建 VPC 关联的项目的 ID。
测试设置
在本部分中,您将通过生成端点会拦截的流量来测试设置,并应用全球网络防火墙政策以执行第 7 层检查。
控制台
在 Google Cloud 控制台中,转到虚拟机实例页面。
从
vm-server-ips
虚拟机的外部 IP 列中,复制虚拟机的外部 IP 地址。在
vm-client-ips
虚拟机实例的连接列中,点击 SSH。在 SSH-in-browser 对话框中,点击授权并等待连接建立。
如需验证非威胁请求是否未被阻止,请运行以下命令:
curl EXTERNAL_IP -m 2
将
EXTERNAL_IP
替换为vm-server-ips
虚拟机的外部 IP。预期响应消息如下所示:
<!doctype html><html><body><h1>Hello World!</h1></body></html>
如需验证恶意请求是否已被阻止,请运行以下命令。此命令会发送访问密码文件的请求,但这项操作会被禁止。
curl -m 2 EXTERNAL_IP:80/cgi-bin/../../../../bin/cat%20/etc/passwd/
将
EXTERNAL_IP
替换为vm-server-ips
虚拟机的外部 IP。预计会收到
Connection timed out
消息,因为防火墙端点会检测到请求中的威胁并阻止数据包。关闭 SSH-in-browser 对话框。
gcloud
如需连接到
vm-client-ips
虚拟机,请运行以下命令:gcloud compute ssh vm-client-ips \ --zone=us-central1-a \ --tunnel-through-iap
出现提示时,按 Y 键进行确认,然后按 Enter 键。
如需验证非威胁请求是否未被阻止,请运行以下命令:
curl EXTERNAL_IP -m 2
将
EXTERNAL_IP
替换为vm-server-ips
虚拟机的外部 IP。预期响应消息如下所示:
<!doctype html><html><body><h1>Hello World!</h1></body></html>
如需验证恶意请求是否已被阻止,请运行以下命令:
curl -m 2 EXTERNAL_IP:80/cgi-bin/../../../../bin/cat%20/etc/passwd/
将
EXTERNAL_IP
替换为vm-server-ips
虚拟机的外部 IP。预计会收到
Connection timed out
消息,因为防火墙端点会检测到请求中的威胁并阻止数据包。若要关闭 SSH-in-browser,请输入
exit
。
查看威胁日志
在 Google Cloud 控制台中,进入威胁页面。
如有必要,请选择您的 Google Cloud 项目。
在威胁部分中,您可以查看在
vpc-ips
网络上检测到的威胁的日志条目。
清理
为避免因本教程中使用的资源导致您的 Google Cloud 账号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。
在本部分中,您将删除在本教程中创建的资源。
删除防火墙端点关联
控制台
在 Google Cloud 控制台中,进入 VPC 网络页面。
点击
vpc-ips
网络以显示其 VPC 网络详情页面。选择防火墙端点标签页。该标签页会显示已配置的防火墙端点关联的列表。
选中
endpoint-ips
旁边的复选框,然后点击删除。再次点击删除进行确认。
gcloud
如需删除防火墙端点关联,请运行以下命令:
gcloud network-security firewall-endpoint-association
delete endpoint-ips
--zone asia-southeast1-a
删除防火墙端点
控制台
在 Google Cloud 控制台中,进入防火墙端点页面。
选择
endpoint-ips
,然后点击删除。再次点击删除进行确认。
gcloud
如需删除防火墙端点,请运行以下命令:
gcloud network-security firewall-endpoints delete endpoint-ips \ --organization ORGANIZATION_ID \ --zone asia-southeast1-a
请替换以下内容:
ORGANIZATION_ID
:在其中创建端点的组织。
删除全球网络防火墙端点政策
控制台
在 Google Cloud 控制台中,转到防火墙页面。
在项目选择器菜单中,选择包含该政策的项目。
点击
fw-policy-ips
。点击关联标签页。
选择所有关联。
点击 Remove Associations(移除关联)。
移除所有关联后,点击删除。
gcloud
如需移除防火墙政策与 VPC 网络之间的关联,请运行以下命令:
gcloud compute network-firewall-policies associations delete \ --name fw-pol-association-ips \ --firewall-policy fw-policy-ips \ --global-firewall-policy
删除防火墙政策。
gcloud compute network-firewall-policies delete fw-policy-ips --global
出现提示时,按 Y 键进行确认,然后按 Enter 键。
删除安全配置文件组
控制台
在 Google Cloud 控制台中,进入安全配置文件页面。
选择安全配置文件组标签页。
选择
sec-profile-group-ips
,然后点击删除。再次点击删除进行确认。
gcloud
如需删除安全配置文件组,请运行以下命令:
gcloud network-security security-profile-groups \ delete sec-profile-group-ips \ --organization ORGANIZATION_ID \ --location global
请替换以下内容:
ORGANIZATION_ID
:在其中创建安全配置文件组的组织。
删除安全配置文件
控制台
在 Google Cloud 控制台中,进入安全配置文件页面。
选择安全配置文件标签页。该标签页会显示已配置的安全配置文件的列表。
选择
sec-profile-ips
,然后点击删除。再次点击删除进行确认。
gcloud
如需删除安全配置文件,请运行以下命令:
gcloud network-security security-profiles threat-prevention \ delete sec-profile-ips \ --organization ORGANIZATION_ID \ --location global
请替换以下内容:
ORGANIZATION_ID
:创建安全配置文件的组织。
删除虚拟机
控制台
在 Google Cloud 控制台中,转到虚拟机实例页面。
选中
vm-client-ips
和vm-server-ips
虚拟机对应的复选框。点击删除。
在删除 2 个实例?对话框中,点击删除。
gcloud
如需删除
vm-client-ips
虚拟机,请运行以下命令:gcloud compute instances delete vm-client-ips \ --zone us-central1-a
出现提示时,按 Y 键进行确认,然后按 Enter 键。
如需删除
vm-server-ips
虚拟机,请运行以下命令:gcloud compute instances delete vm-server-ips \ --zone asia-southeast1-a
出现提示时,按 Y 键进行确认,然后按 Enter 键。
删除 VPC 网络及其子网
控制台
在 Google Cloud 控制台中,进入 VPC 网络页面。
在名称列中,点击
vpc-ips
。点击删除 VPC 网络。
在删除网络对话框中,点击删除。
删除 VPC 时,其子网也会被删除。
gcloud
如需删除
vpc-ips
VPC 网络的子网subnet-ips-client
,请运行以下命令:gcloud compute networks subnets delete subnet-ips-client \ --region us-central1
出现提示时,按 Y 键进行确认,然后按 Enter 键。
如需删除
vpc-ips
VPC 网络的子网subnet-ips-server
,请运行以下命令:gcloud compute networks subnets delete subnet-ips-server \ --region=asia-southeast1
出现提示时,按 Y 键进行确认,然后按 Enter 键。
如需删除
vpc-ips
VPC 网络,请运行以下命令:gcloud compute networks delete vpc-ips
后续步骤
- 如需了解入侵防御服务的概念性信息,请参阅入侵防御服务概览。
- 如需了解防火墙政策的概念性信息,请参阅防火墙政策。
- 如需了解防火墙政策规则的概念信息,请参阅防火墙政策规则。
- 如需确定费用,请参阅 Cloud NGFW 价格。