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

1. शुरुआती जानकारी

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

Cloud Armor, Google का डिस्ट्रिब्यूटेड डिनायल ऑफ़ सर्विस और वेब ऐप्लिकेशन फ़ायरवॉल (WAF) डिटेक्शन सिस्टम है. Cloud Armor और Google Cloud एचटीटीपी लोड बैलेंसर की मदद से, Google Cloud के ग्राहकों के ऐप्लिकेशन को इंटरनेट के हमलों से बचाया जाता है. re कैप्चा 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 में बिलिंग की सुविधा चालू करनी होगी. इस कोडलैब का इस्तेमाल करने पर, आपको ज़्यादा पैसे नहीं चुकाने होंगे. इस ट्यूटोरियल के अलावा किसी अन्य बिलिंग सिस्टम का इस्तेमाल न करने पर, संसाधनों को बंद करने के लिए, कोडलैब के आखिर में दिए गए "साफ़ करने" के निर्देशों का पालन करें. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त ट्रायल वाले प्रोग्राम में हिस्सा ले सकते हैं.

Cloud Shell शुरू करना

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

GCP कंसोल में, सबसे ऊपर दाईं ओर मौजूद टूलबार पर क्लाउड शेल आइकॉन पर क्लिक करें:

55efc1aaa7a4d3ad.png

प्रावधान करने और एनवायरमेंट से कनेक्ट होने में कुछ ही समय लगेगा. उसके पूरा हो जाने पर, आपको कुछ ऐसा दिखाई देगा:

7ffe5cbb04455448.png

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

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

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

131fb495c9242335.png

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

प्रॉपर्टी

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

नाम

default-allow-health-check

नेटवर्क

डिफ़ॉल्ट

टारगेट

बताए गए टारगेट टैग

टारगेट टैग

स्वास्थ्य की जांच करने की अनुमति दें

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

आईपी रेंज

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

130.211.0.0/22, 35.191.0.0/16

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

प्रोटोकॉल और पोर्ट तय करें. इसके बाद, tcp की जांच करें. पोर्ट नंबर के लिए टाइप 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. Networking, Disks, Security, Management , Sole-Tenancy पर क्लिक करें.

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. नेटवर्किंग टैब पर क्लिक करें और नेटवर्क टैग जोड़ें: स्वास्थ्य की जांच करने की अनुमति दें
  2. इन वैल्यू को सेट करें और अन्य सभी वैल्यू को डिफ़ॉल्ट पर रहने दें -

प्रॉपर्टी

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

नेटवर्क (नेटवर्क इंटरफ़ेस के नीचे)

डिफ़ॉल्ट

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

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

नेटवर्क टैग

स्वास्थ्य की जांच करने की अनुमति दें

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

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

  1. अब भी Compute Engine पेज पर, बाएं मेन्यू में इंस्टेंस ग्रुप पर क्लिक करें.

ed419061ad2b982c.png

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

प्रॉपर्टी

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

नाम

पाउंड-बैकएंड-उदाहरण

जगह

एक ज़ोन

इलाका

यूएस-ईस्ट1

ज़ोन

यूएस-ईस्ट1-बी

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

पाउंड-बैकएंड-टेंप्लेट

ऑटो स्केलिंग

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

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

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-बैकएंड

प्रोटोकॉल

HTTP

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

एचटीपी

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

पाउंड-बैकएंड-उदाहरण

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

80

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

168a9ba1062b1f45.png

  1. इन वैल्यू को सेट करें और अन्य सभी वैल्यू को डिफ़ॉल्ट पर रहने दें:

प्रॉपर्टी

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

नाम

स्वास्थ्य से जुड़ी जांच

प्रोटोकॉल

टीसीपी

पोर्ट

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. अगले टास्क के लिए, लोड बैलेंसर का आईपीवी4 पता नोट करें. हम इसे [LB_IP_v4] कहेंगे.

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

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

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

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

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

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

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

  1. reCAPTCHA सेशन टोकन साइट कुंजी बनाएं और कुंजी के लिए WAF की सुविधा चालू करें. हम WAF सेवा को Cloud Armor पर भी सेट करेंगे, ताकि 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) > सुरक्षा > reCapa Enterprise पर जाएं. आपको वे कुंजियां दिखाई देनी चाहिए जिन्हें आपने एंटरप्राइज़ कुंजियों - के अंतर्गत बनाया है -

4e2567aae0eb92d7.png

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

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

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/re कैप्चा/enterprise.js?render=<REPLACE_TOKEN_HERE>&waf=session" असिंक डेफ़र></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] को लोड बैलेंसर के आईपीवी4 पते से बदलना न भूलें.
  • http://[LB_IP_v4]/index.html खोलें. अगर आपको पेज पर सबसे नीचे दाएं कोने में, "reCAPTCHA से सुरक्षित किया गया है" दिखे, तो इस बात की पुष्टि की जा सकेगी कि reCAPTCHA लागू किया जा रहा है या नहीं -

d695ad23d91ae4e9.png

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

4a2ad1b2f10b4c86.png

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

481f63bf5e6f244.png

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

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

  1. Cloud Shell में(Cloud Shell का इस्तेमाल करने के तरीके के बारे में निर्देश पाने के लिए "सेटअप और ज़रूरी शर्तें" में "Cloud Shell" देखें), gcloud के ज़रिए सुरक्षा नीति बनाएं:
gcloud compute security-policies create recaptcha-policy \
    --description "policy for bot management"
  1. मैन्युअल तरीके से चुनौती देने के लिए बनाई गई 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. अगर यूआरएल पाथ, मीडियन-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. कंसोल में, नेविगेशन मेन्यू > नेटवर्क सिक्योरिटी > Cloud आर्मर पर जाएं.
  2. reCAPTCHA-नीति पर क्लिक करें. आपकी नीति इससे मिलती-जुलती होनी चाहिए:

74852618aaa96786.png

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

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

edf3e6ca238d2ee7.png

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

ecef5655b291dbb0.png

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

53ed2b4067b55436.png

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

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

  1. कंसोल में, नेविगेशन मेन्यू > नेटवर्क सिक्योरिटी > क्लाउड आर्मर पर जाएं.
  2. re कैप्चा नीति पर क्लिक करें.
  3. लॉग पर क्लिक करें.

46fd825d8506d355.png

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

b7b1712642cf092b.png

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

c28f96d83056725a.png

8c4803d75a77142c.png

ध्यान दें कि कॉन्फ़िगर की गई कार्रवाई को re कैप्चा-policy नाम के साथ ALLOW, DENY या GOOGLE_RECap पर सेट किया गया है.

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

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

10. लैब क्लीन अप

  1. नेटवर्क सिक्योरिटी >> क्लाउड आर्मर >> %POLICY NAME% पर जाएं और मिटाएं को चुनें -

2646f9c1df093f90.png

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

8ad4f55dc06513f7.png

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

f6f02bb56add6420.png

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

2116b286954fd6.png

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

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

  1. बाईं ओर मौजूद पैनल से इंस्टेंस टेंप्लेट पर जाएं**.** इंस्टेंस टेंप्लेट चुनें और 'मिटाएं' पर क्लिक करें.
  2. नेविगेशन मेन्यू ( mainmenu.png) > VPC नेटवर्क > फ़ायरवॉल पर जाएं. 'स्वास्थ्य की जांच को अनुमति दें' और 'अनुमति दें' नियमों को चुनें. इसके बाद, 'मिटाएं' पर क्लिक करें.
  3. नेविगेशन मेन्यू ( mainmenu.png) > सुरक्षा > reCapa Enterprise पर जाएं. हमने जो कुंजियां बनाई हैं उन्हें चुनें और उसे मिटाएं. टेक्स्ट बॉक्स में "DELETE" लिखकर मिटाने की पुष्टि करें.

e71ecd11baf262ca.png

11. बधाई!

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

इसमें हमने इन विषयों के बारे में बताया

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

अगले चरण

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