Quản lý bot bằng Google Cloud Armor + reCAPTCHA

1. Giới thiệu

Tính năng cân bằng tải HTTP(S) của Google Cloud được triển khai ở rìa mạng của Google tại các điểm hiện diện Google (POP) trên toàn thế giới. Lưu lượng truy cập của người dùng được chuyển đến trình cân bằng tải HTTP(S) sẽ nhập vào POP gần người dùng nhất và sau đó được cân bằng tải qua mạng toàn cầu của Google tới phần phụ trợ gần nhất có đủ dung lượng.

Cloud Armor là hệ thống phát hiện tường lửa ứng dụng web (WAF) và từ chối dịch vụ phân tán của Google. Cloud Armor được kết hợp chặt chẽ với Trình cân bằng tải HTTP của Google Cloud và bảo vệ các ứng dụng của khách hàng của Google Cloud khỏi các cuộc tấn công từ Internet. reCAPTCHA Enterprise là một dịch vụ bảo vệ trang web của bạn khỏi nội dung rác và hành vi sai trái. Dịch vụ này được xây dựng dựa trên API reCAPTCHA hiện có, sử dụng các kỹ thuật phân tích rủi ro nâng cao để phân biệt con người và bot. Cloud Armor Bot Management cung cấp một giải pháp toàn diện, tích hợp tính năng tính điểm và phát hiện bot reCAPTCHA Enterprise với hoạt động thực thi của Cloud Armor ở rìa mạng để bảo vệ các ứng dụng xuôi dòng.

Trong phòng thí nghiệm này, bạn định cấu hình Trình cân bằng tải HTTP bằng một phần phụ trợ, như minh hoạ trong sơ đồ dưới đây. Sau đó, bạn sẽ tìm hiểu cách thiết lập khoá trang web mã thông báo phiên reCAPTCHA và nhúng khoá đó vào trang web của mình. Bạn cũng sẽ tìm hiểu cách thiết lập lệnh chuyển hướng đến thử thách thủ công reCAPTCHA Enterprise. Sau đó, chúng tôi sẽ định cấu hình một chính sách quản lý bot Cloud Armor để trình bày cách tính năng phát hiện bot bảo vệ ứng dụng của bạn khỏi lưu lượng truy cập bot độc hại.

8b46e6728996bc0c.png.

Kiến thức bạn sẽ học được

  • Cách thiết lập Trình cân bằng tải HTTP với các biện pháp kiểm tra tình trạng thích hợp.
  • Cách tạo khoá trang web thử thách reCAPTCHA WAF và liên kết khoá đó với chính sách bảo mật của Cloud Armor.
  • Cách tạo khoá trang web mã thông báo phiên reCAPTCHA và cài đặt khoá đó trên các trang web của bạn.
  • Cách tạo chính sách quản lý bot Cloud Armor.
  • Cách xác thực rằng chính sách quản lý bot đang xử lý lưu lượng truy cập dựa trên các quy tắc đã thiết lập.

Bạn cần

  • Kết nối mạng cơ bản và kiến thức cơ bản về HTTP
  • Kiến thức cơ bản về dòng lệnh Unix/Linux

2. Thiết lập và yêu cầu

Thiết lập môi trường theo tiến độ riêng

  1. Đăng nhập vào Google Cloud Console rồi tạo dự án mới hoặc sử dụng lại dự án hiện có. Nếu chưa có tài khoản Gmail hoặc Google Workspace, bạn phải tạo một tài khoản.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • Tên dự án là tên hiển thị của những người tham gia dự án này. Đây là một chuỗi ký tự không được API của Google sử dụng và bạn có thể cập nhật chuỗi này bất cứ lúc nào.
  • Mã dự án phải là duy nhất trong tất cả các dự án Google Cloud và không thể thay đổi (bạn không thể thay đổi mã này sau khi đặt). Cloud Console tự động tạo một chuỗi duy nhất. Thường thì bạn sẽ không quan tâm đến chuỗi này. Trong hầu hết các lớp học lập trình, bạn cần tham chiếu đến Mã dự án (và mã này thường được xác định là PROJECT_ID). Vì vậy, nếu không thích, bạn có thể tạo một chuỗi ngẫu nhiên khác hoặc bạn có thể tự mình thử xem có mã này không. Sau đó, chiến dịch sẽ "bị đóng băng" sau khi tạo dự án.
  • Có giá trị thứ ba là Project Number (Số dự án) mà một số API sử dụng. Tìm hiểu thêm về cả ba giá trị này trong tài liệu này.
  1. Tiếp theo, bạn sẽ cần bật tính năng thanh toán trong Cloud Console để sử dụng tài nguyên/API trên Cloud. Việc chạy qua lớp học lập trình này sẽ không tốn nhiều chi phí. Để tắt các tài nguyên nhằm không phải chịu khoản thanh toán ngoài hướng dẫn này, hãy làm theo mọi hướng dẫn "dọn dẹp" ở cuối lớp học lập trình này. Người dùng mới của Google Cloud đủ điều kiện tham gia chương trình Dùng thử miễn phí 300 USD.

Khởi động Cloud Shell

Mặc dù bạn có thể vận hành Google Cloud từ xa trên máy tính xách tay, nhưng trong lớp học lập trình này, bạn sẽ sử dụng Google Cloud Shell, một môi trường dòng lệnh chạy trong Đám mây.

Trong Bảng điều khiển GCP, hãy nhấp vào biểu tượng Cloud Shell ở thanh công cụ trên cùng bên phải:

55efc1aaa7a4d3ad.pngS

Sẽ chỉ mất một chút thời gian để cấp phép và kết nối với môi trường. Sau khi hoàn tất, bạn sẽ thấy như sau:

7ffe5cbb04455448.pngS

Máy ảo này chứa tất cả các công cụ phát triển mà bạn cần. Phiên bản này cung cấp thư mục gốc có dung lượng ổn định 5 GB và chạy trên Google Cloud, giúp nâng cao đáng kể hiệu suất và khả năng xác thực của mạng. Bạn có thể thực hiện tất cả công việc trong phòng thí nghiệm này chỉ bằng một trình duyệt.

Trước khi bắt đầu

Bên trong Cloud Shell, hãy đảm bảo rằng bạn thiết lập mã dự án

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

Cho phép API

Bật tất cả dịch vụ cần thiết

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. Định cấu hình quy tắc tường lửa để cho phép lưu lượng truy cập HTTP và SSH đến các phần phụ trợ

Định cấu hình các quy tắc về tường lửa để cho phép lưu lượng truy cập HTTP đến máy chủ phụ trợ từ tính năng kiểm tra tình trạng của Google Cloud và Trình cân bằng tải. Ngoài ra, hãy định cấu hình quy tắc tường lửa để cho phép SSH vào các phiên bản.

Chúng tôi sẽ dùng mạng VPC mặc định mà bạn đã tạo trong dự án. Tạo quy tắc tường lửa để cho phép lưu lượng truy cập HTTP gửi đến các phần phụ trợ. Tính năng kiểm tra tình trạng xác định phiên bản nào của trình cân bằng tải có thể nhận các kết nối mới. Đối với tính năng cân bằng tải HTTP, đầu dò kiểm tra tình trạng cho các thực thể cân bằng tải đến từ các địa chỉ trong các dải 130.211.0.0/22 và 35.191.0.0/16. Các quy tắc về tường lửa VPC của bạn phải cho phép những kết nối này. Ngoài ra, trình cân bằng tải còn trao đổi với máy chủ phụ trợ trên cùng một dải IP.

  1. Trong Cloud Console, hãy chuyển đến Trình đơn điều hướng ( mainmenu.png) > Mạng VPC > Tường lửa.

131fb495c9242335.pngS

  1. Hãy lưu ý các quy tắc tường lửa ICMP, internal, RDPSSH hiện có.Mỗi dự án trên Google Cloud đều bắt đầu bằng mạng mặc định và các quy tắc về tường lửa này.
  2. Nhấp vào Create Firewall Rule (Tạo quy tắc tường lửa).
  3. Thiết lập các giá trị sau đây, giữ nguyên tất cả các giá trị khác theo mặc định:

Thuộc tính

Giá trị (loại giá trị hoặc chọn một giá trị theo chỉ định)

Tên

default-allow-health-check

Mạng

mặc định

Mục tiêu

Thẻ mục tiêu được chỉ định

Thẻ mục tiêu

cho phép-kiểm-tra-tình-trạng

Bộ lọc nguồn

Dải IP

Dải IP nguồn

130.211.0.0/22, 35.191.0.0/16

Giao thức và cổng

Đã chỉ định giao thức và cổng, sau đó kiểm tra tcp. Nhập 80 cho số cổng

  1. Nhấp vào Tạo.

Hoặc, nếu bạn đang sử dụng dòng lệnh gcloud. Dưới đây là lệnh:

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. Tương tự, hãy tạo quy tắc Tường lửa để cho phép kết nối SSH vào các phiên bản –
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. Định cấu hình mẫu thực thể và tạo nhóm thực thể được quản lý

Một nhóm thực thể được quản lý sẽ dùng mẫu thực thể để tạo một nhóm các thực thể giống nhau. Hãy sử dụng các công cụ này để tạo phần phụ trợ của Trình cân bằng tải HTTP.

Định cấu hình các mẫu thực thể

Mẫu thực thể là một tài nguyên mà bạn dùng để tạo các phiên bản máy ảo và nhóm thực thể được quản lý. Mẫu thực thể xác định loại máy, hình ảnh khởi động đĩa, mạng con, nhãn và các thuộc tính thực thể khác. Tạo một mẫu thực thể như được chỉ ra bên dưới.

  1. Trong Cloud Console, hãy chuyển đến Trình đơn điều hướng ( mainmenu.png) > Compute Engine > Instance templates (Mẫu phiên bản), rồi nhấp vào CreateInstance Template (Tạo mẫu phiên bản).
  2. Đối với Name (Tên), hãy nhập lb-backend-template.
  3. Đối với Bộ sách, hãy chọn N1.
  4. Nhấp vào Nối mạng, Ổ đĩa, Bảo mật, Quản lý , Ổn định.

1d0b7122f4bb410d.pngS

  1. Chuyển tới phần Quản lý và chèn tập lệnh sau vào trường Tập lệnh khởi động.
#! /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. Nhấp vào thẻ Networking (Kết nối mạng), thêm các thẻ mạng: allow-health-check
  2. Đặt các giá trị sau và để tất cả các giá trị khác ở chế độ mặc định -

Thuộc tính

Giá trị (loại giá trị hoặc chọn một giá trị theo chỉ định)

Mạng (Trong giao diện mạng)

mặc định

Mạng con (Trong giao diện mạng)

mặc định (us-east1)

Thẻ mạng

cho phép-kiểm-tra-tình-trạng

  1. Nhấp vào Tạo.
  2. Chờ mẫu thực thể được tạo.

Tạo nhóm thực thể được quản lý

  1. Vẫn trên trang Compute Engine, hãy nhấp vào Instance groups (Nhóm phiên bản) trên trình đơn bên trái.

ed419061ad2b982c.png

  1. Nhấp vào Tạo nhóm thực thể. Chọn Nhóm thực thể được quản lý mới (không có trạng thái).
  2. Thiết lập các giá trị sau đây, giữ nguyên tất cả các giá trị khác theo mặc định:

Thuộc tính

Giá trị (loại giá trị hoặc chọn một giá trị theo chỉ định)

Tên

ví dụ về lb-backend

Vị trí

Một vùng

Khu vực

hoa-đông-1

Vùng

us-east1-b

Mẫu phiên bản

lb-backend-template

Tự động cấp tài nguyên bổ sung

Không tự động chuyển tỷ lệ

Số lượng thực thể

1

  1. Nhấp vào Tạo.

Thêm cổng đã đặt tên vào nhóm thực thể

Đối với nhóm thực thể, hãy xác định một dịch vụ HTTP và liên kết tên cổng với cổng có liên quan. Dịch vụ cân bằng tải sẽ chuyển tiếp lưu lượng truy cập đến cổng được đặt tên.

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

5. Định cấu hình Trình cân bằng tải HTTP

Định cấu hình Trình cân bằng tải HTTP để gửi lưu lượng truy cập đến phần phụ trợ của bạn lb-backend-example:

Bắt đầu định cấu hình

  1. Trong Cloud Console, hãy nhấp vào Trình đơn điều hướng ( mainmenu.png) > nhấp vào Dịch vụ mạng > Cân bằng tải, rồi nhấp vào Tạo trình cân bằng tải.
  2. Trong HTTP(S) Load Balancing, nhấp vào Start configuration (Bắt đầu cấu hình).

4f8b8cb10347ecec.png.

  1. Chọn Từ Internet đến máy ảo của tôi, Trình cân bằng tải HTTP(S) cổ điển rồi nhấp vào Tiếp tục.
  2. Đặt Tên thành http-lb.

Định cấu hình phần phụ trợ

Các dịch vụ phụ trợ hướng lưu lượng truy cập đến đến một hoặc nhiều phần phụ trợ đi kèm. Mỗi phần phụ trợ bao gồm một nhóm thực thể và siêu dữ liệu về khả năng phân phát bổ sung.

  1. Nhấp vào Cấu hình phần phụ trợ.
  2. Đối với Các dịch vụ phụ trợ và bộ chứa phụ trợ, hãy nhấp vào Tạo dịch vụ phụ trợ.
  3. Thiết lập các giá trị sau đây, giữ nguyên tất cả các giá trị khác theo mặc định:

Thuộc tính

Giá trị (chọn một lựa chọn theo chỉ định)

Tên

phần phụ trợ http

Giao thức

HTTP

Cổng được đặt tên

htp

Nhóm bản sao

ví dụ về lb-backend

Số cổng

80

  1. Nhấp vào Xong.
  2. Nhấp vào Thêm phần phụ trợ.
  3. Đối với phần Kiểm tra tình trạng, hãy chọn Tạo quy trình kiểm tra tình trạng.

168a9ba1062b1f45.pngS

  1. Thiết lập các giá trị sau đây, giữ nguyên tất cả các giá trị khác theo mặc định:

Thuộc tính

Giá trị (chọn một lựa chọn theo chỉ định)

Tên

http-health-check

Giao thức

TCP

Cổng

80

dc45bc726bb4dfad.png

  1. Nhấp vào Lưu.
  2. Chọn hộp Bật tính năng ghi nhật ký.
  3. Đặt Tốc độ lấy mẫu thành 1:

c8f884fa4a8cd50.png

  1. Nhấp vào Tạo để tạo dịch vụ phụ trợ.

1fd2ad21b1d32a95.pngS

Định cấu hình giao diện người dùng

Các quy tắc về đường dẫn và máy chủ lưu trữ xác định cách hướng lưu lượng truy cập của bạn. Ví dụ: bạn có thể chuyển hướng lưu lượng truy cập video đến một phần phụ trợ và lưu lượng truy cập tĩnh đến một phần phụ trợ khác. Tuy nhiên, bạn chưa định cấu hình các quy tắc Máy chủ lưu trữ và đường dẫn trong phòng thí nghiệm này.

  1. Nhấp vào Cấu hình giao diện người dùng.
  2. Chỉ định như sau, để tất cả các giá trị khác theo mặc định:

Thuộc tính

Giá trị (loại giá trị hoặc chọn một giá trị theo chỉ định)

Giao thức

HTTP

Phiên bản IP

IPv4

Địa chỉ IP

Tạm thời

Cổng

80

  1. Nhấp vào Xong.

Xem lại và tạo Trình cân bằng tải HTTP

  1. Nhấp vào Xem lại và hoàn tất.

478e5e51057af3a3.pngS

  1. Xem Dịch vụ phụ trợGiao diện người dùng.
  2. Nhấp vào Tạo.
  3. Chờ trình cân bằng tải được tạo.
  4. Nhấp vào tên của trình cân bằng tải (http-lb).
  5. Ghi lại địa chỉ IPv4 của trình cân bằng tải cho tác vụ tiếp theo. Chúng tôi sẽ gọi mã này là [LB_IP_v4].

6. Kiểm thử Trình cân bằng tải HTTP

Bây giờ, bạn đã tạo Trình cân bằng tải HTTP cho phần phụ trợ của mình, hãy xác minh rằng lưu lượng truy cập được chuyển tiếp đến dịch vụ phụ trợ. Để kiểm tra quyền truy cập IPv4 vào Trình cân bằng tải HTTP, hãy mở một thẻ mới trong trình duyệt và chuyển đến http://[LB_IP_v4]. Hãy nhớ thay thế [LB_IP_v4] bằng địa chỉ IPv4 của trình cân bằng tải.

7. Tạo và triển khai mã thông báo phiên reCAPTCHA và khoá trang web thử thách

reCAPTCHA Enterprise để tích hợp WAF và Google Cloud Armor cung cấp các tính năng sau: trang thử thách reCAPTCHA, mã hành động reCAPTCHAmã phiên reCAPTCHA. Trong lớp học lập trình này, chúng ta sẽ triển khai khoá trang web của mã thông báo phiên reCATCHA và trang web thử thách reCAPTCHA WAF.

Tạo mã thông báo phiên reCAPTCHA và khoá trang web thử thách WF

Trước khi tạo khoá trang web mã thông báo phiên và khoá trang web của trang thử thách, hãy kiểm tra kỹ để đảm bảo bạn đã bật API reCAPTCHA Enterprise như nêu trong phần "Bật API" ở đầu.

JavaScript reCAPTCHA đặt một mã thông báo phiên reCAPTCHA làm cookie trên trình duyệt của người dùng cuối sau khi đánh giá. Trình duyệt của người dùng cuối sẽ đính kèm cookie và làm mới cookie này, miễn là reCAPTCHA JavaScript vẫn hoạt động.

  1. Tạo khoá trang web mã thông báo phiên reCAPTCHA và bật tính năng WAF cho khoá đó. Chúng tôi cũng sẽ đặt dịch vụ WAF thành Cloud Armor để bật tính năng tích hợp 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. Kết quả của lệnh trên, cung cấp cho bạn khoá đã tạo. Hãy lưu ý đến email này vì chúng tôi sẽ thêm nó vào trang web của bạn trong bước tiếp theo.
  2. Tạo khoá trang web thử thách WAF cho reCAPTCHA và bật tính năng WAF cho khoá. Bạn có thể sử dụng tính năng trang thử thách reCAPTCHA để chuyển hướng các yêu cầu được gửi đến đến reCAPTCHA Enterprise nhằm xác định xem mỗi yêu cầu có khả năng là gian lận hay hợp lệ hay không. Sau đó, chúng tôi sẽ liên kết khoá này với chính sách bảo mật của Cloud Armor để bật tính năng thử thách thủ công. Chúng tôi sẽ gọi khoá này là CHALLENGE-PAGE-KEY trong các bước sau.
gcloud recaptcha keys create --display-name=challenge-page-key \
   --web --allow-all-domains --integration-type=INVISIBLE \
   --waf-feature=challenge-page --waf-service=ca
  1. Chuyển đến Trình đơn điều hướng ( mainmenu.png) > Bảo mật > reCAPTCHA Enterprise. Bạn sẽ thấy các khoá bạn đã tạo trong phần Khoá doanh nghiệp -

4e2567aae0eb92d7.pngs

Triển khai khoá trang web của mã thông báo phiên reCAPTCHA

  1. Chuyển đến Navigation menu (Trình đơn điều hướng) ( mainmenu.png) > Compute Engine > VM Instances (Phiên bản máy ảo). Tìm máy ảo trong nhóm thực thể của bạn và SSH vào máy ảo đó.

6d7b0fd12a667b5f.png.

  1. Chuyển đến thư mục gốc của máy chủ web và thay đổi người dùng thành thư mục gốc –
@lb-backend-example-4wmn:~$ cd /var/www/html/
@lb-backend-example-4wmn:/var/www/html$ sudo su
  1. Cập nhật trang target.html đích và nhúng khoá trang web của mã thông báo phiên reCAPTCHA. Khoá trang web mã thông báo phiên được đặt trong phần đầu của trang đích như dưới đây -

<script src="https://www.google.com/recaptcha/enterprise.js?render=<CHANGES_TOKEN_HERE>&waf=session" async trì hoãn></script>

Hãy nhớ thay thế mã thông báo trước khi cập nhật tệpindex.html như được chỉ ra bên dưới –

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. Tạo ba trang mẫu khác để thử nghiệm các chính sách quản lý bot -
  • 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. Xác thực rằng bạn có thể truy cập tất cả các trang web bằng cách mở các trang web đó trong trình duyệt của mình. Hãy nhớ thay thế [LB_IP_v4] bằng địa chỉ IPv4 của trình cân bằng tải.
  • Mở http://[LB_IP_v4]/index.html. Bạn sẽ có thể xác minh rằng quy trình triển khai reCAPTCHA đang hoạt động khi bạn thấy dòng chữ "được bảo vệ bằng reCAPTCHA" ở góc dưới cùng bên phải của trang –

d695ad23d91ae4e9.png

  • Nhấp vào từng đường liên kết.

4a2ad1b2f10b4c86.pngS

  • Xác thực rằng bạn có thể truy cập vào tất cả các trang.

481f63bf5e6f244.pngs

8. Tạo các quy tắc chính sách bảo mật của Cloud Armor để Quản lý bot

Trong phần này, bạn sẽ sử dụng các quy tắc quản lý bot Cloud Armor để cho phép, từ chối và chuyển hướng các yêu cầu dựa trên điểm số reCAPTCHA. Hãy nhớ rằng khi tạo khoá trang web mã thông báo phiên, bạn đặt điểm kiểm tra là 0,5.

  1. Trong Cloud Shell(tham khảo phần "Bắt đầu Cloud Shell" trong phần "Thiết lập và yêu cầu" để xem hướng dẫn về cách sử dụng Cloud Shell), hãy tạo chính sách bảo mật qua gcloud:
gcloud compute security-policies create recaptcha-policy \
    --description "policy for bot management"
  1. Để sử dụng thử thách thủ công reCAPTCHA Enterprise nhằm phân biệt giữa người dùng và ứng dụng tự động, hãy liên kết khoá trang web thử thách reCAPTCHA WAF mà chúng tôi đã tạo cho thử thách thủ công với chính sách bảo mật. Thay thế "CHALLENGE-PAGE-KEY" bằng khóa chúng tôi đã tạo -
gcloud compute security-policies update recaptcha-policy \
   --recaptcha-redirect-site-key "CHALLENGE-PAGE-KEY"
  1. Thêm quy tắc quản lý bot để cho phép lưu lượng truy cập nếu đường dẫn url khớp với Good-score.html và có điểm lớn hơn 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. Thêm quy tắc quản lý bot để từ chối lưu lượng truy cập nếu đường dẫn url khớp với Bad-score.html và có điểm dưới 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. Thêm một quy tắc quản lý bot để chuyển hướng lưu lượng truy cập đến Google reCAPTCHA nếu đường dẫn url khớp với Trung-score.html và có điểm số bằng 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. Đính kèm chính sách bảo mật vào phần phụ trợ của dịch vụ phụ trợ:
gcloud compute backend-services update http-backend \
    --security-policy recaptcha-policy –-global
  1. Trong Bảng điều khiển, hãy chuyển đến Trình đơn điều hướng > Bảo mật mạng > Cloud Armor.
  2. Nhấp vào chính sách hình ảnh xác thực lại. Chính sách của bạn phải có dạng như sau:

74852618aaa96786.pngS

9. Xác thực quy trình quản lý bot bằng Cloud Armor

  1. Mở trình duyệt và nhập URL http://[LB_IP_v4]/index.html. Chuyển đến "Truy cập đường liên kết cho phép". Bạn sẽ được phép qua –

edf3e6ca238d2ee7.png

  1. Mở một cửa sổ mới ở Chế độ ẩn danh để đảm bảo chúng ta có phiên mới. Nhập URL http://[LB_IP_v4]/index.html và điều hướng đến "Truy cập liên kết bị chặn". Bạn sẽ nhận được lỗi HTTP 403 -

ecef5655b291dbb0.png

  1. Mở một cửa sổ mới ở Chế độ ẩn danh để đảm bảo chúng ta có phiên mới. Nhập URL http://[LB_IP_v4]/index.html và điều hướng đến "Truy cập đường liên kết chuyển hướng". Bạn sẽ thấy chuyển hướng đến Google reCAPTCHA và trang thử thách thủ công như dưới đây -

53ed2b4067b55436.pngS

Xác minh nhật ký của Cloud Armor

Khám phá nhật ký chính sách bảo mật để xác thực rằng quy trình quản lý bot hoạt động như mong đợi.

  1. Trong Bảng điều khiển, hãy chuyển đến Trình đơn điều hướng > Bảo mật mạng > Cloud Armor.
  2. Nhấp vào reCAPTCHA-policy (chính sách hình ảnh xác thực lại).
  3. Nhấp vào Nhật ký.

46fd825d8506d355.pngS

  1. Nhấp vào Xem nhật ký chính sách.
  2. Dưới đây là truy vấn MQL(giám sát ngôn ngữ truy vấn), bạn có thể sao chép và dán vào trình chỉnh sửa truy vấn -
resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:(recaptcha-policy)
  1. Bây giờ, hãy nhấp vào Run Query (Chạy truy vấn).
  2. Tìm mục nhập nhật ký trong kết quả Truy vấn, trong đó yêu cầu là về http://[LB_IP_v4]/good-score.html. Mở rộng jsonPayload.Expand approvedSecurityPolicy.

b7b1712642cf092b.png

  1. Lặp lại tương tự cho http://[LB_IP_v4]/bad-score.html và http://[LB_IP_v4]/median-score.html

c28f96d83056725a.png

8c4803d75a77142c.png.

Lưu ý rằng configurationAction được đặt thành ALLOW, DENY hoặc GOOGLE_RECAPTCHA với tên recaptcha-policy.

Xin chúc mừng! Bạn đã hoàn thành phòng thí nghiệm này về Quản lý bot với Cloud Armor

©2020 Google LLC Bảo lưu mọi quyền. Google và biểu trưng Google là các nhãn hiệu của Google LLC. Tất cả các tên công ty và sản phẩm khác có thể là nhãn hiệu của công ty liên quan tương ứng.

10. Vệ sinh phòng thí nghiệm

  1. Chuyển đến phần Network Security >> Cloud Armor >> %POLICY NAME% rồi chọn xoá –

2646f9c1df093f90.pngS

  1. Chuyển đến Networking >> Network services >> Load Balancing (Kết nối mạng >> Dịch vụ mạng >> Cân bằng tải). Chọn trình cân bằng tải bạn đã tạo và nhấp vào xoá.

8ad4f55dc06513f7.pngS

Chọn dịch vụ phụ trợ và tính năng kiểm tra tình trạng làm tài nguyên bổ sung sẽ bị xoá –

f6f02bb56add6420.png

  1. Chuyển đến Trình đơn điều hướng (mainmenu.png) > Compute Engine > Instance Groups (Nhóm thực thể). Chọn nhóm thực thể được quản lý rồi nhấp vào Xoá –

2116b286954fd6.pngS

Xác nhận xoá bằng cách nhập "xoá" vào hộp văn bản.

Chờ hệ thống xoá nhóm thực thể được quản lý. Thao tác này cũng sẽ xoá thực thể đó trong nhóm. Bạn chỉ có thể xoá mẫu sau khi xoá nhóm thực thể.

  1. Chuyển đến mục Instance mẫu (Mẫu thực thể) trong ngăn bên trái**.** Chọn mẫu phiên bản rồi nhấp vào xoá.
  2. Chuyển đến Navigation menu (Trình đơn điều hướng) ( mainmenu.png) > VPC network > Firewall (Tường lửa). Chọn các quy tắc mặc định cho phép kiểm tra sức khoẻ và cho phép ssh rồi nhấp vào xoá.
  3. Chuyển đến Trình đơn điều hướng ( mainmenu.png) > Bảo mật > reCAPTCHA Enterprise. Chọn các khoá chúng ta đã tạo rồi xoá chúng. Xác nhận xoá bằng cách nhập "DELETE" (XOÁ) vào hộp văn bản.

e71ecd11baf262ca.png

11. Xin chúc mừng!

Bạn đã triển khai thành công tính năng quản lý bot bằng Cloud Armor. Bạn đã định cấu hình Trình cân bằng tải HTTP. Sau đó, bạn đã tạo và triển khai khoá trang web mã thông báo phiên reCAPTCHA trên một trang web. Bạn cũng đã học cách tạo khoá trang web thử thách. Bạn thiết lập chính sách quản lý Bot Cloud Armor và xác thực cách những bot này xử lý yêu cầu theo các quy tắc. Bạn có thể khám phá nhật ký chính sách bảo mật để xác định lý do lưu lượng truy cập được cho phép, bị chặn hoặc chuyển hướng.

Nội dung đã đề cập

  • Cách thiết lập mẫu thực thể và tạo nhóm thực thể được quản lý.
  • Cách thiết lập Trình cân bằng tải HTTP.
  • Cách tạo chính sách quản lý bot Cloud Armor.
  • Cách tạo và triển khai khoá trang web mã thông báo phiên reCAPTCHA.
  • Cách tạo và triển khai khoá trang web thử thách reCAPTCHA.
  • Cách xác thực rằng Chính sách quản lý bot đang hoạt động như dự kiến.

Các bước tiếp theo

  • Hãy thử thiết lập mã thông báo hành động reCAPTCHA.