إدارة روبوتات الدردشة باستخدام Google Cloud Armor + reCAPTCHA

1- مقدمة

يتم نشر موازنة حمل Google Cloud HTTP(S) على حدود شبكة Google في نقاط تواجد Google (POP) حول العالم. تدخل حركة بيانات المستخدم الموجهة إلى جهاز موازنة حمل HTTP(S) في بروتوكول POP الأقرب إلى المستخدم، ثم تتم موازنة الحمل عبر شبكة Google العامة إلى أقرب واجهة خلفية تتوفر بها سعة كافية.

Cloud Armor هو نظام من Google لحجب الخدمة الموزعة ونظام رصد جدار الحماية لتطبيقات الويب (WAF). تقترن Cloud Armor بشكل كبير مع جهاز موازنة الحمل في Google Cloud HTTP وتعمل على حماية تطبيقات عملاء Google Cloud من الهجمات من الإنترنت. reCAPTCHA Enterprise هي خدمة تحمي موقعك الإلكتروني من المحتوى غير المرغوب فيه وإساءة الاستخدام، وتستند إلى واجهة reCAPTCHA API الحالية التي تستخدم أساليب متقدّمة لتحليل المخاطر للتمييز بين المستخدمين وبرامج التتبُّع. توفّر منصة Cloud Armor Bot Management حلاً شاملاً يدمج عملية رصد روبوت reCAPTCHA Enterprise الذي يتم تسجيله والنتائج التي يتم رصدها، وذلك من خلال تطبيق Cloud Armor على حافة الشبكة لحماية التطبيقات التي تعمل في مرحلة إطلاق التطبيق.

في هذا التمرين المعملي، تتم تهيئة جهاز موازنة حمل HTTP مع واجهة خلفية، كما هو موضح في الرسم التخطيطي أدناه. بعد ذلك، ستتعلّم كيفية إعداد مفتاح موقع إلكتروني للرمز المميّز لجلسة reCAPTCHA وتضمينه في موقعك الإلكتروني. وستتعلّم أيضًا كيفية إعداد إعادة التوجيه إلى تحدي reCAPTCHA Enterprise اليدوي. بعد ذلك، سنضبط سياسة لإدارة برنامج التتبُّع في Cloud Armor لعرض الطريقة التي يحمي بها رصد برامج التتبّع تطبيقك من زيارات برامج التتبُّع الضارة.

8b46e6728996bc0c.png

المعلومات التي ستطّلع عليها

  • كيفية إعداد جهاز موازنة حمل HTTP باستخدام عمليات التحقّق المناسبة من الصحة
  • كيفية إنشاء مفتاح موقع إلكتروني لصفحة التحدي في reCAPTCHA WAF وربطه بسياسة الأمان في Cloud Armor
  • كيفية إنشاء مفتاح موقع إلكتروني للرمز المميّز لجلسة reCAPTCHA وتثبيته على صفحاتك على الويب
  • طريقة إنشاء سياسة إدارة برنامج التتبُّع في Cloud Armor
  • كيفية التحقّق من أنّ سياسة إدارة روبوتات الدردشة تتعامل مع الزيارات استنادًا إلى القواعد التي تم ضبطها

المتطلبات

  • الشبكات الأساسية والمعرفة ببروتوكول HTTP
  • معرفة سطر أوامر Unix/Linux الأساسي

‫2. الإعداد والمتطلّبات

إعداد بيئة ذاتية

  1. سجِّل الدخول إلى Google Cloud Console وأنشئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • اسم المشروع هو الاسم المعروض للمشاركين في هذا المشروع. وهي عبارة عن سلسلة أحرف لا تستخدمها Google APIs، ويمكنك تحديثها في أي وقت.
  • يجب أن يكون رقم تعريف المشروع فريدًا في جميع مشاريع Google Cloud وغير قابل للتغيير (لا يمكن تغييره بعد ضبطه). تنشئ Cloud Console سلسلة فريدة تلقائيًا، فعادةً ما تكون غير مهم بالنسبة إليك. في معظم الدروس التطبيقية حول الترميز، عليك الرجوع إلى رقم تعريف المشروع (ويتم تحديده عادةً على أنّه PROJECT_ID)، لذا إذا لم يعجبك، يمكنك إنشاء سلسلة عشوائية أخرى، أو يمكنك تجربة معرّف المشروع الخاص بك ومعرفة ما إذا كان متاحًا. ثم "يتم تجميده" بعد إنشاء المشروع.
  • هناك قيمة ثالثة، وهي رقم المشروع الذي تستخدمه بعض واجهات برمجة التطبيقات. اطّلِع على مزيد من المعلومات حول هذه القيم الثلاث في المستندات.
  1. بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام الموارد/واجهات برمجة التطبيقات في Cloud. إنّ تنفيذ هذا الدرس التطبيقي حول الترميز لن يكون مكلفًا أو مكلفًا على الإطلاق. لإيقاف الموارد حتى لا تتحمل الفوترة بعد هذا البرنامج التعليمي، اتّبِع أي تعليمات حول "التنظيف" متوفّرة في نهاية الدرس التطبيقي حول الترميز. يكون مستخدمو Google Cloud الجدد مؤهَّلون للانضمام إلى برنامج فترة تجريبية مجانية بقيمة 300 دولار أمريكي.

بدء Cloud Shell

مع أنّه يمكن إدارة Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس التطبيقي Google Cloud Shell، وهي بيئة سطر أوامر يتم تشغيلها في السحابة الإلكترونية.

من وحدة تحكّم Google Cloud Platform، انقر على رمز 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- إعداد قواعد جدار الحماية للسماح بحركة مرور HTTP وSSH إلى الخلفيات

يمكنك ضبط قواعد جدار الحماية للسماح بزيارات HTTP إلى الخلفيات من عمليات التحقق من الصحة في Google Cloud وجهاز موازنة الحمل. ويمكنك أيضًا ضبط قاعدة جدار حماية للسماح ببروتوكول النقل الآمن (SSH) في المثيلات.

سنستخدم شبكة سحابة VPC التلقائية التي تم إنشاؤها في مشروعك. يمكنك إنشاء قاعدة جدار حماية للسماح بزيارات HTTP إلى الخلفيات. تحدد عمليات التحقق من الصحة النُسخ الافتراضية من جهاز موازنة الحمل التي يمكنها تلقّي اتصالات جديدة. بالنسبة إلى موازنة حمل HTTP، تأتي اختبارات التحقق من الصحة لمثيلات متوازنة التحميل من عناوين في النطاقات 130.211.0.0/22 و35.191.0.0/16. يجب أن تسمح قواعد جدار الحماية سحابة VPC بهذه الاتصالات. وتتواصل أجهزة موازنة الحمل أيضًا مع الخلفية في نطاق عنوان IP نفسه.

  1. في Cloud Console، انتقِل إلى قائمة التنقّل ( mainmenu.png) > شبكة VC > جدار الحماية.

131fb495c9242335.png

  1. لاحظ قواعد جدار الحماية الحالية لكل من ICMP وداخلي وRDP وSSH.يبدأ كل مشروع على Google Cloud بالشبكة التلقائية وقواعد جدار الحماية هذه.
  2. انقر على إنشاء قاعدة جدار حماية.
  3. اضبط القيم التالية، واترك جميع القيم الأخرى بإعداداتها التلقائية:

الموقع

القيمة (اكتب القيمة أو حدِّد الخيار على النحو المحدَّد)

الاسم

default-allow-health-check

الشبكة

التلقائية

الأهداف

علامات الهدف المحددة

علامات الاستهداف

السماح بفحص الحالة الصحية

فلتر المصدر

نطاقات عناوين IP

نطاقات عناوين IP المصدر

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. وبالمثل، أنشئ قاعدة جدار حماية للسماح باستخدام SSH في المثيلات -
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. ضبط نماذج المثيلات وإنشاء مجموعات المثيلات المُدارة

تستخدِم مجموعة المثيلات المُدارة نموذج مثيل لإنشاء مجموعة من المثيلات المتطابقة. استخدم هذه الخيارات لإنشاء الواجهة الخلفية لجهاز موازنة حمل HTTP.

ضبط نماذج المثيل

نموذج المثيل هو مورد تستخدمه لإنشاء مثيلات الأجهزة الافتراضية ومجموعات المثيلات المُدارة. تحدد قوالب المثيلات نوع الجهاز وصورة قرص التشغيل والشبكة الفرعية والتصنيفات وخصائص المثيل الأخرى. أنشئ نموذج مثيل كما هو موضح أدناه.

  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. انقر على علامة التبويب الشبكات، وأضِف علامات الشبكة: allow-health-check
  2. اضبط القيم التالية واترك جميع القيم الأخرى على إعداداتها التلقائية:

الموقع

القيمة (اكتب القيمة أو حدِّد الخيار على النحو المحدَّد)

الشبكة (ضمن واجهات الشبكة)

التلقائية

الشبكة الفرعية (ضمن واجهات الشبكة)

تلقائي (us-east1)

علامات الشبكة

السماح بفحص الحالة الصحية

  1. انقر على إنشاء.
  2. انتظِر إلى أن يتم إنشاء نموذج المثيل.

إنشاء مجموعة المثيلات المُدارة

  1. ابقَ في صفحة Compute Engine، وانقر على مجموعات المثيلات في القائمة اليمنى.

ed419061ad2b982c.png

  1. انقر على إنشاء مجموعة مثيلات. اختَر مجموعة مثيلات مُدارة جديدة (بدون حالة).
  2. اضبط القيم التالية، واترك جميع القيم الأخرى بإعداداتها التلقائية:

الموقع

القيمة (اكتب القيمة أو حدِّد الخيار على النحو المحدَّد)

الاسم

مثال على الواجهة الخلفية رطل

الموقع الجغرافي

منطقة واحدة

منطقة

US-east1

المنطقة

مصر-الشرق1-ب

نموذج المثيل

lb-backend-template

تغيير الحجم التلقائي

عدم القياس تلقائيًا

عدد الحالات

1

  1. انقر على إنشاء.

إضافة منفذ مُسمّى إلى مجموعة المثيلات

بالنسبة إلى مجموعة المثيلات، حدِّد خدمة HTTP واربط اسم منفذ بالمنفذ ذي الصلة. تعمل خدمة موازنة الحمل على إعادة توجيه حركة البيانات إلى المنفذ المحدّد.

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

5- إعداد جهاز موازنة حمل HTTP

اضبط جهاز موازنة حمل HTTP لإرسال الزيارات إلى الخلفية lb-backend-example:

بدء عملية الإعداد

  1. في Cloud Console، انقر على قائمة التنقل ( mainmenu.png) > انقر على خدمات الشبكة > موازنة التحميل، ثم انقر على إنشاء جهاز موازنة الحمل.
  2. ضمن موازنة الحمل لبروتوكول HTTP(S)، انقر على بدء الإعداد.

4f8b8cb10347ecec.png

  1. اختَر من الإنترنت إلى الأجهزة الافتراضية، جهاز موازنة الحمل لبروتوكول HTTP(S) الكلاسيكي، وانقر على متابعة.
  2. اضبط الاسم على http-lb.

ضبط الواجهة الخلفية

توجّه خدمات الخلفية حركة البيانات الواردة إلى واجهة خلفية واحدة أو أكثر متصلة. تتألف كل واجهة خلفية من مجموعة مثيلات وبيانات وصفية إضافية لسعة العرض.

  1. انقر على إعدادات الخلفية.
  2. بالنسبة إلى خدمات الخلفية وحِزم الخلفية، انقر على إنشاء خدمة خلفية.
  3. اضبط القيم التالية، واترك جميع القيم الأخرى بإعداداتها التلقائية:

الموقع

القيمة (حدِّد الخيار على النحو المحدَّد)

الاسم

الواجهة الخلفية لـ http

البروتوكول

HTTP

المنفذ المُعنون

بروتوكول htp

مجموعة المثيلات

مثال على الواجهة الخلفية رطل

أرقام المنافذ

80

  1. انقر على تم.
  2. انقر على إضافة واجهة خلفية.
  3. بالنسبة إلى التحقّق من الصحة، اختَر إنشاء فحص صحي.

168a9ba1062b1f45.png

  1. اضبط القيم التالية، واترك جميع القيم الأخرى بإعداداتها التلقائية:

الموقع

القيمة (حدِّد الخيار على النحو المحدَّد)

الاسم

http-health-check

البروتوكول

TCP

المنفذ

80

dc45bc726bb4dfad.png

  1. انقر على حفظ.
  2. ضَع علامة في المربّع تفعيل التسجيل.
  3. اضبط معدّل البيانات في الملف الصوتي على 1:

c8f884fa4a8cd50.png

  1. انقر على إنشاء لإنشاء خدمة الخلفية.

1fd2ad21b1d32a95.png

ضبط الواجهة الأمامية

وتحدِّد قواعد المضيف والمسار كيفية توجيه الزيارات. على سبيل المثال، يمكنك توجيه زيارات الفيديو إلى واجهة خلفية وزيارات ثابتة إلى واجهة خلفية أخرى. على الرغم من ذلك، ليس عليك ضبط قواعد المضيف والمسار في هذا التمرين المعملي.

  1. انقر على ضبط الواجهة الأمامية.
  2. حدِّد ما يلي، مع ترك جميع القيم الأخرى بإعداداتها التلقائية:

الموقع

القيمة (اكتب القيمة أو حدِّد الخيار على النحو المحدَّد)

البروتوكول

HTTP

إصدار IP

IPv4

عنوان IP

Ephemeral

المنفذ

80

  1. انقر على تم.

مراجعة وإنشاء جهاز موازنة حمل HTTP

  1. انقر على مراجعة وإنهاء.

478e5e51057af3a3.png

  1. راجع خدمات الخلفية والواجهة الأمامية.
  2. انقر على إنشاء.
  3. انتظِر إلى أن يتم إنشاء جهاز موازنة الحمل.
  4. انقر على اسم جهاز موازنة الحمل (http-lb).
  5. دوِّن عنوان IPv4 لجهاز موازنة الحمل للمهمة التالية. وسنشير إليه باسم [LB_IP_v4].

6. اختبار جهاز موازنة حمل HTTP

الآن وبعد أن أنشأت جهاز موازنة حمل HTTP للواجهات الخلفية، تحقق من أنه تتم إعادة توجيه حركة البيانات إلى خدمة الخلفية. لاختبار وصول IPv4 إلى جهاز موازنة حمل HTTP، افتح علامة تبويب جديدة في المتصفّح وانتقِل إلى http://[LB_IP_v4]. تأكَّد من استبدال [LB_IP_v4] بعنوان IPv4 الخاص بجهاز موازنة الحمل.

7. إنشاء ونشر الرمز المميّز لجلسة reCAPTCHA ومفتاح الموقع الإلكتروني في صفحة التحدي

يوفّر دمج reCAPTCHA Enterprise for WAF وGoogle Cloud Armor الميزات التالية: صفحة تحدي reCAPTCHA ورموز إجراءات reCAPTCHA والرموز المميّزة لجلسة reCAPTCHA. في هذا التمرين المعملي حول الترميز، سننفذ مفتاح الموقع الإلكتروني الخاص بالرمز المميز لجلسة reCATCHA وموقع صفحة تحدي WAF الخاص بـ reCAPTCHA.

إنشاء رمز مميّز لجلسة 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) > الأمان > reCAPTCHA Enterprise. من المفترض أن تظهر لك المفاتيح التي أنشأتها ضمن Enterprise Keys، أي

4e2567aae0eb92d7.png

تنفيذ مفتاح الموقع الإلكتروني للرمز المميّز لجلسة reCAPTCHA

  1. انتقِل إلى قائمة التنقّل ( mainmenu.png) > Compute Engine > مثيلات VM. حدِّد موقع الجهاز الافتراضي في مجموعة المثيلات وبروتوكول النقل الآمن (SSH) إليها.

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_READ>&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(يُرجى الرجوع إلى "Start Cloud Shell" ضِمن "الإعداد والمتطلبات" للحصول على تعليمات حول كيفية استخدام Cloud Shell)، أنشئ سياسة أمان عبر gcloud:
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. أضِف قاعدة إدارة برنامج التتبُّع للسماح بالزيارات إذا كان مسار عنوان URL يتطابق مع 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. يمكنك إضافة قاعدة إدارة برنامج التتبُّع لرفض الزيارات إذا كان مسار عنوان URL يتطابق مع 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. يمكنك إضافة قاعدة إدارة برنامج التتبُّع لإعادة توجيه الزيارات إلى Google reCAPTCHA إذا كان مسار عنوان URL يتطابق مع median-score.html وكانت النتيجة تساوي 0.5.
  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. إرفاق سياسة الأمان بالواجهة الخلفية لخدمة الخلفية:
gcloud compute backend-services update http-backend \
    --security-policy recaptcha-policy –-global
  1. في وحدة التحكّم، انتقِل إلى قائمة التنقّل > أمان الشبكة > Cloud Armor.
  2. انقر على سياسة reCAPTCHA. يجب أن تكون سياستك على النحو التالي:

74852618aaa96786.png

9. التحقّق من صحة إدارة روبوت الدردشة باستخدام Cloud Armor

  1. افتح متصفحًا وأدخل عنوان URL http://[LB_IP_v4]/index.html. انتقِل إلى "الانتقال إلى الرابط المسموح به". من المفترض أن يُسمح لك بذلك من خلال:

edf3e6ca238d2ee7.png

  1. يُرجى فتح نافذة جديدة في وضع التصفّح المتخفي لضمان عقد جلسة جديدة. أدخِل عنوان URL http://[LB_IP_v4]/index.html وانتقِل إلى "الانتقال إلى الرابط المحظور". ستتلقى رسالة الخطأ HTTP 403،

ecef5655b291dbb0.png

  1. يُرجى فتح نافذة جديدة في وضع التصفّح المتخفي لضمان عقد جلسة جديدة. أدخِل عنوان URL http://[LB_IP_v4]/index.html وانتقِل إلى "زيارة رابط إعادة التوجيه". من المفترَض أن تظهر لك إعادة التوجيه إلى reCAPTCHA من Google وصفحة الاختبار اليدوي على النحو التالي:

53ed2b4067b55436.png

التحقّق من سجلّات Cloud Armor

اطّلِع على سجلّات سياسة الأمان للتحقّق من أنّ إدارة برنامج التتبُّع تعمل على النحو المتوقّع.

  1. في وحدة التحكّم، انتقِل إلى قائمة التنقّل > أمان الشبكة > Cloud Armor.
  2. انقر على recaptcha-policy.
  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.توسيع forceSecurityPolicy.

b7b1712642cf092b.png

  1. كرِّر الأمر نفسه مع http://[LB_IP_v4]/bad-score.html وhttp://[LB_IP_v4]/median-score.html

c28f96d83056725a.png

8c4803d75a77142c.png

تجدر الإشارة إلى أنّه تم ضبط الإجراء ConfigurationAction على ALLOW أو DENY أو GOOGLE_RECAPTCHA باستخدام الاسم recaptcha-policy.

تهانينا! لقد أكملت هذا التمرين المعملي حول إدارة برامج التتبُّع باستخدام Cloud Armor

©2020 Google LLC جميع الحقوق محفوظة. Google وشعار Google هما علامتان تجاريتان تابعتان لشركة Google LLC. جميع أسماء الشركات والمنتجات الأخرى قد تكون علامات تجارية للشركات المالكة لها.

10. تنظيف المختبر

  1. انتقِل إلى Network Security >> Cloud Armor >> %POLICY NAME% واختَر حذف -

2646f9c1df093f90.png

  1. انتقِل إلى الشبكات >> خدمات الشبكة >> موازنة التحميل. اختَر جهاز موازنة الحمل الذي أنشأته وانقر على "حذف".

8ad4f55dc06513f7.png

اختَر خدمة الخلفية والتحقّق من الصحة كموارد إضافية سيتم حذفها.

f6f02bb56add6420.png

  1. انتقِل إلى قائمة التنقل ( mainmenu.png) > Compute Engine > مجموعات المثيلات. اختَر مجموعة المثيلات المُدارة وانقر على "حذف" -

2116b286954fd6.png

أكِّد عملية الحذف عن طريق كتابة "حذف" في مربّع النص.

انتظِر حتى يتم حذف مجموعة المثيلات المُدارة. يؤدي هذا الإجراء أيضًا إلى حذف المثيل في المجموعة. لا يمكنك حذف النماذج إلا بعد حذف مجموعة المثيلات.

  1. انتقِل إلى نماذج المثيلات من اللوحة الجانبية اليمنى**.** حدد قالب المثيل وانقر فوق "delete" (حذف).
  2. انتقِل إلى قائمة التنقل ( mainmenu.png) > شبكة VC > جدار الحماية. اختَر قواعد-allow-health-check وallow-ssh التلقائية وانقر على "حذف".
  3. انتقِل إلى قائمة التنقّل ( mainmenu.png) > الأمان > reCAPTCHA Enterprise. حدد المفاتيح التي أنشأناها واحذفها. أكِّد عملية الحذف عن طريق كتابة "حذف" في مربّع النص.

e71ecd11baf262ca.png

11. تهانينا!

لقد نجحت في تنفيذ إدارة روبوتات الدردشة باستخدام Cloud Armor. لقد هيأت جهاز موازنة حمل HTTP. بعد ذلك، أنشأت مفتاح الموقع الإلكتروني للرمز المميّز لجلسة reCAPTCHA وتنفيذه على صفحة ويب. وتعلمت أيضًا كيفية إنشاء مفتاح موقع لصفحة التحدي. لقد أعددت سياسة إدارة Cloud Armor Bot وتحقَّقت من طريقة تعامله مع الطلبات استنادًا إلى القواعد. بإمكانك الاطّلاع على سجلّات سياسة الأمان لتحديد سبب السماح بالزيارات أو حظرها أو إعادة توجيهها.

المواضيع التي تناولناها

  • كيفية إعداد نماذج المثيلات وإنشاء مجموعات المثيلات المُدارة
  • كيفية إعداد جهاز موازنة حمل HTTP
  • طريقة إنشاء سياسة إدارة برنامج التتبُّع في Cloud Armor
  • طريقة إنشاء وتنفيذ مفتاح الموقع الإلكتروني للرمز المميّز لجلسة reCAPTCHA
  • طريقة إنشاء مفتاح الموقع الإلكتروني الخاص بصفحة تحدّي reCAPTCHA وتنفيذه
  • كيفية التحقّق من أنّ سياسة إدارة برامج التتبُّع تعمل على النحو المنشود

الخطوات التالية

  • جرِّب إعداد الرموز المميّزة لإجراءات reCAPTCHA.