مدیریت ربات با Google Cloud Armor + reCAPTCHA

1. معرفی

تعادل بار Google Cloud HTTP(S) در لبه شبکه Google در نقاط حضور Google (POP) در سراسر جهان مستقر شده است. ترافیک کاربر هدایت‌شده به یک متعادل‌کننده بار HTTP(S) وارد POP نزدیک‌ترین کاربر به کاربر می‌شود و سپس از طریق شبکه جهانی Google به نزدیک‌ترین باطن که ظرفیت کافی در دسترس دارد، بارگذاری می‌شود.

Cloud Armor سیستم تشخیص انکار سرویس و فایروال برنامه وب (WAF) توزیع شده گوگل است. Cloud Armor به شدت با Google Cloud HTTP Load Balancer همراه است و از برنامه های مشتریان Google Cloud در برابر حملات اینترنت محافظت می کند. reCAPTCHA Enterprise سرویسی است که از سایت شما در برابر هرزنامه و سوء استفاده محافظت می کند و بر اساس API موجود reCAPTCHA که از تکنیک های پیشرفته تجزیه و تحلیل ریسک برای تشخیص انسان ها و ربات ها استفاده می کند، محافظت می کند. Cloud Armor Bot Management راه حلی سرتاسری را ارائه می دهد که شناسایی و امتیازدهی ربات reCAPTCHA Enterprise را با اعمال Cloud Armor در لبه شبکه برای محافظت از برنامه های پایین دستی یکپارچه می کند.

در این آزمایشگاه، شما یک HTTP Load Balancer را با یک Backend پیکربندی می کنید، همانطور که در نمودار زیر نشان داده شده است. سپس، یاد خواهید گرفت که یک کلید سایت نشانه جلسه reCAPTCHA راه اندازی کرده و آن را در وب سایت خود جاسازی کنید. همچنین یاد خواهید گرفت که تغییر مسیر را برای چالش دستی reCAPTCHA Enterprise تنظیم کنید. سپس یک خط‌مشی مدیریت ربات Cloud Armor را پیکربندی می‌کنیم تا نشان دهیم که چگونه شناسایی ربات از برنامه شما در برابر ترافیک ربات‌های مخرب محافظت می‌کند.

8b46e6728996bc0c.png

چیزی که یاد خواهید گرفت

  • نحوه راه اندازی HTTP Load Balancer با بررسی های بهداشتی مناسب.
  • نحوه ایجاد یک کلید سایت صفحه چالش reCAPTCHA WAF و مرتبط کردن آن با خط مشی امنیتی Cloud Armor.
  • چگونه یک کلید سایت نشانه جلسه reCAPTCHA ایجاد کنید و آن را در صفحات وب خود نصب کنید.
  • نحوه ایجاد خط مشی مدیریت ربات Cloud Armor.
  • چگونه می توان تأیید کرد که خط مشی مدیریت ربات ترافیک را بر اساس قوانین پیکربندی شده مدیریت می کند.

آنچه شما نیاز دارید

  • شبکه های اولیه و دانش HTTP
  • دانش اولیه خط فرمان یونیکس/لینوکس

2. راه اندازی و الزامات

تنظیم محیط خود به خود

  1. به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود و می توانید هر زمان که بخواهید آن را به روز کنید.
  • شناسه پروژه باید در تمام پروژه‌های Google Cloud منحصربه‌فرد باشد و تغییرناپذیر باشد (پس از تنظیم نمی‌توان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید به شناسه پروژه ارجاع دهید (و معمولاً به عنوان PROJECT_ID شناخته می‌شود)، بنابراین اگر آن را دوست ندارید، یک نمونه تصادفی دیگر ایجاد کنید، یا می‌توانید شناسه پروژه را امتحان کنید و ببینید در دسترس است. سپس پس از ایجاد پروژه "یخ زده" می شود.
  • یک مقدار سوم وجود دارد، یک شماره پروژه که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
  1. در مرحله بعد، برای استفاده از منابع Cloud/APIها، باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه نباید هزینه زیادی داشته باشد، اگر اصلاً باشد. برای اینکه منابع را خاموش کنید تا بیش از این آموزش متحمل صورتحساب نشوید، دستورالعمل‌های «پاک‌سازی» را که در انتهای Codelab یافت می‌شود دنبال کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.

Cloud Shell را راه اندازی کنید

در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.

از کنسول GCP روی نماد 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

API ها را فعال کنید

تمام خدمات لازم را فعال کنید

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 و Load Balancer به پشتیبان‌ها مجاز شود. همچنین، یک قانون فایروال را پیکربندی کنید تا به SSH اجازه ورود به نمونه ها بدهد.

ما از شبکه VPC پیش فرض ایجاد شده در پروژه شما استفاده خواهیم کرد. یک قانون فایروال ایجاد کنید تا به ترافیک HTTP اجازه ورود به باطن داده شود. بررسی‌های سلامت مشخص می‌کند که کدام نمونه‌های یک متعادل کننده بار می‌توانند اتصالات جدید دریافت کنند. برای متعادل کردن بار HTTP، کاوشگرهای بررسی سلامت برای نمونه های بار متعادل شما از آدرس هایی در محدوده 130.211.0.0/22 ​​و 35.191.0.0/16 می آیند. قوانین فایروال VPC شما باید این اتصالات را مجاز کند. همچنین، متعادل کننده های بار با بک اند در همان محدوده IP صحبت می کنند.

  1. در Cloud Console، به منوی Navigation بروید ( mainmenu.png ) > شبکه VPC > فایروال .

131fb495c9242335.png

  1. به قوانین فایروال ICMP ، داخلی ، RDP و SSH توجه کنید. هر پروژه Google Cloud با شبکه پیش‌فرض و این قوانین فایروال شروع می‌شود.
  2. روی ایجاد قانون فایروال کلیک کنید.
  3. مقادیر زیر را تنظیم کنید، تمام مقادیر دیگر را در حالت پیش فرض قرار دهید:

ویژگی

مقدار (مقدار را تایپ کنید یا گزینه را همانطور که مشخص شده انتخاب کنید)

نام

پیش فرض-اجازه-بررسی سلامت

شبکه

پیش فرض

اهداف

برچسب های هدف مشخص شده

برچسب های هدف

اجازه-چک سلامتی

فیلتر منبع

محدوده 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 Load Balancer استفاده کنید.

قالب های نمونه را پیکربندی کنید

یک الگوی نمونه منبعی است که برای ایجاد نمونه های VM و گروه های نمونه مدیریت شده از آن استفاده می کنید. الگوهای نمونه نوع ماشین، تصویر دیسک راه‌اندازی، زیرشبکه، برچسب‌ها و سایر ویژگی‌های نمونه را تعریف می‌کنند. همانطور که در زیر نشان داده شده است یک الگوی نمونه ایجاد کنید.

  1. در Cloud Console، به منوی Navigation بروید ( mainmenu.png ) > Compute Engine > Instance templates و سپس روی Create instance template کلیک کنید.
  2. برای نام ، lb-backend-template را تایپ کنید.
  3. برای Series ، N1 را انتخاب کنید.
  4. روی Networking, Disk, Security, Management, Sole-Tenancy کلیک کنید.

1d0b7122f4bb410d.png

  1. به بخش مدیریت رفته و اسکریپت زیر را در قسمت Startup script وارد کنید.
#! /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. روی تب Networking کلیک کنید، تگ های شبکه را اضافه کنید: allow-health-check
  2. مقادیر زیر را تنظیم کنید و سایر مقادیر را در حالت پیش فرض قرار دهید -

ویژگی

مقدار (مقدار را تایپ کنید یا گزینه را همانطور که مشخص شده انتخاب کنید)

شبکه (زیر رابط های شبکه)

پیش فرض

زیر شبکه (زیر رابط های شبکه)

پیش فرض (us-east1)

برچسب های شبکه

اجازه-چک سلامتی

  1. روی ایجاد کلیک کنید.
  2. منتظر بمانید تا الگوی نمونه ایجاد شود.

گروه نمونه مدیریت شده را ایجاد کنید

  1. هنوز در صفحه Compute Engine ، روی Instance group در منوی سمت چپ کلیک کنید.

ed419061ad2b982c.png

  1. روی ایجاد گروه نمونه کلیک کنید. گروه نمونه مدیریت شده جدید (بدون تابعیت) را انتخاب کنید.
  2. مقادیر زیر را تنظیم کنید، تمام مقادیر دیگر را در حالت پیش فرض قرار دهید:

ویژگی

مقدار (مقدار را تایپ کنید یا گزینه را همانطور که مشخص شده انتخاب کنید)

نام

lb-backend-example

محل

منطقه تک

منطقه

us-east1

منطقه

us-east1-b

الگوی نمونه

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 Load Balancer را پیکربندی کنید

HTTP Load Balancer را برای ارسال ترافیک به lb-backend-example پیکربندی کنید:

پیکربندی را شروع کنید

  1. در Cloud Console، روی منوی ناوبری کلیک کنید ( mainmenu.png ) > روی Network Services > Load balancing کلیک کنید و سپس روی Create load balancer کلیک کنید.
  2. در زیر HTTP(S) Load Balancing ، روی Start configuration کلیک کنید.

4f8b8cb10347ecec.png

  1. From Internet to my VMs ، Classic HTTP(S) Load Balancer را انتخاب کنید و روی Continue کلیک کنید.
  2. نام را روی http-lb قرار دهید.

باطن را پیکربندی کنید

خدمات Backend ترافیک ورودی را به یک یا چند backend متصل هدایت می کند. هر پشتیبان از یک گروه نمونه و ابرداده ظرفیت سرویس اضافی تشکیل شده است.

  1. روی تنظیمات Backend کلیک کنید.
  2. برای خدمات پشتیبان و سطل های پشتیبان ، روی ایجاد یک سرویس پشتیبان کلیک کنید.
  3. مقادیر زیر را تنظیم کنید، تمام مقادیر دیگر را در حالت پیش فرض قرار دهید:

ویژگی

مقدار (گزینه مشخص شده را انتخاب کنید)

نام

http-backend

پروتکل

HTTP

بنام بندر

htp

گروه نمونه

lb-backend-example

شماره های پورت

80

  1. روی Done کلیک کنید.
  2. روی افزودن باطن کلیک کنید.
  3. برای بررسی سلامت ، ایجاد یک بررسی سلامت را انتخاب کنید.

168a9ba1062b1f45.png

  1. مقادیر زیر را تنظیم کنید، تمام مقادیر دیگر را در حالت پیش فرض قرار دهید:

ویژگی

مقدار (گزینه مشخص شده را انتخاب کنید)

نام

http-health-check

پروتکل

TCP

بندر

80

dc45bc726bb4dfad.png

  1. روی ذخیره کلیک کنید.
  2. کادر Enable Logging را علامت بزنید.
  3. Sample Rate را روی 1 تنظیم کنید:

c8f884fa4a8cd50.png

  1. برای ایجاد سرویس Backend روی Create کلیک کنید.

1fd2ad21b1d32a95.png

قسمت جلویی را پیکربندی کنید

قوانین میزبان و مسیر تعیین می کنند که ترافیک شما چگونه هدایت می شود. برای مثال، می‌توانید ترافیک ویدیویی را به یک باطن و ترافیک استاتیک را به باطن دیگری هدایت کنید. با این حال، شما قوانین میزبان و مسیر را در این آزمایشگاه پیکربندی نمی کنید.

  1. روی پیکربندی Frontend کلیک کنید.
  2. موارد زیر را مشخص کنید و سایر مقادیر را در حالت پیش فرض قرار دهید:

ویژگی

مقدار (مقدار را تایپ کنید یا گزینه را همانطور که مشخص شده انتخاب کنید)

پروتکل

HTTP

نسخه IP

IPv4

آدرس آی پی

زودگذر

بندر

80

  1. روی Done کلیک کنید.

بررسی و ایجاد HTTP Load Balancer

  1. روی Review کلیک کنید و نهایی کنید .

478e5e51057af3a3.png

  1. خدمات Backend و Frontend را مرور کنید.
  2. روی Create کلیک کنید.
  3. صبر کنید تا متعادل کننده بار ایجاد شود.
  4. روی نام متعادل کننده بار ( http-lb ) کلیک کنید.
  5. برای کار بعدی به آدرس IPv4 بار متعادل کننده توجه کنید. ما به آن به عنوان [LB_IP_v4] اشاره خواهیم کرد.

6. HTTP Load Balancer را تست کنید

اکنون که HTTP Load Balancer را برای backend های خود ایجاد کردید، بررسی کنید که ترافیک به سرویس Backend ارسال شده است. برای آزمایش دسترسی IPv4 به HTTP Load Balancer، یک برگه جدید در مرورگر خود باز کنید و به http://[LB_IP_v4] بروید. مطمئن شوید که [LB_IP_v4] را با آدرس IPv4 متعادل کننده بار جایگزین کنید.

7. رمز جلسه reCAPTCHA و کلید سایت صفحه چالش ایجاد و استقرار کنید

reCAPTCHA Enterprise برای ادغام WAF و Google Cloud Armor ویژگی‌های زیر را ارائه می‌کند: صفحه چالش reCAPTCHA ، نشانه‌های اقدام reCAPTCHA ، و نشانه‌های جلسه reCAPTCHA . در این آزمایشگاه کد، ما کلید سایت نشانه جلسه reCATCHA و سایت صفحه چالش reCAPTCHA WAF را پیاده سازی خواهیم کرد.

رمز جلسه reCAPTCHA و کلید سایت صفحه چالش WAF ایجاد کنید

قبل از ایجاد کلید سایت نشانه جلسه و کلید سایت صفحه چالش، دوباره بررسی کنید که reCAPTCHA Enterprise API را همانطور که در قسمت «فعال کردن API» در ابتدا مشخص شده است، فعال کرده باشید.

جاوا اسکریپت reCAPTCHA پس از ارزیابی، یک نشانه جلسه reCAPTCHA را به عنوان یک کوکی در مرورگر کاربر نهایی تنظیم می کند. تا زمانی که جاوا اسکریپت reCAPTCHA فعال باشد، مرورگر کاربر نهایی کوکی را پیوست می کند و کوکی را تازه می کند.

  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. شما باید کلیدهایی را که ایجاد کرده اید در زیر کلیدهای سازمانی ببینید -

4e2567aae0eb92d7.png

کلید سایت نشانه جلسه reCAPTCHA را پیاده سازی کنید

  1. به منوی ناوبری بروید ( mainmenu.png ) > Compute Engine > VM Instances. VM را در گروه نمونه خود و SSH را در آن قرار دهید.

6d7b0fd12a667b5f.png

  1. به فهرست اصلی وب سرور بروید و کاربر را به root تغییر دهید -
@lb-backend-example-4wmn:~$ cd /var/www/html/
@lb-backend-example-4wmn:/var/www/html$ sudo su
  1. صفحه Landing 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. سه صفحه نمونه دیگر ایجاد کنید تا سیاست های مدیریت ربات را آزمایش کنید -
  • خوب امتیاز.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 (برای دستورالعمل‌های نحوه استفاده از Cloud Shell به " Start Cloud Shell " زیر " Setup and Requirements " مراجعه کنید)، خط‌مشی امنیتی را از طریق 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. اگر مسیر url با 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. در کنسول، به منوی پیمایش > امنیت شبکه > 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 را وارد کنید و به "بازدید از پیوند مسدود شده" بروید. شما باید یک خطای HTTP 403 دریافت کنید -

ecef5655b291dbb0.png

  1. یک پنجره جدید در حالت ناشناس باز کنید تا مطمئن شوید جلسه جدیدی داریم. آدرس http://[LB_IP_v4]/index.html را وارد کنید و به "بازدید از پیوند تغییر مسیر" بروید. شما باید تغییر مسیر به Google reCAPTCHA و صفحه چالش دستی را به صورت زیر ببینید -

53ed2b4067b55436.png

گزارش‌های Cloud Armor را تأیید کنید

گزارش‌های خط‌مشی امنیتی را کاوش کنید تا تأیید کنید مدیریت ربات همانطور که انتظار می‌رفت کار می‌کرد.

  1. در کنسول، به منوی پیمایش > امنیت شبکه > Cloud Armor بروید.
  2. روی recaptcha-policy کلیک کنید.
  3. روی Logs کلیک کنید.

46fd825d8506d355.png

  1. روی View Policy logs کلیک کنید.
  2. در زیر پرس و جو MQL (زبان پرس و جو نظارت) آمده است، می توانید آن را کپی و در ویرایشگر پرس و جو قرار دهید -
resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:(recaptcha-policy)
  1. اکنون روی Run Query کلیک کنید.
  2. به دنبال یک ورودی گزارش در نتایج Query باشید که در آن درخواست برای http://[LB_IP_v4]/good-score.html است. jsonPayload را گسترش دهید. EnforcedSecurityPolicy را گسترش دهید.

b7b1712642cf092b.png

  1. همین کار را برای http://[LB_IP_v4]/bad-score.html و http://[LB_IP_v4]/median-score.html تکرار کنید

c28f96d83056725a.png

8c4803d75a77142c.png

توجه داشته باشید که configuredAction روی ALLOW، DENY یا GOOGLE_RECAPTCHA با نام recaptcha-policy تنظیم شده است.

تبریک می گویم! شما این آزمایشگاه را در زمینه مدیریت ربات با Cloud Armor تکمیل کرده اید

©2020 Google LLC همه حقوق محفوظ است. Google و لوگوی Google علائم تجاری Google LLC هستند. همه نام‌های شرکت و محصولات دیگر ممکن است علائم تجاری شرکت‌های مربوطه باشند که با آنها مرتبط هستند.

10. پاکسازی آزمایشگاهی

  1. به امنیت شبکه >> Cloud Armor >> %POLICY NAME% بروید و حذف را انتخاب کنید -

2646f9c1df093f90.png

  1. به Networking >> Services Network >> Load Balancing بروید. متعادل کننده باری که ایجاد کردید را انتخاب کنید و روی delete کلیک کنید.

8ad4f55dc06513f7.png

سرویس پشتیبان و بررسی سلامت را به عنوان منابع اضافی برای حذف انتخاب کنید -

f6f02bb56add6420.png

  1. به منوی ناوبری بروید ( mainmenu.png ) > Compute Engine > Instance Groups. گروه نمونه مدیریت شده را انتخاب کنید و روی حذف کلیک کنید -

2116b286954fd6.png

با تایپ کردن "حذف" در جعبه متن، حذف را تأیید کنید.

منتظر بمانید تا گروه نمونه مدیریت شده حذف شود. این نیز نمونه موجود در گروه را حذف می کند. فقط پس از حذف گروه نمونه می توانید الگوها را حذف کنید.

  1. از قسمت سمت چپ به الگوهای نمونه بروید**.** الگوی نمونه را انتخاب کرده و روی delete کلیک کنید.
  2. به منوی ناوبری بروید ( mainmenu.png ) > شبکه VPC > فایروال . قوانین پیش فرض-allow-health-check و allow-ssh را انتخاب کنید و روی delete کلیک کنید.
  3. به منوی ناوبری بروید ( mainmenu.png ) > امنیت > reCAPTCHA Enterprise. کلیدهایی که ایجاد کردیم را انتخاب کرده و حذف کنید. با تایپ کردن "DELETE" در جعبه متن، حذف را تأیید کنید.

e71ecd11baf262ca.png

11. تبریک!

مدیریت ربات را با Cloud Armor با موفقیت اجرا کردید. شما یک HTTP Load Balancer را پیکربندی کرده اید. سپس، کلید سایت نشانه جلسه reCAPTCHA را در یک صفحه وب ایجاد و پیاده سازی کردید. شما همچنین یاد گرفتید که یک کلید سایت برای صفحه چالش ایجاد کنید. شما خط‌مشی مدیریت Cloud Armor Bot را تنظیم کردید و نحوه رسیدگی آنها به درخواست‌ها را بر اساس قوانین تأیید کردید. شما می‌توانید گزارش‌های خط‌مشی امنیتی را بررسی کنید تا تشخیص دهید چرا ترافیک مجاز، مسدود یا هدایت شده است.

آنچه را پوشش داده ایم

  • نحوه راه اندازی الگوهای نمونه و ایجاد گروه های نمونه مدیریت شده.
  • نحوه راه اندازی یک HTTP Load Balancer.
  • نحوه ایجاد خط مشی مدیریت ربات Cloud Armor.
  • نحوه ایجاد و پیاده سازی کلید سایت نشانه جلسه reCAPTCHA.
  • نحوه ایجاد و پیاده سازی کلید سایت صفحه چالش reCAPTCHA.
  • چگونه می توان تأیید کرد که خط مشی مدیریت ربات طبق برنامه کار می کند.

مراحل بعدی

  • راه‌اندازی نشانه‌های اقدام reCAPTCHA را امتحان کنید.