Google Cloud Armor की मदद से बॉट मैनेजमेंट + reCAPTCHA

1. परिचय

Google Cloud HTTP(S) लोड बैलेंसिंग को, दुनिया भर में Google के पॉइंट ऑफ़ प्रेज़ेंस (पीओपी) में, Google के नेटवर्क के किनारे पर डिप्लॉय किया जाता है. एचटीटीपी या एचटीटीपीएस लोड बैलेंसर पर रीडायरेक्ट किया गया उपयोगकर्ता ट्रैफ़िक, उपयोगकर्ता के सबसे नज़दीकी पीओपी में जाता है. इसके बाद, इसे Google के ग्लोबल नेटवर्क पर लोड बैलेंस किया जाता है. ऐसा सबसे नज़दीकी बैकएंड तक पहुंचने के लिए किया जाता है, जहां ज़रूरत के मुताबिक क्षमता उपलब्ध हो.

Cloud Armor, Google का डिस्ट्रिब्यूटेड डिनायल ऑफ़ सर्विस और वेब ऐप्लिकेशन फ़ायरवॉल (डब्ल्यूएएफ़) का पता लगाने वाला सिस्टम है. Cloud Armor, Google Cloud HTTP Load Balancer के साथ मिलकर काम करता है. यह Google Cloud के ग्राहकों के ऐप्लिकेशन को इंटरनेट से होने वाले हमलों से बचाता है. reCAPTCHA Enterprise एक ऐसी सेवा है जो आपकी साइट को स्पैम और गलत इस्तेमाल से बचाती है. यह मौजूदा reCAPTCHA API पर आधारित है. यह एपीआई, जोखिम का विश्लेषण करने की बेहतर तकनीकों का इस्तेमाल करता है, ताकि इंसानों और बॉट के बीच अंतर किया जा सके. Cloud Armor Bot Management, एक एंड-टू-एंड समाधान है. यह reCAPTCHA Enterprise की बॉट का पता लगाने और स्कोरिंग करने की सुविधा को इंटिग्रेट करता है. साथ ही, नेटवर्क के किनारे पर Cloud Armor की मदद से नीति लागू करता है, ताकि डाउनस्ट्रीम ऐप्लिकेशन को सुरक्षित रखा जा सके.

इस लैब में, आपको बैकएंड के साथ एचटीटीपी लोड बैलेंसर को कॉन्फ़िगर करना है. इसे नीचे दिए गए डायग्राम में दिखाया गया है. इसके बाद, आपको reCAPTCHA सेशन टोकन साइट कुंजी सेट अप करने और उसे अपनी वेबसाइट में एम्बेड करने का तरीका बताया जाएगा. आपको reCAPTCHA Enterprise की मैन्युअल चुनौती पर रीडायरेक्ट करने का तरीका भी बताया जाएगा. इसके बाद, हम Cloud Armor की बॉट मैनेजमेंट नीति को कॉन्फ़िगर करेंगे. इससे यह पता चलेगा कि बॉट की पहचान करने की सुविधा, आपके ऐप्लिकेशन को नुकसान पहुंचाने वाले बॉट ट्रैफ़िक से कैसे बचाती है.

8b46e6728996bc0c.png

आपको क्या सीखने को मिलेगा

  • सही हेल्थ चेक के साथ एचटीटीपी लोड बैलेंसर को कैसे सेट अप करें.
  • reCAPTCHA WAF के चैलेंज-पेज की साइट कुंजी बनाने और उसे Cloud Armor की सुरक्षा नीति से जोड़ने का तरीका.
  • reCAPTCHA सेशन टोकन साइट कुंजी बनाने और उसे अपने वेब पेजों पर इंस्टॉल करने का तरीका.
  • Cloud Armor बॉट मैनेजमेंट की नीति बनाने का तरीका.
  • यह पुष्टि कैसे करें कि बॉट मैनेजमेंट की नीति, कॉन्फ़िगर किए गए नियमों के आधार पर ट्रैफ़िक को मैनेज कर रही है.

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

  • नेटवर्किंग की बुनियादी जानकारी और एचटीटीपी के बारे में जानकारी
  • Unix/Linux कमांड लाइन की बुनियादी जानकारी

2. सेटअप और ज़रूरी शर्तें

अपने हिसाब से एनवायरमेंट सेट अप करना

  1. Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से कोई Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों के लिए डिसप्ले नेम होता है. यह एक कैरेक्टर स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करते. इसे किसी भी समय अपडेट किया जा सकता है.
  • प्रोजेक्ट आईडी, सभी Google Cloud प्रोजेक्ट के लिए यूनीक होना चाहिए. साथ ही, इसे बदला नहीं जा सकता. Cloud Console, एक यूनीक स्ट्रिंग अपने-आप जनरेट करता है. आम तौर पर, आपको इससे कोई फ़र्क़ नहीं पड़ता कि यह क्या है. ज़्यादातर कोडलैब में, आपको प्रोजेक्ट आईडी का रेफ़रंस देना होगा. इसे आम तौर पर PROJECT_ID के तौर पर पहचाना जाता है. इसलिए, अगर आपको यह पसंद नहीं है, तो कोई दूसरा रैंडम आईडी जनरेट करें. इसके अलावा, अपने हिसाब से कोई आईडी बनाकर देखें कि वह उपलब्ध है या नहीं. इसके बाद, प्रोजेक्ट बनाने के बाद इसे "फ़्रीज़" कर दिया जाता है.
  • तीसरी वैल्यू, प्रोजेक्ट नंबर होती है. इसका इस्तेमाल कुछ एपीआई करते हैं. इन तीनों वैल्यू के बारे में ज़्यादा जानने के लिए, दस्तावेज़ देखें.
  1. इसके बाद, आपको Cloud Console में बिलिंग चालू करनी होगी, ताकि Cloud संसाधनों/एपीआई का इस्तेमाल किया जा सके. इस कोडलैब को पूरा करने में ज़्यादा खर्च नहीं आएगा. संसाधन बंद करने के लिए, कोडलैब के आखिर में दिए गए "बंद करें" निर्देशों का पालन करें, ताकि इस ट्यूटोरियल के बाद आपको बिलिंग न करनी पड़े. Google Cloud के नए उपयोगकर्ताओं को, मुफ़्त में आज़माने के लिए 300 डॉलर का क्रेडिट मिलता है.

Cloud Shell शुरू करें

Google Cloud को अपने लैपटॉप से रिमोटली ऐक्सेस किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया जाएगा. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.

GCP Console में, सबसे ऊपर दाईं ओर मौजूद टूलबार पर मौजूद Cloud Shell आइकॉन पर क्लिक करें:

55efc1aaa7a4d3ad.png

इसे चालू करने और एनवायरमेंट से कनेक्ट करने में सिर्फ़ कुछ सेकंड लगेंगे. यह प्रोसेस पूरी होने के बाद, आपको कुछ ऐसा दिखेगा:

7ffe5cbb04455448.png

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

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

Cloud Shell में, पक्का करें कि आपका प्रोजेक्ट आईडी सेट अप हो

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
PROJECT_ID=[YOUR-PROJECT-NAME]
echo $PROJECT_ID

एपीआई चालू करना

सभी ज़रूरी सेवाएं चालू करें

gcloud services enable compute.googleapis.com
gcloud services enable logging.googleapis.com
gcloud services enable monitoring.googleapis.com
gcloud services enable recaptchaenterprise.googleapis.com

3. बैकएंड में एचटीटीपी और एसएसएच ट्रैफ़िक की अनुमति देने के लिए, फ़ायरवॉल के नियम कॉन्फ़िगर करना

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

हम आपके प्रोजेक्ट में बनाए गए डिफ़ॉल्ट वीपीसी नेटवर्क का इस्तेमाल करेंगे. बैकएंड में एचटीटीपी ट्रैफ़िक की अनुमति देने के लिए, फ़ायरवॉल का नियम बनाएं. परफ़ॉर्मेंस की जांच से यह तय होता है कि लोड बैलेंसर के कौनसे इंस्टेंस, नए कनेक्शन स्वीकार कर सकते हैं. एचटीटीपी लोड बैलेंसिंग के लिए, लोड बैलेंस किए गए इंस्टेंस की हेल्थ जांच करने वाले जांचकर्ता, 130.211.0.0/22 और 35.191.0.0/16 रेंज के पतों से आते हैं. आपके वीपीसी फ़ायरवॉल के नियमों के तहत, इन कनेक्शन की अनुमति होनी चाहिए. साथ ही, लोड बैलेंसर एक ही आईपी रेंज पर बैकएंड से कम्यूनिकेट करते हैं.

  1. Cloud Console में, नेविगेशन मेन्यू ( mainmenu.png) > वीपीसी नेटवर्क > फ़ायरवॉल पर जाएं.

131fb495c9242335.png

  1. मौजूदा ICMP, internal, RDP, और SSH फ़ायरवॉल नियमों पर ध्यान दें.हर Google Cloud प्रोजेक्ट, डिफ़ॉल्ट नेटवर्क और इन फ़ायरवॉल नियमों से शुरू होता है.
  2. फ़ायरवॉल का नियम बनाएं पर क्लिक करें.
  3. ये वैल्यू सेट करें. बाकी सभी वैल्यू को डिफ़ॉल्ट पर छोड़ दें:

प्रॉपर्टी

वैल्यू (वैल्यू टाइप करें या बताए गए तरीके से विकल्प चुनें)

नाम

default-allow-health-check

नेटवर्क

डिफ़ॉल्ट

टारगेट

टारगेट किए गए टैग

टारगेट टैग

allow-health-check

सोर्स फ़िल्टर

आईपी रेंज

सोर्स आईपी रेंज

130.211.0.0/22, 35.191.0.0/16

प्रोटोकॉल और पोर्ट

प्रोटोकॉल और पोर्ट तय किए गए हैं. इसके बाद, टीसीपी देखें. पोर्ट नंबर के लिए 80 टाइप करें

  1. बनाएं पर क्लिक करें.

इसके अलावा, अगर gcloud कमांड लाइन का इस्तेमाल किया जा रहा है. यहां निर्देश दिया गया है -

gcloud compute firewall-rules create default-allow-health-check --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:80 --source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=allow-health-check
  1. इसी तरह, इंस्टेंस में एसएसएच करने की अनुमति देने के लिए, फ़ायरवॉल का नियम बनाएं -
gcloud compute firewall-rules create allow-ssh --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:22 --source-ranges=0.0.0.0/0 --target-tags=allow-health-check

4. इंस्टेंस टेंप्लेट कॉन्फ़िगर करना और मैनेज किए गए इंस्टेंस ग्रुप बनाना

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

उदाहरण के लिए टेंप्लेट कॉन्फ़िगर करना

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

  1. Cloud Console में, नेविगेशन मेन्यू ( mainmenu.png) > Compute Engine > इंस्टेंस टेंप्लेट पर जाएं. इसके बाद, इंस्टेंस टेंप्लेट बनाएं पर क्लिक करें.
  2. नाम के लिए, lb-backend-template टाइप करें.
  3. सीरीज़ के लिए, N1 चुनें.
  4. नेटवर्किंग, डिस्क, सुरक्षा, मैनेजमेंट , सोल-टेनेंसी पर क्लिक करें.

1d0b7122f4bb410d.png

  1. मैनेजमेंट सेक्शन पर जाएं और नीचे दी गई स्क्रिप्ट को स्टार्टअप स्क्रिप्ट फ़ील्ड में डालें.
#! /bin/bash
sudo apt-get update
sudo apt-get install apache2 -y
sudo a2ensite default-ssl
sudo a2enmod ssl
sudo vm_hostname="$(curl -H "Metadata-Flavor:Google" \
http://169.254.169.254/computeMetadata/v1/instance/name)"
sudo echo "Page served from: $vm_hostname" | \
tee /var/www/html/index.html
  1. नेटवर्किंग टैब पर क्लिक करें और नेटवर्क टैग जोड़ें: allow-health-check
  2. ये वैल्यू सेट करें और अन्य सभी वैल्यू को डिफ़ॉल्ट पर छोड़ दें -

प्रॉपर्टी

वैल्यू (वैल्यू टाइप करें या बताए गए तरीके से विकल्प चुनें)

नेटवर्क (नेटवर्क इंटरफ़ेस में जाकर)

डिफ़ॉल्ट

सबनेट (नेटवर्क इंटरफ़ेस में)

डिफ़ॉल्ट (us-east1)

नेटवर्क टैग

allow-health-check

  1. बनाएं पर क्लिक करें.
  2. इंस्टेंस टेंप्लेट बनने तक इंतज़ार करें.

मैनेज किया गया इंस्टेंस ग्रुप बनाना

  1. Compute Engine पेज पर ही, बाईं ओर मौजूद मेन्यू में Instance groups पर क्लिक करें.

ed419061ad2b982c.png

  1. इंस्टेंस ग्रुप बनाएं पर क्लिक करें. नया मैनेज किया गया इंस्टेंस ग्रुप (स्टेटलेस) चुनें.
  2. ये वैल्यू सेट करें. बाकी सभी वैल्यू को डिफ़ॉल्ट पर छोड़ दें:

प्रॉपर्टी

वैल्यू (वैल्यू टाइप करें या बताए गए तरीके से विकल्प चुनें)

नाम

lb-backend-example

जगह

सिंगल ज़ोन

क्षेत्र

us-east1

ज़ोन

us-east1-b

इंस्टेंस टेंप्लेट

lb-backend-template

ऑटो स्केलिंग

ऑटोस्केल न करें

इंस्टेंस की संख्या

1

  1. बनाएं पर क्लिक करें.

इंस्टेंस ग्रुप में नाम वाला पोर्ट जोड़ना

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

gcloud compute instance-groups set-named-ports lb-backend-example \
    --named-ports http:80 \
    --zone us-east1-b

5. एचटीटीपी लोड बैलेंसर को कॉन्फ़िगर करना

अपने बैकएंड lb-backend-example: पर ट्रैफ़िक भेजने के लिए, एचटीटीपी लोड बैलेंसर को कॉन्फ़िगर करें:

कॉन्फ़िगरेशन शुरू करना

  1. Cloud Console में, नेविगेशन मेन्यू ( mainmenu.png) > नेटवर्क सेवाएं > लोड बैलेंसिंग पर क्लिक करें. इसके बाद, लोड बैलेंसर बनाएं पर क्लिक करें.
  2. एचटीटीपी या एचटीटीपीएस लोड बैलेंसिंग में जाकर, कॉन्फ़िगरेशन शुरू करें पर क्लिक करें.

4f8b8cb10347ecec.png

  1. इंटरनेट से मेरे वीएम तक, क्लासिक एचटीटीपी या एचटीटीपीएस लोड बैलेंसर को चुनें. इसके बाद, जारी रखें पर क्लिक करें.
  2. नाम को http-lb पर सेट करें.

बैकएंड को कॉन्फ़िगर करना

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

  1. बैकएंड कॉन्फ़िगरेशन पर क्लिक करें.
  2. बैकएंड सेवाएं और बैकएंड बकेट के लिए, बैकएंड सेवा बनाएं पर क्लिक करें.
  3. ये वैल्यू सेट करें. बाकी सभी वैल्यू को डिफ़ॉल्ट पर छोड़ दें:

प्रॉपर्टी

वैल्यू (बताए गए तरीके से विकल्प चुनें)

नाम

http-backend

प्रोटोकॉल

HTTP

नाम वाला पोर्ट

htp

इंस्टेंस ग्रुप

lb-backend-example

नंबर पोर्ट करें

80

  1. हो गया पर क्लिक करें.
  2. बैकएंड जोड़ें पर क्लिक करें.
  3. हेल्थ चेक के लिए, हेल्थ चेक बनाएं को चुनें.

168a9ba1062b1f45.png

  1. ये वैल्यू सेट करें. बाकी सभी वैल्यू को डिफ़ॉल्ट पर छोड़ दें:

प्रॉपर्टी

वैल्यू (बताए गए तरीके से विकल्प चुनें)

नाम

http-health-check

प्रोटोकॉल

टीसीपी

पोर्ट

80

dc45bc726bb4dfad.png

  1. सेव करें पर क्लिक करें.
  2. लॉगिंग चालू करें बॉक्स को चुनें.
  3. सैंपल रेट को 1 पर सेट करें:

c8f884fa4a8cd50.png

  1. बैकएंड सेवा बनाने के लिए, बनाएं पर क्लिक करें.

1fd2ad21b1d32a95.png

फ़्रंटएंड को कॉन्फ़िगर करना

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

  1. फ़्रंटएंड कॉन्फ़िगरेशन पर क्लिक करें.
  2. यहां दी गई वैल्यू तय करें. बाकी सभी वैल्यू को डिफ़ॉल्ट पर सेट रहने दें:

प्रॉपर्टी

वैल्यू (वैल्यू टाइप करें या बताए गए तरीके से विकल्प चुनें)

प्रोटोकॉल

HTTP

आईपी वर्शन

IPv4

आईपी पता

कुछ समय के लिए

पोर्ट

80

  1. हो गया पर क्लिक करें.

एचटीटीपी लोड बैलेंसर की समीक्षा करना और उसे बनाना

  1. समीक्षा करें और फ़ाइनल करें पर क्लिक करें.

478e5e51057af3a3.png

  1. बैकएंड सेवाओं और फ़्रंटएंड की समीक्षा करें.
  2. बनाएं पर क्लिक करें.
  3. लोड बैलेंसर बनने तक इंतज़ार करें.
  4. लोड बैलेंसर (http-lb) के नाम पर क्लिक करें.
  5. अगले टास्क के लिए, लोड बैलेंसर का IPv4 पता नोट करें. हम इसे [LB_IP_v4] के तौर पर दिखाएंगे.

6. एचटीटीपी लोड बैलेंसर की जांच करना

बैकएंड के लिए एचटीटीपी लोड बैलेंसर बनाने के बाद, पुष्टि करें कि ट्रैफ़िक को बैकएंड सेवा पर फ़ॉरवर्ड किया गया है. HTTP लोड बैलेंसर के लिए IPv4 ऐक्सेस की जांच करने के लिए, अपने ब्राउज़र में नया टैब खोलें और http://[LB_IP_v4] पर जाएं. [LB_IP_v4] को लोड बैलेंसर के IPv4 पते से बदलना न भूलें.

7. reCAPTCHA सेशन टोकन और चैलेंज-पेज साइट कुंजी बनाएं और उसे डिप्लॉय करें

WAF और Google Cloud Armor इंटिग्रेशन के लिए reCAPTCHA Enterprise में ये सुविधाएं मिलती हैं: reCAPTCHA चैलेंज पेज, reCAPTCHA ऐक्शन-टोकन, और reCAPTCHA सेशन-टोकन. इस कोड लैब में, हम reCAPTCHA सेशन टोकन साइट कुंजी और reCAPTCHA WAF चैलेंज-पेज साइट को लागू करेंगे.

reCAPTCHA सेशन टोकन और WAF चैलेंज-पेज की साइट कुंजी बनाएं

सेशन टोकन साइट कुंजी और चैलेंज पेज साइट कुंजी बनाने से पहले, दो बार जांच कर लें कि आपने reCAPTCHA Enterprise API चालू किया हो. इसे चालू करने का तरीका, "एपीआई चालू करें" सेक्शन में बताया गया है.

reCAPTCHA JavaScript, आकलन के बाद एंड-यूज़र के ब्राउज़र पर reCAPTCHA सेशन-टोकन को कुकी के तौर पर सेट करता है. एंड-यूज़र का ब्राउज़र, कुकी अटैच करता है और जब तक reCAPTCHA JavaScript चालू रहती है, तब तक कुकी को रीफ़्रेश करता है.

  1. reCAPTCHA सेशन टोकन साइट कुंजी बनाएं और कुंजी के लिए WAF सुविधा चालू करें. हम Cloud Armor इंटिग्रेशन को चालू करने के लिए, WAF सेवा को Cloud Armor पर भी सेट करेंगे.
gcloud recaptcha keys create --display-name=test-key-name \
   --web --allow-all-domains --integration-type=score --testing-score=0.5 \
   --waf-feature=session-token --waf-service=ca
  1. ऊपर दी गई कमांड के आउटपुट से, आपको बनाई गई कुंजी मिलती है. इसे नोट कर लें, क्योंकि हम इसे अगले चरण में आपकी वेबसाइट में जोड़ेंगे.
  2. reCAPTCHA WAF के चैलेंज-पेज की साइट कुंजी बनाएं और कुंजी के लिए WAF की सुविधा चालू करें. reCAPTCHA चैलेंज पेज की सुविधा का इस्तेमाल करके, आने वाले अनुरोधों को reCAPTCHA Enterprise पर रीडायरेक्ट किया जा सकता है. इससे यह पता लगाया जा सकता है कि हर अनुरोध संभावित रूप से धोखाधड़ी वाला है या असली है. हम बाद में इस कुंजी को Cloud Armor की सुरक्षा नीति से जोड़ देंगे, ताकि मैन्युअल चैलेंज की सुविधा चालू की जा सके. हम इस कुंजी को बाद के चरणों में CHALLENGE-PAGE-KEY के तौर पर दिखाएंगे.
gcloud recaptcha keys create --display-name=challenge-page-key \
   --web --allow-all-domains --integration-type=INVISIBLE \
   --waf-feature=challenge-page --waf-service=ca
  1. नेविगेशन मेन्यू ( mainmenu.png) > सुरक्षा > reCAPTCHA Enterprise पर जाएं. आपको एंटरप्राइज़ की के नीचे, बनाई गई कुंजियां दिखेंगी -

4e2567aae0eb92d7.png

reCAPTCHA सेशन टोकन साइट कुंजियां लागू करना

  1. नेविगेशन मेन्यू ( mainmenu.png) > Compute Engine > वीएम इंस्टेंस पर जाएं. अपने इंस्टेंस ग्रुप में वीएम ढूंढें और उसे एसएसएच करें.

6d7b0fd12a667b5f.png

  1. वेब सर्वर की रूट डायरेक्ट्री पर जाएं और उपयोगकर्ता को रूट में बदलें -
@lb-backend-example-4wmn:~$ cd /var/www/html/
@lb-backend-example-4wmn:/var/www/html$ sudo su
  1. लैंडिंग पेज के index.html पेज को अपडेट करें और reCAPTCHA सेशन टोकन साइट कुंजी को एम्बेड करें. सेशन टोकन साइट कुंजी, आपके लैंडिंग पेज के हेड सेक्शन में इस तरह सेट की जाती है -

<script src="https://www.google.com/recaptcha/enterprise.js?render=<REPLACE_TOKEN_HERE>&waf=session" async defer></script>

index.html फ़ाइल को अपडेट करने से पहले, टोकन को बदलना न भूलें. इसके लिए, यहां दिया गया तरीका अपनाएं -

root@lb-backend-example-4wmn:/var/www/html# echo '<!doctype html><html><head><title>ReCAPTCHA Session Token</title><script src="https://www.google.com/recaptcha/enterprise.js?render=<REPLACE_TOKEN_HERE>&waf=session" async defer></script></head><body><h1>Main Page</h1><p><a href="/good-score.html">Visit allowed link</a></p><p><a href="/bad-score.html">Visit blocked link</a></p><p><a href="/median-score.html">Visit redirect link</a></p></body></html>' > index.html
  1. बॉट मैनेजमेंट की नीतियों को आज़माने के लिए, तीन अन्य सैंपल पेज बनाएं -
  • good-score.html
root@lb-backend-example-4wmn:/var/www/html# echo '<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head><body><h1>Congrats! You have a good score!!</h1></body></html>' > good-score.html
  • bad-score.html
root@lb-backend-example-4wmn:/var/www/html# echo '<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head><body><h1>Sorry, You have a bad score!</h1></body></html>' > bad-score.html
  • median-score.html
root@lb-backend-example-4wmn:/var/www/html# echo '<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head><body><h1>You have a median score that we need a second verification.</h1></body></html>' > median-score.html
  1. पुष्टि करें कि आपके पास सभी वेबपेजों को ऐक्सेस करने की अनुमति है. इसके लिए, उन्हें अपने ब्राउज़र में खोलें. [LB_IP_v4] को लोड बैलेंसर के IPv4 पते से बदलना न भूलें.
  • http://[LB_IP_v4]/index.html खोलें. आपको यह पुष्टि करने का विकल्प मिलेगा कि reCAPTCHA लागू करने की सुविधा काम कर रही है. इसके लिए, आपको पेज के नीचे दाएं कोने में "reCAPTCHA से सुरक्षित किया गया" दिखेगा -

d695ad23d91ae4e9.png

  • हर लिंक पर क्लिक करें.

4a2ad1b2f10b4c86.png

  • पुष्टि करें कि आपके पास सभी पेजों को ऐक्सेस करने की अनुमति है.

481f63bf5e6f244.png

8. बॉट मैनेजमेंट के लिए, Cloud Armor की सुरक्षा नीति के नियम बनाना

इस सेक्शन में, Cloud Armor की बॉट मैनेजमेंट से जुड़ी नियमों का इस्तेमाल किया जाएगा. इससे reCAPTCHA स्कोर के आधार पर अनुरोधों को अनुमति दी जा सकेगी, उन्हें अस्वीकार किया जा सकेगा, और उन्हें रीडायरेक्ट किया जा सकेगा. याद रखें कि सेशन टोकन साइट कुंजी बनाते समय, आपने जांच के लिए स्कोर 0.5 सेट किया था.

  1. Cloud Shell में, gcloud का इस्तेमाल करके सुरक्षा नीति बनाएं. Cloud Shell इस्तेमाल करने के तरीके के बारे में जानने के लिए, "सेटअप और ज़रूरी शर्तें" में जाकर "Cloud Shell शुरू करें" लेख पढ़ें:
gcloud compute security-policies create recaptcha-policy \
    --description "policy for bot management"
  1. मैन्युअल चैलेंज के लिए reCAPTCHA Enterprise का इस्तेमाल करके, यह पता लगाया जा सकता है कि क्लाइंट कोई इंसान है या ऑटोमेटेड सिस्टम. इसके लिए, मैन्युअल चैलेंज के लिए बनाई गई reCAPTCHA WAF चैलेंज साइट कुंजी को सुरक्षा नीति से जोड़ें. "CHALLENGE-PAGE-KEY" को उस कुंजी से बदलें जिसे हमने बनाया है -
gcloud compute security-policies update recaptcha-policy \
   --recaptcha-redirect-site-key "CHALLENGE-PAGE-KEY"
  1. बॉट मैनेजमेंट का एक नियम जोड़ें, ताकि अगर यूआरएल पाथ, good-score.html से मेल खाता हो और उसका स्कोर 0.4 से ज़्यादा हो, तो ट्रैफ़िक को अनुमति दी जा सके.
gcloud compute security-policies rules create 2000 \
     --security-policy recaptcha-policy\
     --expression "request.path.matches('good-score.html') &&    token.recaptcha_session.score > 0.4"\
     --action allow
  1. अगर यूआरएल पाथ, bad-score.html से मेल खाता है और उसका स्कोर 0.6 से कम है, तो ट्रैफ़िक को अस्वीकार करने के लिए, बॉट मैनेजमेंट का नियम जोड़ें.
  gcloud compute security-policies rules create 3000 \
     --security-policy recaptcha-policy\
     --expression "request.path.matches('bad-score.html') && token.recaptcha_session.score < 0.6"\
     --action "deny-403"
  1. बॉट मैनेजमेंट का एक नियम जोड़ें, ताकि अगर यूआरएल पाथ, median-score.html से मेल खाता हो और उसका स्कोर 0.5 के बराबर हो, तो ट्रैफ़िक को Google reCAPTCHA पर रीडायरेक्ट किया जा सके
  gcloud compute security-policies rules create 1000 \
     --security-policy recaptcha-policy\
     --expression "request.path.matches('median-score.html') && token.recaptcha_session.score == 0.5"\
     --action redirect \
     --redirect-type google-recaptcha
  1. बैकएंड सेवा http-backend से सुरक्षा नीति अटैच करें:
gcloud compute backend-services update http-backend \
    --security-policy recaptcha-policy –-global
  1. Console में, नेविगेशन मेन्यू > नेटवर्क सुरक्षा > Cloud Armor पर जाएं.
  2. recaptcha-policy पर क्लिक करें. आपकी नीति कुछ इस तरह दिखनी चाहिए:

74852618aaa96786.png

9. Cloud Armor की मदद से बॉट मैनेजमेंट की पुष्टि करना

  1. कोई ब्राउज़र खोलें और http://[LB_IP_v4]/index.html यूआरएल डालें. "लिंक पर जाने की अनुमति दें" पर जाएं. आपको इन तरीकों से अनुमति मिलनी चाहिए -

edf3e6ca238d2ee7.png

  1. गुप्त मोड में नई विंडो खोलें, ताकि हम नया सेशन शुरू कर सकें. http://[LB_IP_v4]/index.html यूआरएल डालें और "Visit blocked link" पर जाएं. आपको एचटीटीपी 403 गड़बड़ी का मैसेज मिलेगा -

ecef5655b291dbb0.png

  1. गुप्त मोड में नई विंडो खोलें, ताकि हम नया सेशन शुरू कर सकें. http://[LB_IP_v4]/index.html यूआरएल डालें और "रीडायरेक्ट लिंक पर जाएं" पर जाएं. आपको Google reCAPTCHA और मैन्युअल चुनौती वाले पेज पर रीडायरेक्ट किया जाएगा. यह पेज इस तरह दिखेगा -

53ed2b4067b55436.png

Cloud Armor के लॉग की पुष्टि करना

सुरक्षा नीति के लॉग एक्सप्लोर करके, पुष्टि करें कि बॉट मैनेजमेंट उम्मीद के मुताबिक काम कर रहा है.

  1. Console में, नेविगेशन मेन्यू > नेटवर्क सुरक्षा > Cloud Armor पर जाएं.
  2. recaptcha-policy. पर क्लिक करें
  3. लॉग पर क्लिक करें.

46fd825d8506d355.png

  1. नीति के लॉग देखें पर क्लिक करें.
  2. यहां मॉनिटरिंग क्वेरी लैंग्वेज(एमक्यूएल) क्वेरी दी गई है. इसे कॉपी करके क्वेरी एडिटर में चिपकाया जा सकता है -
resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:(recaptcha-policy)
  1. अब क्वेरी चलाएं पर क्लिक करें.
  2. क्वेरी के नतीजों में ऐसी लॉग एंट्री ढूंढें जिसमें http://[LB_IP_v4]/good-score.html के लिए अनुरोध किया गया हो. jsonPayload.Expand enforcedSecurityPolicy को बड़ा करें.

b7b1712642cf092b.png

  1. http://[LB_IP_v4]/bad-score.html और http://[LB_IP_v4]/median-score.html के लिए भी यही प्रोसेस दोहराएं

c28f96d83056725a.png

8c4803d75a77142c.png

ध्यान दें कि configuredAction को recaptcha-policy नाम के साथ ALLOW, DENY या GOOGLE_RECAPTCHA पर सेट किया गया है.

बधाई हो! आपने Cloud Armor की मदद से बॉट मैनेजमेंट के बारे में यह लैब पूरी कर ली है

©2020 Google LLC सभी अधिकार सुरक्षित हैं. Google और Google का लोगो, Google LLC के ट्रेडमार्क हैं. दूसरी सभी कंपनियां और प्रॉडक्ट के नाम, उन कंपनियों के ट्रेडमार्क हो सकते हैं जिनसे वे जुड़े हुए हैं.

10. लैब में बिना अनुमति के की गई गतिविधियों को मिटाना

  1. नेटवर्क सुरक्षा >> Cloud Armor >> %POLICY NAME% पर जाएं और मिटाएं चुनें -

2646f9c1df093f90.png

  1. नेटवर्किंग >> नेटवर्क सेवाएं >> लोड बैलेंसिंग पर जाएं. आपने जो लोड बैलेंसर बनाया है उसे चुनें और मिटाएं पर क्लिक करें.

8ad4f55dc06513f7.png

मिटाने के लिए, बैकएंड सेवा और हेल्थ चेक को अतिरिक्त संसाधन के तौर पर चुनें -

f6f02bb56add6420.png

  1. नेविगेशन मेन्यू ( mainmenu.png) > Compute Engine > इंस्टेंस ग्रुप पर जाएं. मैनेज किया गया इंस्टेंस ग्रुप चुनें और मिटाएं पर क्लिक करें -

2116b286954fd6.png

टेक्स्ट बॉक्स में "मिटाएं" टाइप करके, मिटाने की पुष्टि करें.

मैनेज किए गए इंस्टेंस ग्रुप के मिटने का इंतज़ार करें. इससे ग्रुप में मौजूद इंस्टेंस भी मिट जाता है. इंस्टेंस ग्रुप को मिटाने के बाद ही, टेंप्लेट मिटाए जा सकते हैं.

  1. बाईं ओर मौजूद पैनल में, इंस्टेंस टेंप्लेट पर जाएं**.** इंस्टेंस टेंप्लेट चुनें और मिटाएं पर क्लिक करें.
  2. नेविगेशन मेन्यू ( mainmenu.png) > वीपीसी नेटवर्क > फ़ायरवॉल पर जाएं. default-allow-health-check और allow-ssh नियमों को चुनें. इसके बाद, मिटाएं पर क्लिक करें.
  3. नेविगेशन मेन्यू ( mainmenu.png) > सुरक्षा > reCAPTCHA Enterprise पर जाएं. हमने जो कुंजियां बनाई हैं उन्हें चुनें और मिटाएं. टेक्स्ट बॉक्स में "मिटाएं" टाइप करके, मिटाने की पुष्टि करें.

e71ecd11baf262ca.png

11. बधाई हो!

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

हमने क्या-क्या बताया

  • इंस्टेंस टेंप्लेट सेट अप करने और मैनेज किए गए इंस्टेंस ग्रुप बनाने का तरीका.
  • एचटीटीपी लोड बैलेंसर सेट अप करने का तरीका.
  • Cloud Armor बॉट मैनेजमेंट की नीति बनाने का तरीका.
  • reCAPTCHA सेशन टोकन साइट कुंजी बनाने और लागू करने का तरीका.
  • reCAPTCHA चैलेंज पेज की साइट कुंजी बनाने और उसे लागू करने का तरीका.
  • इस बात की पुष्टि कैसे करें कि बॉट मैनेजमेंट की नीति उम्मीद के मुताबिक काम कर रही है.

अगले चरण

  • reCAPTCHA ऐक्शन टोकन सेट अप करने की कोशिश करें.